diff --git a/cinder-17.0.0.tar.gz b/cinder-17.0.0.tar.gz new file mode 100644 index 0000000..9b9bf70 Binary files /dev/null and b/cinder-17.0.0.tar.gz differ diff --git a/cinder-dist.conf b/cinder-dist.conf new file mode 100644 index 0000000..16be89b --- /dev/null +++ b/cinder-dist.conf @@ -0,0 +1,17 @@ +[DEFAULT] +log_dir = /var/log/cinder +use_stderr = False +state_path = /var/lib/cinder +lock_path = /var/lib/cinder/tmp +volumes_dir = /etc/cinder/volumes +iscsi_helper = lioadm +rootwrap_config = /etc/cinder/rootwrap.conf +auth_strategy = keystone + +[database] +connection = mysql://cinder:cinder@localhost/cinder + +[keystone_authtoken] +auth_host = 127.0.0.1 +auth_port = 35357 +auth_protocol = http diff --git a/cinder-sudoers b/cinder-sudoers new file mode 100644 index 0000000..ed5d479 --- /dev/null +++ b/cinder-sudoers @@ -0,0 +1,3 @@ +Defaults:cinder !requiretty + +cinder ALL = (root) NOPASSWD: /usr/bin/cinder-rootwrap /etc/cinder/rootwrap.conf * diff --git a/cinder.logrotate b/cinder.logrotate new file mode 100644 index 0000000..b31713f --- /dev/null +++ b/cinder.logrotate @@ -0,0 +1,11 @@ +compress + +/var/log/cinder/*.log { + weekly + rotate 4 + missingok + compress + minsize 100k + size 10M + copytruncate +} diff --git a/openstack-cinder-api.service b/openstack-cinder-api.service new file mode 100644 index 0000000..a3c890a --- /dev/null +++ b/openstack-cinder-api.service @@ -0,0 +1,14 @@ +[Unit] +Description=OpenStack Cinder API Server +After=syslog.target network.target + +[Service] +Type=simple +User=cinder +ExecStart=/usr/bin/cinder-api --config-file /usr/share/cinder/cinder-dist.conf --config-file /etc/cinder/cinder.conf --logfile /var/log/cinder/api.log +Restart=on-failure +KillMode=process + +[Install] +WantedBy=multi-user.target + diff --git a/openstack-cinder-backup.service b/openstack-cinder-backup.service new file mode 100644 index 0000000..39d3877 --- /dev/null +++ b/openstack-cinder-backup.service @@ -0,0 +1,13 @@ +[Unit] +Description=OpenStack Cinder Backup Server +After=syslog.target network.target + +[Service] +Type=simple +User=cinder +ExecStart=/usr/bin/cinder-backup --config-file /usr/share/cinder/cinder-dist.conf --config-file /etc/cinder/cinder.conf --logfile /var/log/cinder/backup.log +Restart=on-failure + +[Install] +WantedBy=multi-user.target + diff --git a/openstack-cinder-scheduler.service b/openstack-cinder-scheduler.service new file mode 100644 index 0000000..8062081 --- /dev/null +++ b/openstack-cinder-scheduler.service @@ -0,0 +1,13 @@ +[Unit] +Description=OpenStack Cinder Scheduler Server +After=syslog.target network.target + +[Service] +Type=simple +User=cinder +ExecStart=/usr/bin/cinder-scheduler --config-file /usr/share/cinder/cinder-dist.conf --config-file /etc/cinder/cinder.conf --logfile /var/log/cinder/scheduler.log +Restart=on-failure + +[Install] +WantedBy=multi-user.target + diff --git a/openstack-cinder-volume.service b/openstack-cinder-volume.service new file mode 100644 index 0000000..919bf8d --- /dev/null +++ b/openstack-cinder-volume.service @@ -0,0 +1,16 @@ +[Unit] +Description=OpenStack Cinder Volume Server +After=syslog.target network.target + +[Service] +LimitNOFILE=131072 +LimitNPROC=131072 +Type=simple +User=cinder +ExecStart=/usr/bin/cinder-volume --config-file /usr/share/cinder/cinder-dist.conf --config-file /etc/cinder/cinder.conf --logfile /var/log/cinder/volume.log +Restart=on-failure +KillMode=process + +[Install] +WantedBy=multi-user.target + diff --git a/openstack-cinder.spec b/openstack-cinder.spec new file mode 100644 index 0000000..e5c99e0 --- /dev/null +++ b/openstack-cinder.spec @@ -0,0 +1,425 @@ +%{!?upstream_version: %global upstream_version %{version}%{?milestone}} +%global with_doc %{!?_without_doc:0}%{?_without_doc:1} +%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} +Epoch: 1 +Version: 17.0.0 +Release: 1%{?dist} +Summary: OpenStack Volume service + +License: Apache-2.0 +URL: http://www.openstack.org/software/openstack-storage/ +Source0: https://tarballs.openstack.org/%{service}/%{service}-%{upstream_version}.tar.gz + + +Source1: %{service}-dist.conf +Source2: %{service}.logrotate + +Source10: openstack-%{service}-api.service +Source11: openstack-%{service}-scheduler.service +Source12: openstack-%{service}-volume.service +Source13: openstack-%{service}-backup.service +Source20: %{service}-sudoers + + +BuildArch: noarch + +BuildRequires: intltool +BuildRequires: python3-pbr +BuildRequires: python3-reno +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-netaddr +BuildRequires: systemd +BuildRequires: git-core +BuildRequires: python3-os-brick +BuildRequires: python3-pyparsing +BuildRequires: python3-pytz +BuildRequires: openstack-macros +BuildRequires: python3-cursive +BuildRequires: python3-google-api-client >= 1.4.2 +BuildRequires: python3-keystonemiddleware +BuildRequires: python3-glanceclient >= 1:2.15.0 +BuildRequires: python3-novaclient >= 9.1.0 +BuildRequires: python3-swiftclient >= 3.2.0 +BuildRequires: python3-oslo-db +BuildRequires: python3-oslo-config +BuildRequires: python3-oslo-policy +BuildRequires: python3-oslo-privsep +BuildRequires: python3-oslo-reports +BuildRequires: python3-oslotest +BuildRequires: python3-oslo-utils +BuildRequires: python3-oslo-versionedobjects +BuildRequires: python3-oslo-vmware +BuildRequires: python3-os-win +BuildRequires: python3-castellan +BuildRequires: python3-cryptography +BuildRequires: python3-osprofiler +BuildRequires: python3-paramiko +BuildRequires: python3-suds +BuildRequires: python3-taskflow +BuildRequires: python3-tooz +BuildRequires: python3-oslo-log +BuildRequires: python3-oslo-i18n +BuildRequires: python3-barbicanclient +BuildRequires: python3-requests +BuildRequires: python3-defusedxml +BuildRequires: python3-pip + +BuildRequires: python3-babel + +BuildRequires: python3-ddt +BuildRequires: python3-fixtures +BuildRequires: python3-mock +BuildRequires: python3-oslotest +BuildRequires: python3-packaging +BuildRequires: python3-subunit +BuildRequires: python3-testtools +BuildRequires: python3-testrepository +BuildRequires: python3-testresources +BuildRequires: python3-testscenarios +BuildRequires: python3-os-testr +BuildRequires: python3-tabulate + +BuildRequires: python3-decorator +BuildRequires: python3-lxml +BuildRequires: python3-rtslib +BuildRequires: python3-tenacity + + +Requires: python3-%{service} = %{epoch}:%{version}-%{release} + +Requires: python3-pbr + +Requires: python3-cinderclient + +Requires(pre): shadow-utils + +Requires: python3-osprofiler + +Requires: python3-pyudev + +%description +%{common_desc} + + +%package -n python3-%{service} +Summary: OpenStack Volume Python libraries +%{?python_provide:%python_provide python3-%{service}} +Group: Applications/System + +Requires: python3-%{service}-common = %{epoch}:%{version}-%{release} + +Requires: cryptsetup +Requires: cracklib-dicts +Requires: qemu-img >= 2.10.0 +Requires: python3-jsonschema >= 2.6.0 + +Requires: python3-castellan >= 1.3.0 +Requires: python3-cursive >= 0.2.1 +Requires: python3-etcd3gw + +Requires: python3-routes >= 2.3.1 +Requires: python3-webob >= 1.7.1 + +Requires: python3-barbicanclient >= 4.9.0 +Requires: python3-glanceclient >= 1:2.15.0 +Requires: python3-keystoneclient >= 1:3.15.0 +Requires: python3-novaclient >= 9.1.0 +Requires: python3-swiftclient >= 3.2.0 + +Requires: python3-google-api-client >= 1.4.2 + +Requires: python3-keystonemiddleware >= 4.21.0 +Requires: python3-keystoneauth1 >= 3.14.0 +Requires: python3-osprofiler >= 1.4.0 + +Requires: python3-os-win >= 4.2.0 + +Requires: python3-oslo-middleware >= 3.31.0 +Requires: python3-oslo-messaging >= 6.4.0 +Requires: python3-oslo-policy >= 1.44.1 +Requires: python3-oslo-reports >= 1.18.0 +Requires: python3-oslo-upgradecheck >= 0.1.0 +Requires: python3-oslo-vmware >= 2.35.0 + +Requires: python3-oauth2client >= 1.5.0 +Requires: python3-packaging +Requires: python3-paste +Requires: python3-paste-deploy + +%description -n python3-%{service} +%{common_desc} + +This package contains the %{service} Python library. + +%package -n python3-%{service}-common +Summary: Cinder common code +%{?python_provide:%python_provide python3-%{service}-common} + +Requires: sudo + +Requires: sysfsutils +Requires: python3-paramiko >= 2.7.1 + +Requires: python3-eventlet >= 0.25.0 +Requires: python3-greenlet >= 0.4.13 +Requires: python3-iso8601 +Requires: python3-stevedore >= 1.31.0 +Requires: python3-tooz >= 1.58.0 + +Requires: python3-sqlalchemy + +Requires: python3-six >= 1.11.0 +Requires: python3-psutil >= 3.2.2 + +Requires: python3-os-brick >= 4.0.1 +Requires: python3-oslo-config +Requires: python3-oslo-concurrency >= 3.26.0 +Requires: python3-oslo-context >= 2.23.0 +Requires: python3-oslo-db >= 6.0.0 +Requires: python3-oslo-i18n >= 3.24.0 +Requires: python3-oslo-log >= 3.44.0 +Requires: python3-oslo-privsep >= 2.3.0 +Requires: python3-oslo-rootwrap >= 5.8.0 +Requires: python3-oslo-serialization >= 2.25.0 +Requires: python3-oslo-service >= 2.0.0 +Requires: python3-oslo-utils >= 3.40.2 +Requires: python3-oslo-versionedobjects >= 1.31.2 +Requires: python3-zstd >= 1.4.5 +Requires: python3-importlib_metadata + +Requires: python3-taskflow >= 3.8.0 + +Requires: iscsi-initiator-utils + +Requires: python3-requests >= 2.18.0 +Requires: python3-pyparsing >= 2.2.1 +Requires: python3-pytz +Requires: python3-tabulate >= 0.8.5 + +Requires: python3-cryptography >= 2.1.4 + + +Requires: python3-lxml >= 4.2.0 +Requires: python3-migrate >= 0.13.0 +Requires: python3-httplib2 >= 0.9.1 +Requires: python3-tenacity +Requires: python3-decorator + +Requires: lvm2 +Requires: python3-rtslib + + +%description -n python3-%{service}-common +Common code for Cinder. + +%package -n python3-%{service}-tests +Summary: Cinder tests +%{?python_provide:%python_provide python3-%{service}-tests} +Requires: openstack-%{service} = %{epoch}:%{version}-%{release} + +Requires: python3-hacking +Requires: python3-ddt +Requires: python3-fixtures +Requires: python3-mock +Requires: python3-oslotest +Requires: python3-subunit +Requires: python3-testtools +Requires: python3-testrepository +Requires: python3-testresources +Requires: python3-testscenarios +Requires: python3-stestr + + +%description -n python3-%{service}-tests +%{common_desc} + +This package contains the Cinder test files. + +%if 0%{?with_doc} +%package doc +Summary: Documentation for OpenStack Volume +Group: Documentation + +Requires: %{name} = %{epoch}:%{version}-%{release} + +BuildRequires: graphviz +BuildRequires: python3-sphinx +BuildRequires: python3-openstackdocstheme +BuildRequires: python3-sphinxcontrib-apidoc +BuildRequires: python3-sphinx-feature-classification +BuildRequires: python3-eventlet +BuildRequires: python3-routes +BuildRequires: python3-sqlalchemy +BuildRequires: python3-webob +BuildRequires: python3-iso8601 >= 0.1.9 + +BuildRequires: python3-migrate + + +%description doc +%{common_desc} + +This package contains documentation files for %{service}. +%endif + +%prep +%autosetup -n %{service}-%{upstream_version} -S git + +find . \( -name .gitignore -o -name .placeholder \) -delete + +find %{service} -name \*.py -exec sed -i '/\/usr\/bin\/env python/{d;q}' {} + +sed -i 's/\/usr\/bin\/env python/\/usr\/bin\/env python3/' tools/generate_driver_list.py + +sed -i 's/%{version}.%{milestone}/%{version}/' PKG-INFO + +%py_req_cleanup + +%build +PYTHONPATH=. oslo-config-generator --config-file=tools/config/%{service}-config-generator.conf + +%{py3_build} + +%{__python3} setup.py compile_catalog -d build/lib/%{service}/locale -D cinder + +%install +%{py3_install} + +export PYTHONPATH="$( pwd ):$PYTHONPATH" + +%if 0%{?with_doc} +sphinx-build -b html doc/source doc/build/html +rm -fr doc/build/html/.{doctrees,buildinfo} +sphinx-build -b man doc/source doc/build/man +mkdir -p %{buildroot}%{_mandir}/man1 +install -p -D -m 644 doc/build/man/*.1 %{buildroot}%{_mandir}/man1/ +%endif + + +install -d -m 755 %{buildroot}%{_sharedstatedir}/%{service} +install -d -m 755 %{buildroot}%{_sharedstatedir}/%{service}/tmp +install -d -m 755 %{buildroot}%{_localstatedir}/log/%{service} + +install -d -m 755 %{buildroot}%{_sysconfdir}/%{service} +install -p -D -m 640 %{SOURCE1} %{buildroot}%{_datadir}/%{service}/%{service}-dist.conf +install -d -m 755 %{buildroot}%{_sysconfdir}/%{service}/volumes +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}/resource_filters.json %{buildroot}%{_sysconfdir}/%{service}/resource_filters.json +install -p -D -m 640 etc/%{service}/%{service}.conf.sample %{buildroot}%{_sysconfdir}/%{service}/%{service}.conf + +install -p -D -m 644 %{SOURCE10} %{buildroot}%{_unitdir}/openstack-%{service}-api.service +install -p -D -m 644 %{SOURCE11} %{buildroot}%{_unitdir}/openstack-%{service}-scheduler.service +install -p -D -m 644 %{SOURCE12} %{buildroot}%{_unitdir}/openstack-%{service}-volume.service +install -p -D -m 644 %{SOURCE13} %{buildroot}%{_unitdir}/openstack-%{service}-backup.service + +install -p -D -m 440 %{SOURCE20} %{buildroot}%{_sysconfdir}/sudoers.d/%{service} + +install -p -D -m 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/logrotate.d/openstack-%{service} + +install -d -m 755 %{buildroot}%{_localstatedir}/run/%{service} + +mkdir -p %{buildroot}%{_datarootdir}/%{service}/rootwrap/ +install -p -D -m 644 etc/%{service}/rootwrap.d/* %{buildroot}%{_datarootdir}/%{service}/rootwrap/ + + +mkdir -p %{buildroot}%{_sysconfdir}/%{service}/rootwrap.d +for filter in %{_datarootdir}/os-brick/rootwrap/*.filters; do +ln -s $filter %{buildroot}%{_sysconfdir}/%{service}/rootwrap.d/ +done + +install -d -m 755 %{buildroot}%{_datadir} +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}%{_datadir}/locale + +%find_lang %{service} --all-name + +rm -f %{buildroot}/usr/share/doc/%{service}/README* + +rm -rf %{buildroot}%{_prefix}/etc + +%if 0%{!?dlrn} +%check +OS_TEST_PATH=./%{service}/tests/unit ostestr --concurrency=2 +%endif + +%pre +getent group %{service} >/dev/null || groupadd -r %{service} --gid 165 +if ! getent passwd %{service} >/dev/null; then + useradd -u 165 -r -g %{service} -G %{service},nobody -d %{_sharedstatedir}/%{service} -s /sbin/nologin -c "OpenStack Cinder Daemons" %{service} +fi +exit 0 + +%post +%systemd_post openstack-%{service}-volume +%systemd_post openstack-%{service}-api +%systemd_post openstack-%{service}-scheduler +%systemd_post openstack-%{service}-backup + +%preun +%systemd_preun openstack-%{service}-volume +%systemd_preun openstack-%{service}-api +%systemd_preun openstack-%{service}-scheduler +%systemd_preun openstack-%{service}-backup + +%postun +%systemd_postun_with_restart openstack-%{service}-volume +%systemd_postun_with_restart openstack-%{service}-api +%systemd_postun_with_restart openstack-%{service}-scheduler +%systemd_postun_with_restart openstack-%{service}-backup + +%files +%dir %{_sysconfdir}/%{service} +%config(noreplace) %attr(-, root, %{service}) %{_sysconfdir}/%{service}/%{service}.conf +%config(noreplace) %attr(-, root, %{service}) %{_sysconfdir}/%{service}/api-paste.ini +%config(noreplace) %attr(-, root, %{service}) %{_sysconfdir}/%{service}/rootwrap.conf +%config(noreplace) %attr(-, root, %{service}) %{_sysconfdir}/%{service}/resource_filters.json +%config(noreplace) %{_sysconfdir}/logrotate.d/openstack-%{service} +%config(noreplace) %{_sysconfdir}/sudoers.d/%{service} +%{_sysconfdir}/%{service}/rootwrap.d/ +%attr(-, root, %{service}) %{_datadir}/%{service}/%{service}-dist.conf + +%dir %attr(0750, %{service}, root) %{_localstatedir}/log/%{service} +%dir %attr(0755, %{service}, root) %{_localstatedir}/run/%{service} +%dir %attr(0755, %{service}, root) %{_sysconfdir}/%{service}/volumes + +%exclude %{_bindir}/%{service}-rtstool +%{_bindir}/%{service}-* +%{_unitdir}/*.service +%{_datarootdir}/%{service} +%if 0%{?with_doc} +%{_mandir}/man1/%{service}*.1.gz +%endif + +%defattr(-, %{service}, %{service}, -) +%dir %{_sharedstatedir}/%{service} +%dir %{_sharedstatedir}/%{service}/tmp + +%files -n python3-%{service} + +%files -n python3-%{service}-common -f %{service}.lang +%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 + +%if 0%{?with_doc} +%files doc +%doc doc/build/html +%endif + +%changelog +* Tue Feb 02 2021 yaozc701 +- update spec file