CentOS 7: Update to 8.0.0.0b3
[openstack-build/cinder-build.git] / centos7 / rpm / SPECS / openstack-cinder.spec
index f36b18b4fe12b84c8fe3399ea5e6482cf939ee76..ae84e9eb5f6deb4cc9db58dd5823e8ea5f543d59 100644 (file)
@@ -2,61 +2,82 @@
 
 Name:             openstack-cinder
 Epoch:            1
-Version:          7.0.0.0rc1
-Release:          2%{?dist}~mos8.0.1
+Version:          8.0.0.0b3
+Release:          1%{?dist}
 Summary:          OpenStack Volume service
 
 Group:            Applications/System
 License:          ASL 2.0
 URL:              http://www.openstack.org/software/openstack-storage/
 Source0:          cinder-%{version}.tar.gz
+
 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.5.0
+# Required to build cinder.conf
+BuildRequires:    python-glanceclient >= 1:1.2.0
+BuildRequires:    python-google-api-client >= 1.4.2
+BuildRequires:    python-httplib2 >= 0.7.5
+BuildRequires:    python-keystoneclient >= 1:1.6.0
+BuildRequires:    python-keystonemiddleware >= 4.0.0
+BuildRequires:    python-lxml >= 2.3
+BuildRequires:    python-novaclient >= 1:2.29.0
+BuildRequires:    python-oslo-concurrency >= 3.5.0
+BuildRequires:    python-oslo-config >= 2:3.7.0
+BuildRequires:    python-oslo-context >= 0.2.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 >= 4.0.0
+BuildRequires:    python-oslo-middleware >= 3.0.0
+BuildRequires:    python-oslo-policy >= 0.5.0
+BuildRequires:    python-oslo-reports >= 0.6.0
+BuildRequires:    python-oslo-rootwrap >= 2.0.0
+BuildRequires:    python-oslo-serialization >= 1.10.0
+BuildRequires:    python-oslo-service >= 1.0.0
+BuildRequires:    python-oslo-utils >= 3.5.0
+BuildRequires:    python-oslo-versionedobjects >= 1.5.0
+BuildRequires:    python-oslo-vmware >= 1.16.0
+BuildRequires:    python-paramiko >= 1.16.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.1
+BuildRequires:    pywbem
+BuildRequires:    os-brick >= 1.0.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.1.0
+Requires:         python-rtslib >= 2.1.fb41
 
 %description
 OpenStack Volume (codename Cinder) provides services to manage and
@@ -69,68 +90,80 @@ Group:            Applications/System
 
 Requires:         sudo
 
-Requires:         MySQL-python
-
 Requires:         qemu-img
 Requires:         sysfsutils
+Requires:         os-brick >= 1.0.0
+Requires:         python-paramiko >= 1.16.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-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.9
-Requires:         python-keystoneclient >= 1:1.6.0
-Requires:         python-keystonemiddleware >= 2.0.0
-Requires:         python-kombu >= 3.0.7
 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-stevedore >= 1.5.0
+Requires:         python-suds-jurko >= 0.6
+Requires:         python-tooz >= 1.28.0
+
+Requires:         python-sqlalchemy >= 0.9.9
+Requires:         python-migrate >= 0.9.6
+
+Requires:         python-paste-deploy >= 1.5.0
+Requires:         python-routes >= 1.12.3
+Requires:         python-webob >= 1.2.3
+
+Requires:         python-glanceclient >= 1:2.0.0
+Requires:         python-swiftclient >= 2.2.0
+Requires:         python-keystoneclient >= 1:1.6.0
+Requires:         python-novaclient >= 1:2.29.0
+
+Requires:         python-oslo-config >= 2:3.7.0
+Requires:         python-six >= 1.9.0
+
+Requires:         python-babel >= 1.3
+Requires:         python-google-api-client >= 1.4.2
+
+Requires:         python-oslo-rootwrap >= 2.0.0
+Requires:         python-oslo-utils >= 3.5.0
+Requires:         python-oslo-serialization >= 1.10.0
+Requires:         python-oslo-db >= 4.1.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-concurrency >= 3.5.0
+Requires:         python-oslo-middleware >= 3.0.0
+Requires:         python-taskflow >= 1.26.0
+Requires:         python-oslo-messaging >= 4.0.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-paste-deploy >= 1.5.0
-Requires:         python-crypto >= 2.6
+Requires:         python-oslo-reports >= 0.6.0
+Requires:         python-oslo-service >= 1.0.0
+Requires:         python-oslo-versionedobjects >= 1.5.0
+
+Requires:         iscsi-initiator-utils
+
+Requires:         python-osprofiler >= 1.1.0
+
+Requires:         MySQL-python
 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-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 >= 1.16.0
+Requires:         python-paste
+Requires:         python-pbr >= 1.6
+Requires:         python-requests >= 2.8.1
 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-qpid
-#Requires:         python-amqplib
-#Requires:         python-lockfile
-#Requires:         python-ceph
-#Requires:         iscsi-initiator-utils
+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 +176,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 >= 0.9.9
+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.9
 
 %description      doc
 OpenStack Volume (codename Cinder) provides services to manage and
@@ -163,30 +197,25 @@ This package contains documentation files for cinder.
 %endif
 
 %prep
-%setup -q -n cinder-%{version}
-
-%patch0001 -p1
+%autosetup -n cinder-%{version}
 
 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
+# Generate config file
+PYTHONPATH=. tools/config/generate_sample.sh from_tox
+
+%{__python2} setup.py build
 
 %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"
@@ -216,26 +245,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 +271,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 +292,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 +319,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 +327,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,9 +336,10 @@ 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
@@ -348,6 +347,10 @@ fi
 %endif
 
 %changelog
+* 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