Update ceilometer specs
[openstack-build/ceilometer-build.git] / rpm / SPECS / openstack-ceilometer.spec
index 7998873bf8cf53a5ee2ddcc048ab48a8a66f8dce..a0f0bd36e8918d519aac461537b8f58f6b59bb06 100644 (file)
@@ -3,8 +3,8 @@
 %global pypi_name ceilometer
 
 Name:             openstack-ceilometer
-Version:          2013.2
-Release:          1%{?dist}
+Version:          2014.2.b1
+Release:          2%{?dist}
 Summary:          OpenStack measurement collection service
 
 Group:            Applications/System
@@ -13,6 +13,7 @@ URL:              https://wiki.openstack.org/wiki/Ceilometer
 Source0:          http://tarballs.openstack.org/%{pypi_name}/%{pypi_name}-%{version}.tar.gz
 Source1:          %{pypi_name}-dist.conf
 Source2:          %{pypi_name}.logrotate
+Source3:          %{pypi_name}.conf.sample
 
 Source10:         %{name}-api.init
 Source100:        %{name}-api.upstart
@@ -26,14 +27,12 @@ Source14:         %{name}-alarm-notifier.init
 Source140:        %{name}-alarm-notifier.upstart
 Source15:         %{name}-alarm-evaluator.init
 Source150:        %{name}-alarm-evaluator.upstart
+Source16:         %{name}-notification.init
+Source160:        %{name}-notification.upstart
 
 #
-# patches_base=2013.2
+# patches_base=2014.1.1
 #
-Patch0001: 0001-Ensure-we-don-t-access-the-net-when-building-docs.patch
-
-# This is EL6 specific and not upstream
-Patch100:         openstack-ceilometer-newdeps.patch
 
 BuildArch:        noarch
 BuildRequires:    intltool
@@ -46,8 +45,8 @@ BuildRequires:    python2-devel
 BuildRequires:    openstack-utils
 
 # These are required to build due to the requirements check added
-BuildRequires:    python-sqlalchemy0.7
-BuildRequires:    python-webob  >= 1.2
+BuildRequires:    python-sqlalchemy
+BuildRequires:    python-webob1.2
 
 
 %description
@@ -61,26 +60,58 @@ Group:            Applications/System
 
 Requires:         python-qpid
 Requires:         python-kombu
-Requires:         python-amqplib
-
-Requires:         python-eventlet
-Requires:         python-greenlet
-Requires:         python-iso8601
-Requires:         python-lxml
-Requires:         python-anyjson
-Requires:         python-stevedore
-Requires:         python-msgpack
-Requires:         python-netaddr
-Requires:         python-six
+
+Requires:         python-babel
+Requires:         python-eventlet >= 0.13.0
+Requires:         python-iso8601 >= 0.1.9
+Requires:         python-lxml >= 2.3
+Requires:         python-anyjson >= 0.3.3
+Requires:         python-jsonpath-rw >= 1.2.0, python-jsonpath-rw < 2.0
+Requires:         python-stevedore >= 0.14
+Requires:         python-msgpack >= 0.4.0
+Requires:         python-posix_ipc
+Requires:         python-six >= 1.7.0
 Requires:         PyYAML
 
-Requires:         python-sqlalchemy0.7
-Requires:         python-alembic
-Requires:         python-migrate
+Requires:         python-argparse
+Requires:         python-croniter >= 0.3.4
+Requires:         python-happybase >= 0.5, python-happybase < 0.7, python-happybase > 0.7
+Requires:         python-jsonschema >= 2.0.0, python-jsonschema < 3.0.0
+Requires:         python-lockfile >= 0.8
+Requires:         python-netaddr >= 0.7.6
+Requires:         python-pbr >= 0.6, python-pbr < 0.7, python-pbr > 0.7, python-pbr < 1.0
+Requires:         python-requests >= 1.1
+
+Requires:         python-sqlalchemy >= 0.8.4, python-sqlalchemy < 0.95, python-sqlalchemy > 0.9.5, python-sqlalchemy <= 0.9.99
+Requires:         python-alembic >= 0.6.4
+Requires:         python-migrate >= 0.9.1
+
+Requires:         python-webob >= 1.2.3
+
+Requires:         python-oslo-config >= 1:1.2.1
+Requires:         python-oslo-vmware >= 0.4
+Requires:         python-oslo-messaging >= 1.3.0
+
+Requires:         pysnmp > 4.2.1, pysnmp < 5.0.0
+Requires:         pytz
+Requires:         python-croniter
 
-Requires:         python-webob >= 1.2
+Requires:         python-keystonemiddleware >= 1.0.0
+Requires:         python-paste-deploy >= 1.5.0
 
-Requires:         python-oslo-config >= 1:1.2.0
+# These were only added as global dependencies
+# at the end of the Icehouse cycle with the change
+# to cli.py referenced from in http://pad.lv/1317210
+Requires:         python-pymongo
+Requires:         python-flask
+Requires:         python-pecan >= 0.5.0
+Requires:         python-wsme >= 0.6
+Requires:         python-novaclient >= 2.17.0
+Requires:         python-keystoneclient >= 0.9.0
+Requires:         python-glanceclient >= 0.13.1
+Requires:         python-swiftclient >= 2.0.2
+Requires:         python-ceilometerclient >= 1.0.6
+Requires:         libvirt-python
 
 %description -n   python-ceilometer
 OpenStack ceilometer provides services to measure and
@@ -117,8 +148,8 @@ Group:            Applications/System
 
 Requires:         %{name}-common = %{version}-%{release}
 
-Requires:         python-novaclient
-Requires:         python-keystoneclient
+Requires:         python-novaclient >= 2.17.0
+Requires:         python-keystoneclient >= 0.9.0
 Requires:         libvirt-python
 
 %description compute
@@ -135,10 +166,10 @@ Group:            Applications/System
 
 Requires:         %{name}-common = %{version}-%{release}
 
-Requires:         python-novaclient
-Requires:         python-keystoneclient
-Requires:         python-glanceclient
-Requires:         python-swiftclient
+Requires:         python-novaclient >= 2.17.0
+Requires:         python-keystoneclient >= 0.9.0
+Requires:         python-glanceclient >= 0.13.1
+Requires:         python-swiftclient >= 2.0.2
 
 %description central
 OpenStack ceilometer provides services to measure and
@@ -148,18 +179,38 @@ This package contains the central ceilometer agent.
 
 
 %package collector
-Summary:          OpenStack ceilometer collector agent
+Summary:          OpenStack ceilometer collector
 Group:            Applications/System
 
 Requires:         %{name}-common = %{version}-%{release}
 
+# For compat with older provisioning tools.
+# Remove when all reference the notification package explicitly
+Requires:         %{name}-notification
+
 Requires:         python-pymongo
 
 %description collector
 OpenStack ceilometer provides services to measure and
 collect metrics from OpenStack components.
 
-This package contains the ceilometer collector agent.
+This package contains the ceilometer collector service
+which collects metrics from the various agents.
+
+
+%package notification
+Summary:          OpenStack ceilometer notification agent
+Group:            Applications/System
+
+Requires:         %{name}-common = %{version}-%{release}
+
+%description notification
+OpenStack ceilometer provides services to measure and
+collect metrics from OpenStack components.
+
+This package contains the ceilometer notification agent
+which pushes metrics to the collector service from the
+various OpenStack services.
 
 
 %package api
@@ -170,8 +221,8 @@ Requires:         %{name}-common = %{version}-%{release}
 
 Requires:         python-pymongo
 Requires:         python-flask
-Requires:         python-pecan
-Requires:         python-wsme
+Requires:         python-pecan >= 0.4.5
+Requires:         python-wsme >= 0.6
 
 %description api
 OpenStack ceilometer provides services to measure and
@@ -185,7 +236,7 @@ Summary:          OpenStack ceilometer alarm services
 Group:            Applications/System
 
 Requires:         %{name}-common = %{version}-%{release}
-Requires:         python-ceilometerclient
+Requires:         python-ceilometerclient >= 1.0.6
 
 %description alarm
 OpenStack ceilometer provides services to measure and
@@ -217,11 +268,6 @@ This package contains documentation files for ceilometer.
 %prep
 %setup -q -n ceilometer-%{version}
 
-%patch0001 -p1
-
-# Apply EL6 patch
-%patch100 -p1
-
 find . \( -name .gitignore -o -name .placeholder \) -delete
 
 find ceilometer -name \*.py -exec sed -i '/\/usr\/bin\/env python/{d;q}' {} +
@@ -233,16 +279,6 @@ sed -i '/setup_requires/d; /install_requires/d; /dependency_links/d' setup.py
 # to distutils requires_dist config
 rm -rf {test-,}requirements.txt tools/{pip,test}-requires
 
-# Programmatically update defaults in sample config
-# which is installed at /etc/ceilometer/ceilometer.conf
-# TODO: Make this more robust
-# Note it only edits the first occurance, so assumes a section ordering in sample
-# and also doesn't support multi-valued variables.
-while read name eq value; do
-  test "$name" && test "$value" || continue
-  sed -i "0,/^# *$name=/{s!^# *$name=.*!#$name=$value!}" etc/ceilometer/ceilometer.conf.sample
-done < %{SOURCE1}
-
 %build
 %{__python} setup.py build
 
@@ -270,10 +306,11 @@ install -d -m 755 %{buildroot}%{_localstatedir}/log/ceilometer
 # Install config files
 install -d -m 755 %{buildroot}%{_sysconfdir}/ceilometer
 install -p -D -m 640 %{SOURCE1} %{buildroot}%{_datadir}/ceilometer/ceilometer-dist.conf
-install -p -D -m 640 etc/ceilometer/ceilometer.conf.sample %{buildroot}%{_sysconfdir}/ceilometer/ceilometer.conf
+install -p -D -m 640 %{SOURCE3} %{buildroot}%{_sysconfdir}/ceilometer/ceilometer.conf
 install -p -D -m 640 etc/ceilometer/policy.json %{buildroot}%{_sysconfdir}/ceilometer/policy.json
-install -p -D -m 640 etc/ceilometer/sources.json %{buildroot}%{_sysconfdir}/ceilometer/sources.json
 install -p -D -m 640 etc/ceilometer/pipeline.yaml %{buildroot}%{_sysconfdir}/ceilometer/pipeline.yaml
+install -p -D -m 640 etc/ceilometer/event_definitions.yaml %{buildroot}%{_sysconfdir}/ceilometer/event_definitions.yaml
+install -p -D -m 640 etc/ceilometer/api_paste.ini %{buildroot}%{_sysconfdir}/ceilometer/api_paste.ini
 
 # Install initscripts for services
 install -p -D -m 755 %{SOURCE10} %{buildroot}%{_initrddir}/%{name}-api
@@ -282,6 +319,7 @@ install -p -D -m 755 %{SOURCE12} %{buildroot}%{_initrddir}/%{name}-compute
 install -p -D -m 755 %{SOURCE13} %{buildroot}%{_initrddir}/%{name}-central
 install -p -D -m 755 %{SOURCE14} %{buildroot}%{_initrddir}/%{name}-alarm-notifier
 install -p -D -m 755 %{SOURCE15} %{buildroot}%{_initrddir}/%{name}-alarm-evaluator
+install -p -D -m 755 %{SOURCE16} %{buildroot}%{_initrddir}/%{name}-notification
 
 # Install upstart jobs examples
 install -d -m 755 %{buildroot}%{_datadir}/ceilometer
@@ -291,6 +329,7 @@ install -p -m 644 %{SOURCE120} %{buildroot}%{_datadir}/ceilometer/
 install -p -m 644 %{SOURCE130} %{buildroot}%{_datadir}/ceilometer/
 install -p -m 644 %{SOURCE140} %{buildroot}%{_datadir}/ceilometer/
 install -p -m 644 %{SOURCE150} %{buildroot}%{_datadir}/ceilometer/
+install -p -m 644 %{SOURCE160} %{buildroot}%{_datadir}/ceilometer/
 
 # Install logrotate
 install -p -D -m 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/logrotate.d/%{name}
@@ -303,7 +342,6 @@ rm -f %{buildroot}%{_bindir}/ceilometer-debug
 rm -fr %{buildroot}%{python_sitelib}/tests/
 rm -fr %{buildroot}%{python_sitelib}/run_tests.*
 rm -f %{buildroot}/usr/share/doc/ceilometer/README*
-rm -f %{buildroot}/%{python_sitelib}/ceilometer/api/v1/static/LICENSE.*
 
 
 %pre common
@@ -326,6 +364,12 @@ if [ $1 -eq 1 ] ; then
     /sbin/chkconfig --add %{name}-collector
 fi
 
+%post notification
+if [ $1 -eq 1 ] ; then
+    # Initial installation
+    /sbin/chkconfig --add %{name}-notification
+fi
+
 %post api
 if [ $1 -eq 1 ] ; then
     # Initial installation
@@ -362,6 +406,14 @@ if [ $1 -eq 0 ] ; then
     done
 fi
 
+%preun notification
+if [ $1 -eq 0 ] ; then
+    for svc in notification; do
+        /sbin/service %{name}-${svc} stop > /dev/null 2>&1
+        /sbin/chkconfig --del %{name}-${svc}
+    done
+fi
+
 %preun api
 if [ $1 -eq 0 ] ; then
     for svc in api; do
@@ -402,6 +454,14 @@ if [ $1 -ge 1 ] ; then
     done
 fi
 
+%postun notification
+if [ $1 -ge 1 ] ; then
+    # Package upgrade, not uninstall
+    for svc in notification; do
+        /sbin/service %{name}-${svc} condrestart > /dev/null 2>&1 || :
+    done
+fi
+
 %postun api
 if [ $1 -ge 1 ] ; then
     # Package upgrade, not uninstall
@@ -434,8 +494,9 @@ fi
 %attr(-, root, ceilometer) %{_datadir}/ceilometer/ceilometer-dist.conf
 %config(noreplace) %attr(-, root, ceilometer) %{_sysconfdir}/ceilometer/ceilometer.conf
 %config(noreplace) %attr(-, root, ceilometer) %{_sysconfdir}/ceilometer/policy.json
-%config(noreplace) %attr(-, root, ceilometer) %{_sysconfdir}/ceilometer/sources.json
 %config(noreplace) %attr(-, root, ceilometer) %{_sysconfdir}/ceilometer/pipeline.yaml
+%config(noreplace) %attr(-, root, ceilometer) %{_sysconfdir}/ceilometer/api_paste.ini
+%config(noreplace) %attr(-, root, ceilometer) %{_sysconfdir}/ceilometer/event_definitions.yaml
 %config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
 
 %dir %attr(0755, ceilometer, root) %{_localstatedir}/log/ceilometer
@@ -443,6 +504,7 @@ fi
 
 %{_bindir}/ceilometer-dbsync
 %{_bindir}/ceilometer-expirer
+%{_bindir}/ceilometer-send-sample
 
 
 %defattr(-, ceilometer, ceilometer, -)
@@ -473,8 +535,13 @@ fi
 %{_datarootdir}/ceilometer/%{name}-collector.upstart
 
 
+%files notification
+%{_bindir}/ceilometer-agent-notification
+%{_initrddir}/%{name}-notification
+%{_datarootdir}/ceilometer/%{name}-notification.upstart
+
+
 %files api
-%doc ceilometer/api/v1/static/LICENSE.*
 %{_bindir}/ceilometer-api
 %{_initrddir}/%{name}-api
 %{_datarootdir}/ceilometer/%{name}-api.upstart
@@ -496,6 +563,49 @@ fi
 
 
 %changelog
+* Fri Jul 4 2014 Ivan Berezovskiy <iberezovskiy@mirantis.com> - 2014.2.b1
+- Update to upstream 2014.2.b1
+- Update requirements
+
+* Wed Jun 11 2014 Steve Linabery <slinaber@redhat.com> - 2014.1.1-2
+- Update to upstream 2014.1.1
+- fix message routing with newer QPID (rhbz#1103800)
+
+* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2014.1-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
+
+* Wed May 07 2014 Pádraig Brady <pbrady@redhat.com> - 2014.1-2
+- Avoid dependency issues with distributed installs (#1095414)
+
+* Thu Apr 17 2014 Pádraig Brady <pbrady@redhat.com> - 2014.1-1
+- Update to Icehouse release
+
+* Fri Apr 11 2014 Pádraig Brady <pbrady@redhat.com> - 2014.1-0.7.rc2
+- Update to upstream 2014.1.rc2
+- Remove qpid as default rpc backend
+- Split out openstack-ceilometer-notification subpackage from collector
+
+* Mon Mar 31 2014 Pádraig Brady <P@draigBrady.com> 2014.1-0.6.rc1
+- Update to upstream 2014.1.rc1
+
+* Fri Mar 14 2014 Pádraig Brady <pbrady@redhat.com> - 2014.1-0.5.b3
+- Update to Icehouse milestone 3
+
+* Tue Feb 04 2014 Pádraig Brady <pbrady@redhat.com> - 2014.1-0.4.b2
+- Fix missing dependency on python-babel
+
+* Mon Jan 27 2014 Pádraig Brady <pbrady@redhat.com> - 2014.1-0.3.b2
+- Update to Icehouse milestone 2
+
+* Mon Jan 06 2014 Pádraig Brady <pbrady@redhat.com> - 2014.1-0.2.b1
+- Set python-six min version to ensure updated
+
+* Mon Dec 23 2013 Pádraig Brady <pbrady@redhat.com> - 2014.1-0.1.b1
+- Update to Icehouse milestone 1
+
+* Tue Dec 17 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2.1-1
+- Update to Havana stable release 2013.2.1
+
 * Thu Oct 17 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-1
 - Update to Havana release