Add python-pecan dependency to ceilometr-python and compute
[openstack-build/ceilometer-build.git] / rpm / SPECS / openstack-ceilometer.spec
index 369ec4cf0ad9e148e765b5015c2db9b484584fd9..e4c7063a414cc8e52196ae8e10409a23918d487d 100644 (file)
@@ -3,15 +3,15 @@
 %global pypi_name ceilometer
 
 Name:             openstack-ceilometer
-Version:          2013.1.2
-Release:          2%{?dist}
+Version:          2014.1
+Release:          0.6.rc1%{?dist}
 Summary:          OpenStack measurement collection service
 
 Group:            Applications/System
 License:          ASL 2.0
 URL:              https://wiki.openstack.org/wiki/Ceilometer
-Source0:          ceilometer-%{version}.tar.gz
-Source1:          %{pypi_name}.conf
+Source0:          http://tarballs.openstack.org/%{pypi_name}/%{pypi_name}-%{version}.rc1.tar.gz
+Source1:          %{pypi_name}-dist.conf
 Source2:          %{pypi_name}.logrotate
 
 Source10:         %{name}-api.init
@@ -22,12 +22,17 @@ Source12:         %{name}-compute.init
 Source120:        %{name}-compute.upstart
 Source13:         %{name}-central.init
 Source130:        %{name}-central.upstart
+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.1.2
+# patches_base=2014.1.rc1
 #
 Patch0001: 0001-Ensure-we-don-t-access-the-net-when-building-docs.patch
-Patch0002: 0002-avoid-code-path-causing-qpid-exchange-leaks.patch
 
 # This is EL6 specific and not upstream
 Patch100:         openstack-ceilometer-newdeps.patch
@@ -36,6 +41,8 @@ BuildArch:        noarch
 BuildRequires:    intltool
 BuildRequires:    python-sphinx10
 BuildRequires:    python-setuptools
+BuildRequires:    python-pbr
+BuildRequires:    python-d2to1
 BuildRequires:    python2-devel
 
 BuildRequires:    openstack-utils
@@ -58,19 +65,30 @@ Requires:         python-qpid
 Requires:         python-kombu
 Requires:         python-amqplib
 
+Requires:         python-babel
 Requires:         python-eventlet
 Requires:         python-greenlet
 Requires:         python-iso8601
 Requires:         python-lxml
 Requires:         python-anyjson
-Requires:         python-stevedore
+Requires:         python-jsonpath-rw
+Requires:         python-stevedore >= 0.14
+Requires:         python-msgpack
+Requires:         python-six >= 1.4.1
+Requires:         PyYAML
 
 Requires:         python-sqlalchemy0.7
+Requires:         python-alembic
 Requires:         python-migrate
 
 Requires:         python-webob >= 1.2
-Requires:         python-oslo-config
-Requires:         PyYAML
+
+Requires:         python-oslo-config >= 1:1.2.0
+
+Requires:         pysnmp
+Requires:         pytz
+Requires:         python-croniter
+Requires:         python-pecan
 
 %description -n   python-ceilometer
 OpenStack ceilometer provides services to measure and
@@ -110,6 +128,7 @@ Requires:         %{name}-common = %{version}-%{release}
 Requires:         python-novaclient
 Requires:         python-keystoneclient
 Requires:         libvirt-python
+Requires:         python-pecan
 
 %description compute
 OpenStack ceilometer provides services to measure and
@@ -143,7 +162,7 @@ Group:            Applications/System
 
 Requires:         %{name}-common = %{version}-%{release}
 
-Requires:         pymongo
+Requires:         python-pymongo
 
 %description collector
 OpenStack ceilometer provides services to measure and
@@ -158,10 +177,10 @@ Group:            Applications/System
 
 Requires:         %{name}-common = %{version}-%{release}
 
-Requires:         pymongo
+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
@@ -170,6 +189,21 @@ collect metrics from OpenStack components.
 This package contains the ceilometer API service.
 
 
+%package alarm
+Summary:          OpenStack ceilometer alarm services
+Group:            Applications/System
+
+Requires:         %{name}-common = %{version}-%{release}
+Requires:         python-ceilometerclient
+
+%description alarm
+OpenStack ceilometer provides services to measure and
+collect metrics from OpenStack components.
+
+This package contains the ceilometer alarm notification
+and evaluation services.
+
+
 %if 0%{?with_doc}
 %package doc
 Summary:          Documentation for OpenStack ceilometer
@@ -193,7 +227,6 @@ This package contains documentation files for ceilometer.
 %setup -q -n ceilometer-%{version}
 
 %patch0001 -p1
-%patch0002 -p1
 
 # Apply EL6 patch
 %patch100 -p1
@@ -205,6 +238,20 @@ find ceilometer -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
+
+# 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
 
@@ -231,7 +278,8 @@ 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}%{_sysconfdir}/ceilometer/ceilometer.conf
+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 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
@@ -241,6 +289,9 @@ install -p -D -m 755 %{SOURCE10} %{buildroot}%{_initrddir}/%{name}-api
 install -p -D -m 755 %{SOURCE11} %{buildroot}%{_initrddir}/%{name}-collector
 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
@@ -248,6 +299,9 @@ install -p -m 644 %{SOURCE100} %{buildroot}%{_datadir}/ceilometer/
 install -p -m 644 %{SOURCE110} %{buildroot}%{_datadir}/ceilometer/
 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}
@@ -295,6 +349,14 @@ if [ $1 -eq 1 ] ; then
     /sbin/chkconfig --add %{name}-central
 fi
 
+%post alarm
+if [ $1 -eq 1 ] ; then
+    # Initial installation
+    for svc in alarm-notifier alarm-evaluator; do
+        /sbin/chkconfig --add %{name}-${svc}
+    done
+fi
+
 %preun compute
 if [ $1 -eq 0 ] ; then
     for svc in compute; do
@@ -305,7 +367,7 @@ fi
 
 %preun collector
 if [ $1 -eq 0 ] ; then
-    for svc in collector; do
+    for svc in collector notification; do
         /sbin/service %{name}-${svc} stop > /dev/null 2>&1
         /sbin/chkconfig --del %{name}-${svc}
     done
@@ -327,6 +389,14 @@ if [ $1 -eq 0 ] ; then
     done
 fi
 
+%preun alarm
+if [ $1 -eq 0 ] ; then
+    for svc in alarm-notifier alarm-evaluator; do
+        /sbin/service %{name}-${svc} stop > /dev/null 2>&1
+        /sbin/chkconfig --del %{name}-${svc}
+    done
+fi
+
 %postun compute
 if [ $1 -ge 1 ] ; then
     # Package upgrade, not uninstall
@@ -338,7 +408,7 @@ fi
 %postun collector
 if [ $1 -ge 1 ] ; then
     # Package upgrade, not uninstall
-    for svc in collector; do
+    for svc in collector notification; do
         /sbin/service %{name}-${svc} condrestart > /dev/null 2>&1 || :
     done
 fi
@@ -359,10 +429,20 @@ if [ $1 -ge 1 ] ; then
     done
 fi
 
+%postun alarm
+/bin/systemctl daemon-reload >/dev/null 2>&1 || :
+if [ $1 -ge 1 ] ; then
+    # Package upgrade, not uninstall
+    for svc in alarm-notifier alarm-evaluator; do
+        /sbin/service %{name}-${svc} condrestart > /dev/null 2>&1 || :
+    done
+fi
+
 
 %files common
 %doc LICENSE
 %dir %{_sysconfdir}/ceilometer
+%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
@@ -372,7 +452,10 @@ fi
 %dir %attr(0755, ceilometer, root) %{_localstatedir}/log/ceilometer
 %dir %attr(0755, ceilometer, root) %{_localstatedir}/run/ceilometer
 
-%{_bindir}/ceilometer-*
+%{_bindir}/ceilometer-dbsync
+%{_bindir}/ceilometer-expirer
+%{_bindir}/ceilometer-send-sample
+
 
 %defattr(-, ceilometer, ceilometer, -)
 %dir %{_sharedstatedir}/ceilometer
@@ -397,9 +480,12 @@ fi
 
 
 %files collector
-%{_bindir}/ceilometer-collector
+%{_bindir}/ceilometer-collector*
+%{_bindir}/ceilometer-agent-notification
 %{_initrddir}/%{name}-collector
+%{_initrddir}/%{name}-notification
 %{_datarootdir}/ceilometer/%{name}-collector.upstart
+%{_datarootdir}/ceilometer/%{name}-notification.upstart
 
 
 %files api
@@ -415,16 +501,75 @@ fi
 %{_datarootdir}/ceilometer/%{name}-central.upstart
 
 
+%files alarm
+%{_bindir}/ceilometer-alarm-notifier
+%{_bindir}/ceilometer-alarm-evaluator
+%{_initrddir}/%{name}-alarm-notifier
+%{_datarootdir}/ceilometer/%{name}-alarm-notifier.upstart
+%{_initrddir}/%{name}-alarm-evaluator
+%{_datarootdir}/ceilometer/%{name}-alarm-evaluator.upstart
+
+
 %changelog
-* Fri Jun 21 2013 Pádraig Brady <P@draigBrady.com> - 2013.1.2-2
-- Avoid qpid exchange leaks
+* 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
 
-* Thu Jun  6 2013 Pádraig Brady <P@draigBrady.com> - 2013.1.2-1
-- Update to stable/grizzly release 2013.1.2
+* Mon Jan 06 2014 Pádraig Brady <pbrady@redhat.com> - 2014.1-0.2.b1
+- Set python-six min version to ensure updated
 
-* Thu Jun  6 2013 Pádraig Brady <P@draigBrady.com> - 2013.1-3
+* 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
+
+* Tue Oct 15 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.12.rc2
+- Update to Havana rc2
+- openstack-ceilometer-alarm now depends on python-ceilometerclient
+
+* Thu Oct 03 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.12.rc1
+- Update to Havana rc1
+- Separate out the new alarm services to the 'alarm' subpackage
+
+* Fri Sep 13 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.10.b3
+- Depend on python-oslo-config >= 1:1.2.0 so it upgraded automatically
+
+* Mon Sep 10 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.8.b3
+- Depend on python-pymongo rather than pymongo to avoid a puppet bug
+
+* Mon Sep 9 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.7.b3
+- Depend on python-alembic
+
+* Mon Sep 9 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.6.b3
+- Distribute dist defaults in ceilometer-dist.conf separate to user ceilometer.conf
+
+* Mon Sep 9 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.5.b3
+- Update to Havana milestone 3
+
+* Tue Aug 27 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.4.b1
+- Avoid python runtime dependency management
+
+* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2013.2-0.3.b1
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
+
+* Thu Jun  6 2013 Pádraig Brady <P@draigBrady.com> - 2013.2-0.2.b1
 - Fix uninstall for openstack-ceilometer-central
 
+* Fri May 31 2013 Pádraig Brady <P@draigBrady.com> - 2013.2-0.1.b1
+- Havana milestone 1
+
 * Mon Apr  8 2013 Pádraig Brady <P@draigBrady.com> - 2013.1-2
 - Grizzly release