[MOS10.0] [RPM] Update cinder package
[openstack-build/cinder-build.git] / centos7 / rpm / SPECS / openstack-cinder.spec
index f36b18b4fe12b84c8fe3399ea5e6482cf939ee76..09aa43aa6fb1e6c4a537e15cdf82f4d18081f768 100644 (file)
@@ -2,8 +2,8 @@
 
 Name:             openstack-cinder
 Epoch:            1
-Version:          7.0.0.0rc1
-Release:          2%{?dist}~mos8.0.1
+Version:          9.0.0~b2
+Release:          1%{?dist}~mos0
 Summary:          OpenStack Volume service
 
 Group:            Applications/System
@@ -14,49 +14,69 @@ Source1:          cinder-dist.conf
 Source2:          cinder.logrotate
 Source3:          cinder-tgt.conf
 
-Source10:         openstack-cinder-api.init
-Source11:         openstack-cinder-scheduler.init
-Source12:         openstack-cinder-volume.init
-Source13:         openstack-cinder-backup.init
-Source14:         cinder.conf.sample
-
-Source30:         openstack-cinder-api.service
-Source31:         openstack-cinder-scheduler.service
-Source32:         openstack-cinder-volume.service
-Source33:         openstack-cinder-backup.service
-
-
+Source10:         openstack-cinder-api.service
+Source11:         openstack-cinder-scheduler.service
+Source12:         openstack-cinder-volume.service
+Source13:         openstack-cinder-backup.service
 Source20:         cinder-sudoers
 
-#
-# patches_base=2014.1.1
-#
-Patch0001: 0001-Remove-runtime-dep-on-python-pbr-python-d2to1.patch
-
 BuildArch:        noarch
 BuildRequires:    intltool
-BuildRequires:    python-d2to1
-BuildRequires:    python-oslo-sphinx
-BuildRequires:    python-pbr
-BuildRequires:    python-sphinx
+BuildRequires:    python-oslo-sphinx >= 2.5.0
+BuildRequires:    python-pbr >= 1.6
+BuildRequires:    python-sphinx >= 1.1.2
 BuildRequires:    python-setuptools
-BuildRequires:    python-netaddr >= 0.7.12
-BuildRequires:    python-stevedore
+BuildRequires:    python-stevedore >= 1.16.0
+# Required to build cinder.conf
+BuildRequires:    python-glanceclient >= 1:2.0.0
+BuildRequires:    python-google-api-client >= 1.4.2
+BuildRequires:    python-httplib2 >= 0.7.5
+BuildRequires:    python-keystoneclient >= 1:1.7.0
+BuildRequires:    python-keystonemiddleware >= 4.0.0
+BuildRequires:    python-lxml >= 2.3
+BuildRequires:    python-novaclient >= 1:2.29.0
+BuildRequires:    python-oslo-concurrency >= 3.8.0
+BuildRequires:    python-oslo-config >= 2:3.14.0
+BuildRequires:    python-oslo-context >= 2.4.0
+BuildRequires:    python-oslo-db >= 4.1.0
+BuildRequires:    python-oslo-i18n >= 2.1.0
+BuildRequires:    python-oslo-log >= 1.14.0
+BuildRequires:    python-oslo-messaging >= 5.2.0
+BuildRequires:    python-oslo-middleware >= 3.0.0
+BuildRequires:    python-oslo-policy >= 1.9.0
+BuildRequires:    python-oslo-reports >= 0.6.0
+BuildRequires:    python-oslo-rootwrap >= 5.0.0
+BuildRequires:    python-oslo-serialization >= 1.10.0
+BuildRequires:    python-oslo-service >= 1.10.0
+BuildRequires:    python-oslo-utils >= 3.16.0
+BuildRequires:    python-oslo-versionedobjects >= 1.13.0
+BuildRequires:    python-oslo-vmware >= 2.11.0
+BuildRequires:    python-paramiko >= 2.0.0
+BuildRequires:    python-paste
+BuildRequires:    python-suds-jurko >= 0.6
+BuildRequires:    python-swiftclient >= 2.2.0
+BuildRequires:    python-taskflow >= 1.26.0
+BuildRequires:    python-tooz >= 1.28.0
+BuildRequires:    python-webob >= 1.2.3
+BuildRequires:    python2-os-win >= 0.2.3
+BuildRequires:    pywbem
+BuildRequires:    python-os-brick >= 1.3.0
+
+Requires:         python-cinder = %{epoch}:%{version}-%{release}
 
-#Requires:         openstack-utils
-Requires:         python-cinder = 1:%{version}-%{release}
+Requires:         python-pbr >= 1.6
 
 # as convenience
 Requires:         python-cinderclient
 
-Requires(post):   chkconfig
-Requires(postun): initscripts
-Requires(preun):  chkconfig
+Requires(post):   systemd
+Requires(preun):  systemd
+Requires(postun): systemd
 Requires(pre):    shadow-utils
 
 Requires:         lvm2
-#Requires:         scsi-target-utils
-Requires:         iscsi-initiator-utils
+Requires:         python-osprofiler >= 1.3.0
+Requires:         python-rtslib >= 2.1.fb41
 
 %description
 OpenStack Volume (codename Cinder) provides services to manage and
@@ -69,68 +89,80 @@ Group:            Applications/System
 
 Requires:         sudo
 
-Requires:         MySQL-python
-
 Requires:         qemu-img
 Requires:         sysfsutils
+Requires:         python-os-brick >= 1.3.0
+Requires:         python-paramiko >= 2.0.0
 
-Requires:         python-pbr >= 1.6
-Requires:         python-anyjson >= 0.3.3
-Requires:         python-argparse
-Requires:         python-babel >= 1.3
-Requires:         python-enum34
-Requires:         python-eventlet >= 0.17.4
-Requires:         python-greenlet >= 0.3.2
-Requires:         python-iso8601 >= 0.1.9
-Requires:         python-keystoneclient >= 1:1.6.0
-Requires:         python-keystonemiddleware >= 2.0.0
+Requires:         python-qpid
 Requires:         python-kombu >= 3.0.7
+Requires:         python-amqplib
+
+Requires:         python-eventlet >= 0.18.2
+Requires:         python-greenlet >= 0.3.2
+Requires:         python-iso8601 >= 0.1.11
 Requires:         python-lxml >= 2.3
-Requires:         python-netaddr >= 0.7.12
-Requires:         python-oslo-config >= 1:2.3.0
-Requires:         python-oslo-concurrency >= 2.3.0
-Requires:         python-oslo-context >= 0.2.0
-Requires:         python-oslo-db >= 2.4.1
-Requires:         python-oslo-log >= 1.8.0
-Requires:         python-oslo-messaging >= 1.16.0
-Requires:         python-oslo-middleware >= 2.8.0
-Requires:         python-oslo-policy >= 0.5.0
-Requires:         python-oslo-reports >= 0.1.0
-Requires:         python-oslo-rootwrap >= 2.0.0
-Requires:         python-oslo-serialization >= 1.4.0
-Requires:         python-oslo-utils >= 2.0.0
-Requires:         python-oslo-versionedobjects >= 0.9.0
-Requires:         python-osprofiler >= 0.3.0
-Requires:         python-paramiko >= 1.13.0
-Requires:         python-paste
+Requires:         python-stevedore >= 1.16.0
+Requires:         python-suds-jurko >= 0.6
+Requires:         python-tooz >= 1.28.0
+
+Requires:         python-sqlalchemy >= 1.0.10
+Requires:         python-migrate >= 0.9.6
+
 Requires:         python-paste-deploy >= 1.5.0
-Requires:         python-crypto >= 2.6
-Requires:         pyparsing >= 2.0.3
-Requires:         python-barbicanclient >= 3.3.0
-Requires:         python-glanceclient >= 1:0.18.0
-Requires:         python-novaclient >= 1:2.28.0
-Requires:         python-swiftclient >= 2.2.0
-Requires:         python-requests >= 2.5.2
-Requires:         python-retrying >= 1.2.3
 Requires:         python-routes >= 1.12.3
-Requires:         python-taskflow >= 1.16
-Requires:         python-rtslib >= 2.1.fb41
-Requires:         python-six >= 1.9.0
-Requires:         python-sqlalchemy  >= 0.9.9
-Requires:         python-migrate >= 0.9.6
-Requires:         python-stevedore >= 1.5.0
-Requires:         python-suds-jurko >= 0.6
 Requires:         python-webob >= 1.2.3
-Requires:         python-oslo-i18n >= 1.5.0
-Requires:         python-oslo-vmware >= 1.16.0
 
-Requires:        os-brick >= 0.4.0
+Requires:         python-glanceclient >= 1:2.0.0
+Requires:         python-swiftclient >= 2.2.0
+Requires:         python-keystoneclient >= 1:1.7.0
+Requires:         python-novaclient >= 1:2.29.0
 
-#Requires:         python-qpid
-#Requires:         python-amqplib
-#Requires:         python-lockfile
-#Requires:         python-ceph
-#Requires:         iscsi-initiator-utils
+Requires:         python-oslo-config >= 2:3.14.0
+Requires:         python-six >= 1.9.0
+
+Requires:         python-babel >= 2.3.4
+Requires:         python-google-api-client >= 1.4.2
+
+Requires:         python-oslo-rootwrap >= 5.0.0
+Requires:         python-oslo-utils >= 3.16.0
+Requires:         python-oslo-serialization >= 1.10.0
+Requires:         python-oslo-db >= 4.1.0
+Requires:         python-oslo-context >= 2.4.0
+Requires:         python-oslo-concurrency >= 3.8.0
+Requires:         python-oslo-middleware >= 3.0.0
+Requires:         python-taskflow >= 1.26.0
+Requires:         python-oslo-messaging >= 5.2.0
+Requires:         python-oslo-policy >= 1.9.0
+Requires:         python-oslo-reports >= 0.6.0
+Requires:         python-oslo-service >= 1.10.0
+Requires:         python-oslo-versionedobjects >= 1.13.0
+
+Requires:         iscsi-initiator-utils
+
+Requires:         python-osprofiler >= 1.3.0
+Requires:         python-ipaddress >= 1.0.7
+Requires:         MySQL-python
+Requires:         pyparsing >= 2.0.3
+Requires:         python-barbicanclient >= 4.0.0
+Requires:         python-crypto >= 2.6
+Requires:         python-decorator >= 3.4.0
+Requires:         python-enum34
+Requires:         python-httplib2 >= 0.7.5
+Requires:         python-keystonemiddleware >= 4.0.0
+Requires:         python-oauth2client >= 1.5.0
+Requires:         python-oslo-i18n >= 2.1.0
+Requires:         python-oslo-log >= 1.14.0
+Requires:         python-oslo-vmware >= 2.11.0
+Requires:         python-paste
+Requires:         python-pbr >= 1.6
+Requires:         python-requests >= 2.10.0
+Requires:         python-retrying >= 1.2.3
+Requires:         python-rtslib >= 2.1.fb41
+Requires:         python-simplejson >= 2.2.0
+Requires:         python2-os-win >= 0.2.3
+Requires:         pytz >= 2013.6
+Requires:         pywbem
 
 %description -n   python-cinder
 OpenStack Volume (codename Cinder) provides services to manage and
@@ -143,17 +175,18 @@ This package contains the cinder Python library.
 Summary:          Documentation for OpenStack Volume
 Group:            Documentation
 
-Requires:         %{name} = 1:%{version}-%{release}
+Requires:         %{name} = %{epoch}:%{version}-%{release}
 
 BuildRequires:    graphviz
 
 # Required to build module documents
-BuildRequires:    python-eventlet
-BuildRequires:    python-routes
-BuildRequires:    python-sqlalchemy
-BuildRequires:    python-webob
+BuildRequires:    python-eventlet >= 0.18.2
+BuildRequires:    python-routes >= 1.12.3
+BuildRequires:    python-sqlalchemy >= 1.0.10
+BuildRequires:    python-webob >= 1.2.3
 # while not strictly required, quiets the build down when building docs.
-BuildRequires:    python-migrate, python-iso8601
+BuildRequires:    python-migrate >= 0.9.6
+BuildRequires:    python-iso8601 >= 0.1.11
 
 %description      doc
 OpenStack Volume (codename Cinder) provides services to manage and
@@ -165,48 +198,33 @@ This package contains documentation files for cinder.
 %prep
 %setup -q -n cinder-%{version}
 
-%patch0001 -p1
 
 find . \( -name .gitignore -o -name .placeholder \) -delete
 
 find cinder -name \*.py -exec sed -i '/\/usr\/bin\/env python/{d;q}' {} +
 
-# TODO: Have the following handle multi line entries
-sed -i '/setup_requires/d; /install_requires/d; /dependency_links/d' setup.py
-
 # Remove the requirements file so that pbr hooks don't add it
 # to distutils requires_dist config
 rm -rf {test-,}requirements.txt tools/{pip,test}-requires
 
-# We add REDHATCINDERVERSION/RELEASE with the pbr removal patch
-sed -i s/REDHATCINDERVERSION/%{version}/ cinder/version.py
-sed -i s/REDHATCINDERRELEASE/%{release}/ cinder/version.py
-
 %build
-%{__python} setup.py build
+%{__python2} setup.py build
+
+# Generate configuration files
+oslo-config-generator --config-file=cinder/config/cinder-config-generator.conf --output-file etc/cinder/cinder.conf.sample
 
 %install
-%{__python} setup.py install -O1 --skip-build --root %{buildroot}
+%{__python2} setup.py install -O1 --skip-build --root %{buildroot}
 
 # docs generation requires everything to be installed first
 export PYTHONPATH="$( pwd ):$PYTHONPATH"
 
-pushd doc
-
 %if 0%{?with_doc}
-SPHINX_DEBUG=1 sphinx-build -b html source build/html
-# Fix hidden-file-or-dir warnings
-rm -fr build/html/.doctrees build/html/.buildinfo
-%endif
-
-# Create dir link to avoid a sphinx-build exception
-mkdir -p build/man/.doctrees/
-ln -s .  build/man/.doctrees/man
-SPHINX_DEBUG=1 sphinx-build -b man -c source source/man build/man
+%{__python2} setup.py build_sphinx
 mkdir -p %{buildroot}%{_mandir}/man1
-install -p -D -m 644 build/man/*.1 %{buildroot}%{_mandir}/man1/
+install -p -D -m 644 doc/build/man/*.1 %{buildroot}%{_mandir}/man1/
+%endif
 
-popd
 
 # Setup directories
 install -d -m 755 %{buildroot}%{_sharedstatedir}/cinder
@@ -216,26 +234,18 @@ install -d -m 755 %{buildroot}%{_localstatedir}/log/cinder
 # Install config files
 install -d -m 755 %{buildroot}%{_sysconfdir}/cinder
 install -p -D -m 640 %{SOURCE1} %{buildroot}%{_datadir}/cinder/cinder-dist.conf
-install -p -D -m 640 %{SOURCE14}  %{buildroot}%{_sysconfdir}/cinder/cinder.conf
 install -d -m 755 %{buildroot}%{_sysconfdir}/cinder/volumes
 install -p -D -m 644 %{SOURCE3} %{buildroot}%{_sysconfdir}/tgt/conf.d/cinder.conf
 install -p -D -m 640 etc/cinder/rootwrap.conf %{buildroot}%{_sysconfdir}/cinder/rootwrap.conf
 install -p -D -m 640 etc/cinder/api-paste.ini %{buildroot}%{_sysconfdir}/cinder/api-paste.ini
 install -p -D -m 640 etc/cinder/policy.json %{buildroot}%{_sysconfdir}/cinder/policy.json
+install -p -D -m 640 etc/cinder/cinder.conf.sample %{buildroot}%{_sysconfdir}/cinder/cinder.conf
 
-%if 0%{?rhel} == 6
 # Install initscripts for services
-install -p -D -m 755 %{SOURCE10} %{buildroot}%{_initrddir}/openstack-cinder-api
-install -p -D -m 755 %{SOURCE11} %{buildroot}%{_initrddir}/openstack-cinder-scheduler
-install -p -D -m 755 %{SOURCE12} %{buildroot}%{_initrddir}/openstack-cinder-volume
-install -p -D -m 755 %{SOURCE13} %{buildroot}%{_initrddir}/openstack-cinder-backup
-%else
-# Install initscripts for services
-install -p -D -m 644 %{SOURCE30} %{buildroot}%{_unitdir}/openstack-cinder-api.service
-install -p -D -m 644 %{SOURCE31} %{buildroot}%{_unitdir}/openstack-cinder-scheduler.service
-install -p -D -m 644 %{SOURCE32} %{buildroot}%{_unitdir}/openstack-cinder-volume.service
-install -p -D -m 644 %{SOURCE33} %{buildroot}%{_unitdir}/openstack-cinder-backup.service
-%endif
+install -p -D -m 644 %{SOURCE10} %{buildroot}%{_unitdir}/openstack-cinder-api.service
+install -p -D -m 644 %{SOURCE11} %{buildroot}%{_unitdir}/openstack-cinder-scheduler.service
+install -p -D -m 644 %{SOURCE12} %{buildroot}%{_unitdir}/openstack-cinder-volume.service
+install -p -D -m 644 %{SOURCE13} %{buildroot}%{_unitdir}/openstack-cinder-backup.service
 
 # Install sudoers
 install -p -D -m 440 %{SOURCE20} %{buildroot}%{_sysconfdir}/sudoers.d/cinder
@@ -250,10 +260,17 @@ install -d -m 755 %{buildroot}%{_localstatedir}/run/cinder
 mkdir -p %{buildroot}%{_datarootdir}/cinder/rootwrap/
 install -p -D -m 644 etc/cinder/rootwrap.d/* %{buildroot}%{_datarootdir}/cinder/rootwrap/
 
+
+# Symlinks to rootwrap config files
+mkdir -p %{buildroot}%{_sysconfdir}/cinder/rootwrap.d
+for filter in %{_datarootdir}/os-brick/rootwrap/*.filters; do
+ln -s $filter %{buildroot}%{_sysconfdir}/cinder/rootwrap.d/
+done
 # Remove unneeded in production stuff
+rm -f %{buildroot}%{_bindir}/cinder-all
 rm -f %{buildroot}%{_bindir}/cinder-debug
-rm -fr %{buildroot}%{python_sitelib}/cinder/tests/
-rm -fr %{buildroot}%{python_sitelib}/run_tests.*
+rm -fr %{buildroot}%{python2_sitelib}/cinder/tests/
+rm -fr %{buildroot}%{python2_sitelib}/run_tests.*
 rm -f %{buildroot}/usr/share/doc/cinder/README*
 
 %pre
@@ -264,50 +281,25 @@ fi
 exit 0
 
 %post
-%if 0%{?rhel} == 6
-for svc in volume api scheduler backup; do
-    /sbin/chkconfig --add openstack-cinder-$svc
-done
-%else
 %systemd_post openstack-cinder-volume
 %systemd_post openstack-cinder-api
 %systemd_post openstack-cinder-scheduler
 %systemd_post openstack-cinder-backup
-%endif
 
 %preun
-%if 0%{?rhel} == 6
-if [ $1 -eq 0 ] ; then
-    for svc in volume api scheduler backup; do
-        /sbin/service openstack-cinder-${svc} stop > /dev/null 2>&1
-        /sbin/chkconfig --del openstack-cinder-${svc}
-    done
-fi
-%else
 %systemd_preun openstack-cinder-volume
 %systemd_preun openstack-cinder-api
 %systemd_preun openstack-cinder-scheduler
 %systemd_preun openstack-cinder-backup
-%endif
 
 %postun
-%if 0%{?rhel} == 6
-if [ $1 -ge 1 ] ; then
-    # Package upgrade, not uninstall
-    for svc in volume api scheduler backup; do
-        /sbin/service openstack-cinder-${svc} condrestart > /dev/null 2>&1 || :
-    done
-fi
-%else
 %systemd_postun_with_restart openstack-cinder-volume
 %systemd_postun_with_restart openstack-cinder-api
 %systemd_postun_with_restart openstack-cinder-scheduler
 %systemd_postun_with_restart openstack-cinder-backup
-%endif
 
 %files
-%doc LICENSE
-
+%license LICENSE
 %dir %{_sysconfdir}/cinder
 %config(noreplace) %attr(-, root, cinder) %{_sysconfdir}/cinder/cinder.conf
 %config(noreplace) %attr(-, root, cinder) %{_sysconfdir}/cinder/api-paste.ini
@@ -316,6 +308,7 @@ fi
 %config(noreplace) %{_sysconfdir}/logrotate.d/openstack-cinder
 %config(noreplace) %{_sysconfdir}/sudoers.d/cinder
 %config(noreplace) %{_sysconfdir}/tgt/conf.d/cinder.conf
+%{_sysconfdir}/cinder/rootwrap.d/
 %attr(-, root, cinder) %{_datadir}/cinder/cinder-dist.conf
 
 %dir %attr(0750, cinder, root) %{_localstatedir}/log/cinder
@@ -323,13 +316,7 @@ fi
 %dir %attr(0755, cinder, root) %{_sysconfdir}/cinder/volumes
 
 %{_bindir}/cinder-*
-
-%if 0%{?rhel} == 6
-%{_initrddir}/openstack-cinder-*
-%else
 %{_unitdir}/*.service
-%endif
-
 %{_datarootdir}/cinder
 %{_mandir}/man1/cinder*.1.gz
 
@@ -338,16 +325,30 @@ fi
 %dir %{_sharedstatedir}/cinder/tmp
 
 %files -n python-cinder
-%doc LICENSE
-%{python_sitelib}/cinder
-%{python_sitelib}/cinder-%{version}*.egg-info
+%{?!_licensedir: %global license %%doc}
+%license LICENSE
+%{python2_sitelib}/cinder
+%{python2_sitelib}/cinder-*.egg-info
+
 
 %if 0%{?with_doc}
 %files doc
-%doc doc/build/html
+%doc LICENSE doc/build/html
 %endif
 
 %changelog
+* Tue Aug 16 2016 Andrii Kroshchenko <akroshchenko@mirantis.com> - 9.0.0~b2.el7~mos0
+- Update to 9.0.0~b2
+- Update dependencies
+
+* Tue Jun 28 2016 Mikhail Ivanov <mivanov@mirantis.com> - 9.0.0~b1
+- Update to 9.0.0.0b1
+- Update build and runtime dependencies
+
+* Wed Mar 09 2016 Alexander Tsamutali <atsamutali@mirantis.com> - 8.0.0.0b2-1
+- Update to 8.0.0.0b3.
+- Sync with RDO spec.
+
 * Mon Sep 28 2015 Mikhail Ivanov <mivanov@mirantis.com> - 7.0.0.0rc1-1~mos8.0.1
 - Update to a new upstream version
 - Update build and runtime dependencies