openstack-cinder/openstack-cinder.spec
wangxiyuan aacde50b66 Train support
(cherry picked from commit 37f21c15807eb8f0eafe0a04b91003b58592f61b)
2021-11-18 11:43:17 +08:00

382 lines
14 KiB
RPMSpec

%global service cinder
%global common_desc \
OpenStack Volume (codename Cinder) provides services to manage and \
access block storage volumes for use by Virtual Machine instances.
Name: openstack-%{service}
Version: 15.6.0
Release: 1
Summary: OpenStack Volume service
License: ASL 2.0
URL: http://www.openstack.org/software/openstack-storage/
BuildArch: noarch
Source0: https://tarballs.openstack.org/cinder/cinder-15.6.0.tar.gz
Source10: openstack-%{service}-api.service
Source11: openstack-%{service}-scheduler.service
Source12: openstack-%{service}-volume.service
Source13: openstack-%{service}-backup.service
Source20: %{service}-sudoers
Source21: %{service}.logrotate
BuildRequires: openstack-macros
BuildRequires: python3-os-win
BuildRequires: python3-pbr
BuildRequires: python3-jsonschema
BuildRequires: python3-castellan
BuildRequires: python3-cursive
BuildRequires: python3-routes
BuildRequires: python3-webob
BuildRequires: python3-barbicanclient
BuildRequires: python3-glanceclient
BuildRequires: python3-keystoneclient
BuildRequires: python3-novaclient
BuildRequires: python3-swiftclient
BuildRequires: python3-google-api-client
BuildRequires: python3-keystonemiddleware
BuildRequires: python3-keystoneauth1
BuildRequires: python3-osprofiler
BuildRequires: python3-oslo-middleware
BuildRequires: python3-oslo-messaging
BuildRequires: python3-oslo-policy
BuildRequires: python3-oslo-reports
BuildRequires: python3-oslo-vmware
BuildRequires: python3-oauth2client
BuildRequires: python3-packaging
BuildRequires: python3-paste
BuildRequires: python3-paste-deploy
BuildRequires: python3-paramiko
BuildRequires: python3-eventlet
BuildRequires: python3-greenlet
BuildRequires: python3-iso8601
BuildRequires: python3-stevedore
BuildRequires: python3-tooz
BuildRequires: python3-sqlalchemy
BuildRequires: python3-six
BuildRequires: python3-psutil
BuildRequires: python3-os-brick
BuildRequires: python3-oslo-config
BuildRequires: python3-oslo-concurrency
BuildRequires: python3-oslo-context
BuildRequires: python3-oslo-db
BuildRequires: python3-oslo-i18n
BuildRequires: python3-oslo-log
BuildRequires: python3-oslo-privsep
BuildRequires: python3-oslo-rootwrap
BuildRequires: python3-oslo-serialization
BuildRequires: python3-oslo-service
BuildRequires: python3-oslo-utils
BuildRequires: python3-oslo-versionedobjects
BuildRequires: python3-oslo-upgradecheck
BuildRequires: python3-taskflow
BuildRequires: python3-requests
BuildRequires: python3-pyparsing
BuildRequires: python3-pytz
BuildRequires: python3-tabulate
BuildRequires: python3-cryptography
BuildRequires: python3-lxml
BuildRequires: python3-sqlalchemy-migrate
BuildRequires: python3-httplib2
BuildRequires: python3-tenacity
BuildRequires: python3-decorator
BuildRequires: python3-rtslib
BuildRequires: python3-zstd
BuildRequires: python3-importlib_metadata
BuildRequires: python3-boto3
# Needed for unit tests
BuildRequires: python3-hacking
BuildRequires: python3-flake8-logging-format
BuildRequires: python3-coverage
BuildRequires: python3-PyMySQL
BuildRequires: python3-psycopg2
BuildRequires: python3-SQLAlchemy-Utils
BuildRequires: python3-ddt
BuildRequires: python3-fixtures
BuildRequires: python3-oslotest
BuildRequires: python3-testtools
BuildRequires: python3-stestr
BuildRequires: python3-bandit
BuildRequires: python3-doc8
BuildRequires: python3-mypy
Requires: python3-cinderclient
Requires: python3-pyudev
Requires(pre): shadow-utils
Requires: openstack-%{service}-api = %{version}-%{release}
Requires: openstack-%{service}-scheduler = %{version}-%{release}
Requires: openstack-%{service}-volume = %{version}-%{release}
Requires: openstack-%{service}-backup = %{version}-%{release}
%description
%{common_desc}
%package api
Summary: OpenStack Volume service (Cinder) - API
Requires: %{name}-common = %{version}-%{release}
%description api
%{common_desc}
This package contains the %{name} API server.
%package scheduler
Summary: OpenStack Volume service (Cinder) - Scheduler
Requires: %{name}-common = %{version}-%{release}
%description scheduler
%{common_desc}
This package contains the %{name} Scheduler server.
%package volume
Summary: OpenStack Volume service (Cinder) - Volume
Requires: %{name}-common = %{version}-%{release}
%description volume
%{common_desc}
This package contains the %{name} Volume server.
%package backup
Summary: OpenStack Volume service (Cinder) - Backup
Requires: %{name}-common = %{version}-%{release}
Requires: targetcli
%description backup
%{common_desc}
This package contains the %{name} Backup server.
%package common
Summary: OpenStack Volume service (Cinder) - Common
Requires: python3-cinder = %{version}-%{release}
%description common
%{common_desc}
This package contains scripts, config and dependencies shared between all the ${name} services
%package -n python3-%{service}
Summary: OpenStack Volume Python libraries
Requires: python3-os-win
Requires: python3-pbr
Requires: python3-jsonschema
Requires: python3-castellan
Requires: python3-cursive
Requires: python3-routes
Requires: python3-webob
Requires: python3-barbicanclient
Requires: python3-glanceclient
Requires: python3-keystoneclient
Requires: python3-novaclient
Requires: python3-swiftclient
Requires: python3-google-api-client
Requires: python3-keystonemiddleware
Requires: python3-keystoneauth1
Requires: python3-osprofiler
Requires: python3-oslo-middleware
Requires: python3-oslo-messaging
Requires: python3-oslo-policy
Requires: python3-oslo-reports
Requires: python3-oslo-vmware
Requires: python3-oslo-upgradecheck
Requires: python3-oauth2client
Requires: python3-packaging
Requires: python3-paste
Requires: python3-paste-deploy
Requires: python3-paramiko
Requires: python3-eventlet
Requires: python3-greenlet
Requires: python3-iso8601
Requires: python3-stevedore
Requires: python3-tooz
Requires: python3-sqlalchemy
Requires: python3-six
Requires: python3-psutil
Requires: python3-os-brick
Requires: python3-oslo-config
Requires: python3-oslo-concurrency
Requires: python3-oslo-context
Requires: python3-oslo-db
Requires: python3-oslo-i18n
Requires: python3-oslo-log
Requires: python3-oslo-privsep
Requires: python3-oslo-rootwrap
Requires: python3-oslo-serialization
Requires: python3-oslo-service
Requires: python3-oslo-utils
Requires: python3-oslo-versionedobjects
Requires: python3-taskflow
Requires: python3-requests
Requires: python3-pyparsing
Requires: python3-pytz
Requires: python3-tabulate
Requires: python3-cryptography
Requires: python3-lxml
Requires: python3-sqlalchemy-migrate
Requires: python3-httplib2
Requires: python3-tenacity
Requires: python3-decorator
Requires: python3-rtslib
Requires: lvm2
Requires: sudo
Requires: sysfsutils
Requires: cryptsetup
Requires: cracklib-dicts
Requires: qemu-img
Requires: iscsi-initiator-utils
Requires: python3-zstd
Requires: python3-importlib_metadata
Requires: python3-boto3
%description -n python3-%{service}
%{common_desc}
This package contains the %{service} Python library.
%package -n python3-%{service}-tests
Summary: Cinder tests
Requires: python3-hacking
Requires: python3-flake8-logging-format
Requires: python3-coverage
Requires: python3-PyMySQL
Requires: python3-psycopg2
Requires: python3-SQLAlchemy-Utils
Requires: python3-ddt
Requires: python3-fixtures
Requires: python3-oslotest
Requires: python3-subunit
Requires: python3-testtools
Requires: python3-stestr
Requires: python3-bandit
Requires: python3-doc8
Requires: python3-mypy
Requires: python3-%{service}
%description -n python3-%{service}-tests
%{common_desc}
This package contains the Cinder test files.
%prep
%autosetup -n %{service}-%{version}
%py_req_cleanup
%build
%{py3_build}
oslo-config-generator --config-file=tools/config/%{service}-config-generator.conf
%install
%{py3_install}
install -d -m 755 %{buildroot}%{_sharedstatedir}/%{service}
install -d -m 755 %{buildroot}%{_sharedstatedir}/%{service}/tmp
install -d -m 755 %{buildroot}%{_sysconfdir}/%{service}
install -d -m 755 %{buildroot}%{_sysconfdir}/%{service}/rootwrap.d
install -d -m 755 %{buildroot}%{_sysconfdir}/%{service}/volumes
install -d -m 755 %{buildroot}%{_localstatedir}/log/%{service}
install -d -m 755 %{buildroot}%{_localstatedir}/run/%{service}
install -d -m 755 %{buildroot}%{_datarootdir}
install -d -m 755 %{buildroot}%{_datarootdir}/%{service}
install -d -m 755 %{buildroot}%{_datarootdir}/%{service}/rootwrap/
install -p -D -m 640 %{SOURCE10} %{buildroot}%{_unitdir}/openstack-%{service}-api.service
install -p -D -m 640 %{SOURCE11} %{buildroot}%{_unitdir}/openstack-%{service}-scheduler.service
install -p -D -m 640 %{SOURCE12} %{buildroot}%{_unitdir}/openstack-%{service}-volume.service
install -p -D -m 640 %{SOURCE13} %{buildroot}%{_unitdir}/openstack-%{service}-backup.service
install -p -D -m 440 %{SOURCE20} %{buildroot}%{_sysconfdir}/sudoers.d/%{service}
install -p -D -m 644 %{SOURCE21} %{buildroot}%{_sysconfdir}/logrotate.d/openstack-%{service}
install -p -D -m 640 etc/%{service}/rootwrap.conf %{buildroot}%{_sysconfdir}/%{service}/rootwrap.conf
install -p -D -m 640 etc/%{service}/api-paste.ini %{buildroot}%{_sysconfdir}/%{service}/api-paste.ini
install -p -D -m 640 etc/%{service}/%{service}.conf.sample %{buildroot}%{_sysconfdir}/%{service}/%{service}.conf
install -p -D -m 640 etc/%{service}/resource_filters.json %{buildroot}%{_sysconfdir}/%{service}/resource_filters.json
install -p -D -m 640 etc/%{service}/rootwrap.d/* %{buildroot}%{_datarootdir}/%{service}/rootwrap/
rm -f %{buildroot}%{python3_sitelib}/%{service}/locale/*/LC_*/%{service}*po
rm -f %{buildroot}%{python3_sitelib}/%{service}/locale/*pot
mv %{buildroot}%{python3_sitelib}/%{service}/locale %{buildroot}%{_datarootdir}/locale
rm -rf %{buildroot}%{_prefix}/etc
#%check
#OS_TEST_PATH=./%{service}/tests/unit ostestr --concurrency=2
%pre common
%openstack_pre_user_group_create %{service} %{service} /sbin/nologin
exit 0
%post volume
%systemd_post openstack-%{service}-volume
%post api
%systemd_post openstack-%{service}-api
%post scheduler
%systemd_post openstack-%{service}-scheduler
%post backup
%systemd_post openstack-%{service}-backup
%preun volume
%systemd_preun openstack-%{service}-volume
%preun api
%systemd_preun openstack-%{service}-api
%preun scheduler
%systemd_preun openstack-%{service}-scheduler
%preun backup
%systemd_preun openstack-%{service}-backup
%postun volume
%systemd_postun_with_restart openstack-%{service}-volume
%postun api
%systemd_postun_with_restart openstack-%{service}-api
%postun scheduler
%systemd_postun_with_restart openstack-%{service}-scheduler
%postun backup
%systemd_postun_with_restart openstack-%{service}-backup
%files
%files api
%{_bindir}/cinder-api
%{_unitdir}/openstack-cinder-api.service
%files scheduler
%{_bindir}/cinder-scheduler
%{_unitdir}/openstack-cinder-scheduler.service
%files volume
%{_bindir}/cinder-volume
%{_unitdir}/openstack-cinder-volume.service
%files backup
%{_bindir}/cinder-backup
%{_unitdir}/openstack-cinder-backup.service
%files common
%license LICENSE
%dir %attr(0750, %{service}, %{service}) %{_sysconfdir}/%{service}
%dir %attr(0750, %{service}, %{service}) %{_sysconfdir}/%{service}/volumes
%dir %attr(0750, %{service}, %{service}) %{_localstatedir}/log/%{service}
%dir %attr(0750, %{service}, %{service}) %{_localstatedir}/run/%{service}
%dir %attr(0750, %{service}, %{service}) %{_sharedstatedir}/%{service}
%dir %attr(0750, %{service}, %{service}) %{_sharedstatedir}/%{service}/tmp
%attr(-, %{service}, %{service}) %{_sysconfdir}/%{service}/rootwrap.d/
%attr(-, %{service}, %{service}) %{_datarootdir}/%{service}
%attr(0640, root, %{service}) %{_sysconfdir}/logrotate.d/openstack-%{service}
%attr(0440, root, root) %{_sysconfdir}/sudoers.d/%{service}
%config(noreplace) %attr(0640, %{service}, %{service}) %{_sysconfdir}/%{service}/%{service}.conf
%config(noreplace) %attr(0640, %{service}, %{service}) %{_sysconfdir}/%{service}/api-paste.ini
%config(noreplace) %attr(0640, %{service}, %{service}) %{_sysconfdir}/%{service}/rootwrap.conf
%config(noreplace) %attr(0640, %{service}, %{service}) %{_sysconfdir}/%{service}/resource_filters.json
%{_bindir}/%{service}-*
%exclude %{_bindir}/%{service}-api
%exclude %{_bindir}/%{service}-scheduler
%exclude %{_bindir}/%{service}-volume
%exclude %{_bindir}/%{service}-backup
%files -n python3-%{service}
%license LICENSE
%{python3_sitelib}/%{service}
%{python3_sitelib}/%{service}-*.egg-info
%{_bindir}/%{service}-rtstool
%exclude %{python3_sitelib}/%{service}/tests
%files -n python3-%{service}-tests
%license LICENSE
%{python3_sitelib}/%{service}/tests
%changelog
* Fri Nov 05 2021 wangxiyuan <wangxiyuan1007@gmail.com> - 15.6.0-1
- Support OpenStack Train release