Switch to python3 for glance service

python2 will retire in sometime, so we should start
switch to python3. As there are no real consumers
for rpm-packaging services specs, so switching services
spec to python3 only.

- Also do not skip py3 while generating spec for glance.
- Switch to stestr
- Switch to sphinx-build for doc generation

Depends-On: I751aac4260b0583da53c9802d58e12556e122c82
Change-Id: I66c9f4e44d7ed7e60ee4a2b0b2a7366e1ca1fbfb
This commit is contained in:
yatin 2018-05-24 15:48:15 +05:30
parent f633de2d83
commit 48ffd3a043
2 changed files with 105 additions and 84 deletions

View File

@ -21,40 +21,40 @@ Source5: openstack-glance-registry.service
Source6: openstack-glance.defaultconf
Source7: openstack-glance.README.config
BuildRequires: openstack-macros
BuildRequires: {{ py2pkg('Paste') }}
BuildRequires: {{ py2pkg('PasteDeploy') }}
BuildRequires: {{ py2pkg('Routes') }}
BuildRequires: {{ py2pkg('Sphinx') }}
BuildRequires: {{ py2pkg('WSME') }}
BuildRequires: {{ py2pkg('WebOb') }}
BuildRequires: {{ py2pkg('cursive') }}
BuildRequires: {{ py2pkg('ddt') }}
BuildRequires: {{ py2pkg('debtcollector') }}
BuildRequires: {{ py2pkg('defusedxml') }}
BuildRequires: {{ py2pkg('eventlet') }}
BuildRequires: {{ py2pkg('futurist') }}
BuildRequires: {{ py2pkg('glance_store') }}
BuildRequires: {{ py2pkg('keystoneclient') }}
BuildRequires: {{ py2pkg('keystonemiddleware') }}
BuildRequires: {{ py2pkg('os-testr') }}
BuildRequires: {{ py2pkg('oslo.concurrency') }}
BuildRequires: {{ py2pkg('oslo.config') }}
BuildRequires: {{ py2pkg('oslo.context') }}
BuildRequires: {{ py2pkg('oslo.db') }}
BuildRequires: {{ py2pkg('oslo.log') }}
BuildRequires: {{ py2pkg('oslo.messaging') }}
BuildRequires: {{ py2pkg('oslo.middleware') }}
BuildRequires: {{ py2pkg('oslo.policy') }}
BuildRequires: {{ py2pkg('oslo.utils') }}
BuildRequires: {{ py2pkg('oslosphinx') }}
BuildRequires: {{ py2pkg('oslotest') }}
BuildRequires: {{ py2pkg('osprofiler') }}
BuildRequires: {{ py2pkg('pyOpenSSL') }}
BuildRequires: {{ py2pkg('stevedore') }}
BuildRequires: {{ py2pkg('taskflow') }}
BuildRequires: {{ py2pkg('xattr') }}
BuildRequires: {{ py2pkg('Paste', py_versions=['py3']) }}
BuildRequires: {{ py2pkg('PasteDeploy', py_versions=['py3']) }}
BuildRequires: {{ py2pkg('Routes', py_versions=['py3']) }}
BuildRequires: {{ py2pkg('WSME', py_versions=['py3']) }}
BuildRequires: {{ py2pkg('WebOb', py_versions=['py3']) }}
BuildRequires: {{ py2pkg('cursive', py_versions=['py3']) }}
BuildRequires: {{ py2pkg('ddt', py_versions=['py3']) }}
BuildRequires: {{ py2pkg('debtcollector', py_versions=['py3']) }}
BuildRequires: {{ py2pkg('defusedxml', py_versions=['py3']) }}
BuildRequires: {{ py2pkg('eventlet', py_versions=['py3']) }}
BuildRequires: {{ py2pkg('futurist', py_versions=['py3']) }}
BuildRequires: {{ py2pkg('glance_store', py_versions=['py3']) }}
BuildRequires: {{ py2pkg('httplib2', py_versions=['py3']) }}
BuildRequires: {{ py2pkg('keystoneclient', py_versions=['py3']) }}
BuildRequires: {{ py2pkg('keystonemiddleware', py_versions=['py3']) }}
BuildRequires: {{ py2pkg('oslo.concurrency', py_versions=['py3']) }}
BuildRequires: {{ py2pkg('oslo.config', py_versions=['py3']) }}
BuildRequires: {{ py2pkg('oslo.context', py_versions=['py3']) }}
BuildRequires: {{ py2pkg('oslo.db', py_versions=['py3']) }}
BuildRequires: {{ py2pkg('oslo.log', py_versions=['py3']) }}
BuildRequires: {{ py2pkg('oslo.messaging', py_versions=['py3']) }}
BuildRequires: {{ py2pkg('oslo.middleware', py_versions=['py3']) }}
BuildRequires: {{ py2pkg('oslo.policy', py_versions=['py3']) }}
BuildRequires: {{ py2pkg('oslo.utils', py_versions=['py3']) }}
BuildRequires: {{ py2pkg('oslotest', py_versions=['py3']) }}
BuildRequires: {{ py2pkg('osprofiler', py_versions=['py3']) }}
BuildRequires: {{ py2pkg('pyOpenSSL', py_versions=['py3']) }}
BuildRequires: {{ py2pkg('sqlparse', py_versions=['py3']) }}
BuildRequires: {{ py2pkg('stestr', py_versions=['py3']) }}
BuildRequires: {{ py2pkg('stevedore', py_versions=['py3']) }}
BuildRequires: {{ py2pkg('taskflow', py_versions=['py3']) }}
BuildRequires: {{ py2pkg('xattr', py_versions=['py3']) }}
Requires: logrotate
Requires: python-{{ pypi_name }} = %{epoch}:%{version}-%{release}
Requires: python3-{{ pypi_name }} = %{epoch}:%{version}-%{release}
BuildArch: noarch
%if 0%{?suse_version}
BuildRequires: systemd-rpm-macros
@ -83,52 +83,52 @@ 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 python-{{ pypi_name }}
%package -n python3-{{ pypi_name }}
Summary: OpenStack Image Service (Glance) - Python module
Group: Applications/System
Requires: {{ py2pkg('Paste') }}
Requires: {{ py2pkg('PasteDeploy') }}
Requires: {{ py2pkg('PrettyTable') }}
Requires: {{ py2pkg('Routes') }}
Requires: {{ py2pkg('SQLAlchemy') }}
Requires: {{ py2pkg('WSME') }}
Requires: {{ py2pkg('WebOb') }}
Requires: {{ py2pkg('alembic') }}
Requires: {{ py2pkg('cryptography') }}
Requires: {{ py2pkg('cursive') }}
Requires: {{ py2pkg('debtcollector') }}
Requires: {{ py2pkg('defusedxml') }}
Requires: {{ py2pkg('eventlet') }}
Requires: {{ py2pkg('futurist') }}
Requires: {{ py2pkg('glance_store') }}
Requires: {{ py2pkg('httplib2') }}
Requires: {{ py2pkg('iso8601') }}
Requires: {{ py2pkg('jsonschema') }}
Requires: {{ py2pkg('keystoneauth1') }}
Requires: {{ py2pkg('python-keystoneclient') }}
Requires: {{ py2pkg('keystonemiddleware') }}
Requires: {{ py2pkg('monotonic') }}
Requires: {{ py2pkg('oslo.concurrency') }}
Requires: {{ py2pkg('oslo.config') }}
Requires: {{ py2pkg('oslo.context') }}
Requires: {{ py2pkg('oslo.db') }}
Requires: {{ py2pkg('oslo.i18n') }}
Requires: {{ py2pkg('oslo.log') }}
Requires: {{ py2pkg('oslo.messaging') }}
Requires: {{ py2pkg('oslo.middleware') }}
Requires: {{ py2pkg('oslo.policy') }}
Requires: {{ py2pkg('oslo.utils') }}
Requires: {{ py2pkg('osprofiler') }}
Requires: {{ py2pkg('pbr') }}
Requires: {{ py2pkg('pyOpenSSL') }}
Requires: {{ py2pkg('retrying') }}
Requires: {{ py2pkg('six') }}
Requires: {{ py2pkg('sqlalchemy-migrate') }}
Requires: {{ py2pkg('sqlparse') }}
Requires: {{ py2pkg('stevedore') }}
Requires: {{ py2pkg('taskflow') }}
Requires: {{ py2pkg('Paste', py_versions=['py3']) }}
Requires: {{ py2pkg('PasteDeploy', py_versions=['py3']) }}
Requires: {{ py2pkg('PrettyTable', py_versions=['py3']) }}
Requires: {{ py2pkg('Routes', py_versions=['py3']) }}
Requires: {{ py2pkg('SQLAlchemy', py_versions=['py3']) }}
Requires: {{ py2pkg('WSME', py_versions=['py3']) }}
Requires: {{ py2pkg('WebOb', py_versions=['py3']) }}
Requires: {{ py2pkg('alembic', py_versions=['py3']) }}
Requires: {{ py2pkg('cryptography', py_versions=['py3']) }}
Requires: {{ py2pkg('cursive', py_versions=['py3']) }}
Requires: {{ py2pkg('debtcollector', py_versions=['py3']) }}
Requires: {{ py2pkg('defusedxml', py_versions=['py3']) }}
Requires: {{ py2pkg('eventlet', py_versions=['py3']) }}
Requires: {{ py2pkg('futurist', py_versions=['py3']) }}
Requires: {{ py2pkg('glance_store', py_versions=['py3']) }}
Requires: {{ py2pkg('httplib2', py_versions=['py3']) }}
Requires: {{ py2pkg('iso8601', py_versions=['py3']) }}
Requires: {{ py2pkg('jsonschema', py_versions=['py3']) }}
Requires: {{ py2pkg('keystoneauth1', py_versions=['py3']) }}
Requires: {{ py2pkg('python-keystoneclient', py_versions=['py3']) }}
Requires: {{ py2pkg('keystonemiddleware', py_versions=['py3']) }}
Requires: {{ py2pkg('monotonic', py_versions=['py3']) }}
Requires: {{ py2pkg('oslo.concurrency', py_versions=['py3']) }}
Requires: {{ py2pkg('oslo.config', py_versions=['py3']) }}
Requires: {{ py2pkg('oslo.context', py_versions=['py3']) }}
Requires: {{ py2pkg('oslo.db', py_versions=['py3']) }}
Requires: {{ py2pkg('oslo.i18n', py_versions=['py3']) }}
Requires: {{ py2pkg('oslo.log', py_versions=['py3']) }}
Requires: {{ py2pkg('oslo.messaging', py_versions=['py3']) }}
Requires: {{ py2pkg('oslo.middleware', py_versions=['py3']) }}
Requires: {{ py2pkg('oslo.policy', py_versions=['py3']) }}
Requires: {{ py2pkg('oslo.utils', py_versions=['py3']) }}
Requires: {{ py2pkg('osprofiler', py_versions=['py3']) }}
Requires: {{ py2pkg('pbr', py_versions=['py3']) }}
Requires: {{ py2pkg('pyOpenSSL', py_versions=['py3']) }}
Requires: {{ py2pkg('retrying', py_versions=['py3']) }}
Requires: {{ py2pkg('six', py_versions=['py3']) }}
Requires: {{ py2pkg('sqlalchemy-migrate', py_versions=['py3']) }}
Requires: {{ py2pkg('sqlparse', py_versions=['py3']) }}
Requires: {{ py2pkg('stevedore', py_versions=['py3']) }}
Requires: {{ py2pkg('taskflow', py_versions=['py3']) }}
%description -n python-{{ pypi_name }}
%description -n python3-{{ pypi_name }}
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.
@ -146,8 +146,25 @@ This package contains the Glance Python library.
Summary: Documentation for OpenStack Image Service
Group: Documentation
BuildRequires: {{ py2pkg('Sphinx') }}
BuildRequires: {{ py2pkg('WSME') }}
BuildRequires: {{ py2pkg('cursive') }}
BuildRequires: {{ py2pkg('glance_store') }}
BuildRequires: {{ py2pkg('httplib2') }}
BuildRequires: {{ py2pkg('openstackdocstheme') }}
BuildRequires: {{ py2pkg('oslo.concurrency') }}
BuildRequires: {{ py2pkg('oslo.config') }}
BuildRequires: {{ py2pkg('oslo.context') }}
BuildRequires: {{ py2pkg('oslo.db') }}
BuildRequires: {{ py2pkg('oslo.log') }}
BuildRequires: {{ py2pkg('oslo.messaging') }}
BuildRequires: {{ py2pkg('oslo.middleware') }}
BuildRequires: {{ py2pkg('oslo.policy') }}
BuildRequires: {{ py2pkg('oslo.utils') }}
BuildRequires: {{ py2pkg('osprofiler') }}
BuildRequires: {{ py2pkg('sphinxcontrib-apidoc') }}
BuildRequires: {{ py2pkg('stevedore') }}
BuildRequires: {{ py2pkg('taskflow') }}
BuildRequires: {{ py2pkg('xattr') }}
%description doc
The Glance project provides a service where users can upload and discover
@ -166,7 +183,7 @@ This package contains the documentation.
%package api
Summary: OpenStack Image service (Glance) - API
Group: Development/Languages/Python
Requires: python-{{ pypi_name }} = %{epoch}:%{version}-%{release}
Requires: python3-{{ pypi_name }} = %{epoch}:%{version}-%{release}
%description api
The Glance project provides a service where users can upload and discover
@ -202,10 +219,9 @@ This package contains the %{name} Registry server.
%prep
%autosetup -n {{ pypi_name }}-{{ upstream_version }}
%py_req_cleanup
sed -i 's/^warning-is-error.*/warning-is-error = 0/g' setup.cfg
%build
%{py2_build}
%{py3_build}
# build documentation
%if 0%{?with_doc}
PBR_VERSION={{ upstream_version }} sphinx-build -b html doc/source doc/build/html
@ -217,7 +233,7 @@ for service in api registry scrubber cache manage image-import; do
done
%install
%{py2_install}
%{py3_install}
# directories
install -d -m 755 %{buildroot}%{_sysconfdir}/{{ pypi_name }}
install -d -m 755 %{buildroot}%{_sysconfdir}/glance/glance.conf.d/
@ -255,7 +271,12 @@ rm -rf %{buildroot}%{_prefix}%{_sysconfdir}/glance
exit 0
%check
OS_TEST_PATH=./glance/tests/unit PYTHONPATH=. ostestr
%if 0%{?suse_version}
OS_TEST_PATH=./glance/tests/unit PYTHONPATH=. stestr run
%endif
%if 0%{?rdo}
OS_TEST_PATH=./glance/tests/unit PYTHONPATH=. stestr-3 run
%endif
%post
%tmpfiles_create %{_tmpfilesdir}/glance.conf
@ -319,10 +340,10 @@ OS_TEST_PATH=./glance/tests/unit PYTHONPATH=. ostestr
%{_bindir}/glance-replicator
%{_bindir}/glance-scrubber
%files -n python-glance
%files -n python3-glance
%defattr(-,root,root,-)
%license LICENSE
%{python_sitelib}/{{ pypi_name }}*
%{python3_sitelib}/{{ pypi_name }}*
%if 0%{?with_doc}
%files doc

View File

@ -16,7 +16,7 @@ for specstyle in $specstyles; do
rm -rf $OUTPUTDIR/${specstyle}/*
done
py3onlypackages=("openstack-keystone")
py3onlypackages=("openstack-glance openstack-keystone")
count=0
echo "run renderspec over specfiles from ${specdir}"