%if 0%{?rhel} || 0%{?fedora} %global rdo 1 %endif %if 0%{?rhel} == 7 %global skip_python3 1 %endif %global with_doc 1 %if 0%{?rhel} || 0%{?fedora} %global rdo 1 %endif %global with_check 0 Name: openstack-glance Version: 21.0.0 Release: 2%{?dist} Epoch: 0 Summary: OpenStack Image Service (Glance) License: ASL 2.0 URL: https://docs.openstack.org/glance Source0: glance-%{version}.tar.gz Source1: openstack-glance.logrotate Source2: openstack-glance.conf Source3: openstack-glance-api.service Source6: openstack-glance.defaultconf Source7: openstack-glance.README.config BuildRequires: openstack-macros BuildRequires: python3-paste BuildRequires: python3-paste-deploy BuildRequires: python3-routes BuildRequires: python3-wsme BuildRequires: python3-webob BuildRequires: python3-cursive BuildRequires: python3-ddt BuildRequires: python3-debtcollector BuildRequires: python3-defusedxml BuildRequires: python3-eventlet BuildRequires: python3-futurist BuildRequires: python3-glance-store BuildRequires: python3-httplib2 BuildRequires: python3-keystoneclient BuildRequires: python3-keystonemiddleware BuildRequires: python3-oslo-concurrency BuildRequires: python3-oslo-config BuildRequires: python3-oslo-context BuildRequires: python3-oslo-db BuildRequires: python3-oslo-log BuildRequires: python3-oslo-messaging BuildRequires: python3-oslo-middleware BuildRequires: python3-oslo-policy BuildRequires: python3-oslo-reports BuildRequires: python3-oslo-upgradecheck BuildRequires: python3-oslo-utils BuildRequires: python3-oslotest BuildRequires: python3-osprofiler BuildRequires: python3-pyOpenSSL BuildRequires: python3-retrying BuildRequires: python3-sqlparse BuildRequires: python3-stestr BuildRequires: python3-stevedore BuildRequires: python3-taskflow BuildRequires: python3-pyxattr Requires: logrotate Requires: python3-glance = %{epoch}:%{version}-%{release} BuildArch: noarch %if 0%{?suse_version} BuildRequires: systemd-rpm-macros %{?systemd_requires} %else BuildRequires: systemd Requires(post): systemd Requires(postun): systemd Requires(preun): systemd %endif %if 0%{?suse_version} BuildRequires: qemu-tools Requires(pre): pwdutils %endif %if 0%{?rdo} Requires(pre): shadow-utils %endif %description The Glance project provides a service where users can upload and discover data assets that are meant to be used with other services. This currently includes images and metadata definitions. Glance image services include discovering, registering, and retrieving virtual machine images. Glance has a RESTful API that allows querying of VM image metadata as well as retrieval of the actual image. VM images made available through Glance can be stored in a variety of locations from simple filesystems to object-storage systems like the OpenStack Swift project. %package -n python3-glance Summary: OpenStack Image Service (Glance) - Python module Group: Applications/System Requires: python3-paste Requires: python3-paste-deploy Requires: python3-prettytable Requires: python3-routes Requires: python3-sqlalchemy Requires: python3-wsme Requires: python3-webob Requires: python3-alembic Requires: python3-cryptography Requires: python3-cursive Requires: python3-debtcollector Requires: python3-defusedxml Requires: python3-eventlet Requires: python3-futurist Requires: python3-glance-store Requires: python3-httplib2 Requires: python3-iso8601 Requires: python3-jsonschema Requires: python3-keystoneauth1 Requires: python3-keystoneclient Requires: python3-keystonemiddleware Requires: python3-monotonic Requires: python3-oslo-concurrency Requires: python3-oslo-config Requires: python3-oslo-context Requires: python3-oslo-db Requires: python3-oslo-i18n Requires: python3-oslo-log Requires: python3-oslo-messaging Requires: python3-oslo-middleware Requires: python3-oslo-policy Requires: python3-oslo-reports Requires: python3-oslo-upgradecheck Requires: python3-oslo-utils Requires: python3-osprofiler Requires: python3-pbr Requires: python3-pyOpenSSL Requires: python3-retrying Requires: python3-six Requires: python3-sqlalchemy-migrate Requires: python3-sqlparse Requires: python3-stevedore Requires: python3-taskflow %description -n python3-glance The Glance project provides a service where users can upload and discover data assets that are meant to be used with other services. This currently includes images and metadata definitions. Glance image services include discovering, registering, and retrieving virtual machine images. Glance has a RESTful API that allows querying of VM image metadata as well as retrieval of the actual image. VM images made available through Glance can be stored in a variety of locations from simple filesystems to object-storage systems like the OpenStack Swift project. This package contains the Glance Python library. %package -n python3-glance-tests Summary: Glance tests Requires: openstack-glance = %{epoch}:%{version}-%{release} Provides: python-glance-tests = %{epoch}:%{version}-%{release} %description -n python3-glance-tests The Glance project provides a service where users can upload and discover data assets that are meant to be used with other services. This currently includes images and metadata definitions. Glance image services include discovering, registering, and retrieving virtual machine images. Glance has a RESTful API that allows querying of VM image metadata as well as retrieval of the actual image. VM images made available through Glance can be stored in a variety of locations from simple filesystems to object-storage systems like the OpenStack Swift project. This package contains the Glance test files. %if 0%{?with_doc} %package doc Summary: Documentation for OpenStack Image Service Group: Documentation BuildRequires: python3-sphinx BuildRequires: python3-openstackdocstheme BuildRequires: python3-sphinxcontrib-apidoc %description doc The Glance project provides a service where users can upload and discover data assets that are meant to be used with other services. This currently includes images and metadata definitions. Glance image services include discovering, registering, and retrieving virtual machine images. Glance has a RESTful API that allows querying of VM image metadata as well as retrieval of the actual image. VM images made available through Glance can be stored in a variety of locations from simple filesystems to object-storage systems like the OpenStack Swift project. This package contains the documentation. %endif %package api Summary: OpenStack Image service (Glance) - API Group: Development/Languages/Python Requires: %{name} = %{epoch}:%{version}-%{release} %description api The Glance project provides a service where users can upload and discover data assets that are meant to be used with other services. This currently includes images and metadata definitions. Glance image services include discovering, registering, and retrieving virtual machine images. Glance has a RESTful API that allows querying of VM image metadata as well as retrieval of the actual image. VM images made available through Glance can be stored in a variety of locations from simple filesystems to object-storage systems like the OpenStack Swift project. This package contains the %{name} API server. %prep %autosetup -p1 -n glance-%{version} %py_req_cleanup %build %{py3_build} # build documentation %if 0%{?with_doc} PBR_VERSION=%{version}-%{release} sphinx-build -b html doc/source doc/build/html PBR_VERSION=%{version}-%{release} sphinx-build -b man doc/source doc/build/man rm -rf doc/build/html/.{doctrees,buildinfo} rm -rf doc/build/man/.{doctrees,buildinfo} %endif # regenerate the sample config files for service in api scrubber cache manage image-import; do PYTHONPATH=. oslo-config-generator --config-file etc/oslo-config-generator/glance-$service.conf done # generate the sample policy PYTHONPATH=. oslopolicy-sample-generator --config-file=etc/glance-policy-generator.conf --output etc/policy.json rm -f etc/glance-policy-generator.conf %install %{py3_install} # directories install -d -m 755 %{buildroot}%{_sysconfdir}/glance install -d -m 755 %{buildroot}%{_sysconfdir}/glance/glance.conf.d/ install -d -m 755 %{buildroot}%{_sysconfdir}/glance/glance-api.conf.d/ install -d -m 755 %{buildroot}%{_localstatedir}/lib/glance install -d -m 755 %{buildroot}%{_localstatedir}/lib/glance/images install -d -m 750 %{buildroot}%{_localstatedir}/log/glance install -d -m 750 %{buildroot}%{_localstatedir}/cache/glance install -d -m 700 %{buildroot}%{_rundir}/glance # tmpfile generator install -D -m 644 %{SOURCE2} %{buildroot}/%{_tmpfilesdir}/glance.conf # install sample configs cp -pr etc/* %{buildroot}%{_sysconfdir}/glance for service in api scrubber cache manage swift image-import; do mv %{buildroot}%{_sysconfdir}/glance/glance-$service.conf{.sample,} done install -p -D -m 640 %{SOURCE6} %{buildroot}%{_sysconfdir}/glance/README.config rm -rf %{buildroot}%{_sysconfdir}/glance/oslo-config-generator # default config install -D -m 640 %{SOURCE6} %{buildroot}/%{_sysconfdir}/glance/glance.conf.d/010-glance.conf # systemd install -p -D -m 444 %{SOURCE3} %{buildroot}%{_unitdir}/openstack-glance-api.service # logrotate install -p -D -m 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/logrotate.d/openstack-glance # move metadefs mv %{buildroot}%{_prefix}%{_sysconfdir}/glance/metadefs/* %{buildroot}%{_sysconfdir}/glance/metadefs # Remove duplicate files under /usr/etc rm -rf %{buildroot}%{_prefix}%{_sysconfdir}/glance # man pages %if 0%{?with_doc} mkdir -p %{buildroot}%{_mandir}/man1 install -p -D -m 644 doc/build/man/*.1 %{buildroot}%{_mandir}/man1/ %endif %pre %openstack_pre_user_group_create glance glance /sbin/nologin %check %if 0%{?with_check} %if 0%{?rdo} # Skip qemu-tools related tests, those fail on RDO due to missing VDI support rm -v glance/tests/unit/common/test_format_inspector.py %endif PYTHONPATH=. python3 -m stestr.cli --test-path glance/tests/unit run %endif %post %tmpfiles_create %{_tmpfilesdir}/glance.conf %post api %systemd_post %{name}-api.service %preun api %systemd_preun %{name}-api.service %postun api %systemd_postun_with_restart %{name}-api.service %files %license LICENSE %_tmpfilesdir/glance.conf %dir %attr(0750, root, glance) %{_sysconfdir}/glance %dir %attr(0750, root, glance) %{_sysconfdir}/glance/glance.conf.d/ %dir %attr(0750, root, glance) %{_sysconfdir}/glance/glance-api.conf.d/ %config(noreplace) %attr(0640, root, glance) %{_sysconfdir}/glance/glance.conf.d/010-glance.conf %{_sysconfdir}/glance/README.config %config(noreplace) %attr(0640, root, glance) %{_sysconfdir}/glance/glance-api.conf %config(noreplace) %attr(0640, root, glance) %{_sysconfdir}/glance/glance-cache.conf %config(noreplace) %attr(0640, root, glance) %{_sysconfdir}/glance/glance-image-import.conf %config(noreplace) %attr(0640, root, glance) %{_sysconfdir}/glance/glance-scrubber.conf %config(noreplace) %attr(0640, root, glance) %{_sysconfdir}/glance/glance-swift.conf %config(noreplace) %attr(0640, root, glance) %{_sysconfdir}/glance/glance-manage.conf %config %{_sysconfdir}/glance/glance-api-paste.ini %config %{_sysconfdir}/glance/policy.json %config %{_sysconfdir}/glance/property-protections-policies.conf.sample %config %{_sysconfdir}/glance/property-protections-roles.conf.sample %config %{_sysconfdir}/glance/ovf-metadata.json.sample %config %{_sysconfdir}/glance/schema-image.json %dir %config %{_sysconfdir}/glance/metadefs %{_sysconfdir}/glance/metadefs/README %config %{_sysconfdir}/glance/metadefs/*.json %config(noreplace) %{_sysconfdir}/logrotate.d/%{name} %dir %attr(0755, glance, glance) %{_localstatedir}/lib/glance %dir %attr(0755, glance, glance) %{_localstatedir}/lib/glance/images %dir %attr(0750, glance, glance) %{_localstatedir}/log/glance %dir %attr(0750, glance, glance) %{_localstatedir}/cache/glance %{_bindir}/glance-cache-cleaner %{_bindir}/glance-cache-manage %{_bindir}/glance-cache-prefetcher %{_bindir}/glance-cache-pruner %{_bindir}/glance-control %{_bindir}/glance-manage %{_bindir}/glance-replicator %{_bindir}/glance-scrubber %{_bindir}/glance-status %if 0%{?with_doc} %{_mandir}/man1/glance-cache-cleaner.1.gz %{_mandir}/man1/glance-cache-manage.1.gz %{_mandir}/man1/glance-cache-prefetcher.1.gz %{_mandir}/man1/glance-cache-pruner.1.gz %{_mandir}/man1/glance-control.1.gz %{_mandir}/man1/glance-manage.1.gz %{_mandir}/man1/glance-replicator.1.gz %{_mandir}/man1/glance-scrubber.1.gz %endif %files -n python3-glance %license LICENSE %{python3_sitelib}/glance* %exclude %{python3_sitelib}/glance/tests %files -n python3-glance-tests %license LICENSE %{python3_sitelib}/glance/tests %if 0%{?with_doc} %files doc %license LICENSE %doc doc/build/html %endif %files api %{_unitdir}/openstack-glance-api.service %{_bindir}/glance-api %{_bindir}/glance-wsgi-api %if 0%{?with_doc} %{_mandir}/man1/glance-api.1.gz %endif %changelog * Sat Feb 20 2021 zhaorenhai - 21.0.0-2 - Fix requires issue of python-migrate