%global pypi_name ceilometer
Name: openstack-ceilometer
-Version: 2013.1.2
+Version: 2014.2.2
Release: 2%{?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}.tar.gz
+Source1: %{pypi_name}-dist.conf
Source2: %{pypi_name}.logrotate
+Source3: %{pypi_name}.conf.sample
Source10: %{name}-api.init
Source100: %{name}-api.upstart
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.1
#
-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
BuildArch: noarch
BuildRequires: intltool
BuildRequires: python-sphinx10
BuildRequires: python-setuptools
+BuildRequires: python-pbr
+BuildRequires: python-d2to1
BuildRequires: python2-devel
BuildRequires: openstack-utils
# These are required to build due to the requirements check added
-BuildRequires: python-sqlalchemy0.7
+BuildRequires: python-sqlalchemy
BuildRequires: python-webob1.2
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-sqlalchemy0.7
-Requires: python-migrate
-
-Requires: python-webob >= 1.2
-Requires: python-oslo-config
-Requires: PyYAML
+Requires: python-babel >= 1.3
+Requires: python-eventlet >= 0.15.1, python-eventlet <= 0.15.2
+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 >= 1.0.0
+Requires: python-msgpack >= 0.4.0
+Requires: python-posix_ipc
+Requires: python-six >= 1.7.0
+Requires: PyYAML >= 3.1.0
+
+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.12
+Requires: python-ordereddict < 1.2
+Requires: python-pbr >= 0.6, python-pbr < 0.7, python-pbr > 0.7, python-pbr < 1.0
+Requires: python-requests >= 2.1.0, python-requests <= 2.2.1
+Requires: python-tooz >= 0.3
+
+Requires: python-sqlalchemy >= 0.9.7, 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.4.0
+Requires: python-oslo.db >= 1.0.0
+Requires: python-oslo-rootwrap >= 1.3.0
+Requires: python-oslo-vmware >= 0.6.0
+Requires: python-oslo-utils >= 1.0.0
+Requires: python-oslo-messaging >= 1.4.0
+Requires: python-oslo.serialization >= 1.0.0
+
+Requires: pysnmp > 4.2.1, pysnmp < 5.0.0
+Requires: pytz
+
+Requires: python-keystonemiddleware >= 1.0.0
+Requires: python-paste-deploy >= 1.5.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-neutronclient >= 2.3.6, python-neutronclient < 3
+Requires: python-novaclient >= 1:2.18.0
+Requires: python-keystoneclient >= 1:0.10.0
+Requires: python-glanceclient >= 1:0.14.0
+Requires: python-swiftclient >= 2.2.0
+Requires: python-ceilometerclient >= 1.0.6
+Requires: libvirt-python
%description -n python-ceilometer
OpenStack ceilometer provides services to measure and
Requires(pre): shadow-utils
-
%description common
OpenStack ceilometer provides services to measure and
collect metrics from OpenStack components.
Requires: %{name}-common = %{version}-%{release}
-Requires: python-novaclient
-Requires: python-keystoneclient
+Requires: python-novaclient >= 1:2.18.0
+Requires: python-keystoneclient >= 1:0.10.0
Requires: libvirt-python
%description compute
Requires: %{name}-common = %{version}-%{release}
-Requires: python-novaclient
-Requires: python-keystoneclient
-Requires: python-glanceclient
-Requires: python-swiftclient
+Requires: python-novaclient >= 1:2.18.0
+Requires: python-keystoneclient >= 1:0.10.0
+Requires: python-glanceclient >= 1:0.14.0
+Requires: python-swiftclient >= 2.2.0
%description central
OpenStack ceilometer provides services to measure and
%package collector
-Summary: OpenStack ceilometer collector agent
+Summary: OpenStack ceilometer collector
Group: Applications/System
Requires: %{name}-common = %{version}-%{release}
-Requires: pymongo
+# 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
Requires: %{name}-common = %{version}-%{release}
-Requires: pymongo
+Requires: python-pymongo
Requires: python-flask
-Requires: python-pecan
-Requires: python-wsme
+Requires: python-pecan >= 0.5.0
+Requires: python-wsme >= 0.6
%description api
OpenStack ceilometer provides services to measure and
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 >= 1.0.6
+
+%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
%prep
%setup -q -n ceilometer-%{version}
-%patch0001 -p1
-%patch0002 -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}' {} +
# 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
+
%build
%{__python} setup.py build
# Setup directories
install -d -m 755 %{buildroot}%{_sharedstatedir}/ceilometer
install -d -m 755 %{buildroot}%{_sharedstatedir}/ceilometer/tmp
-install -d -m 755 %{buildroot}%{_localstatedir}/log/ceilometer
+install -d -m 775 %{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 %{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
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
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}
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
/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
/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
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
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
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
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
%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
+%dir %attr(0775, ceilometer, ceilometer) %{_localstatedir}/log/ceilometer
%dir %attr(0755, ceilometer, root) %{_localstatedir}/run/ceilometer
-%{_bindir}/ceilometer-*
+%{_bindir}/ceilometer-agent-ipmi
+%{_bindir}/ceilometer-dbsync
+%{_bindir}/ceilometer-expirer
+%{_bindir}/ceilometer-rootwrap
+%{_bindir}/ceilometer-send-sample
+
%defattr(-, ceilometer, ceilometer, -)
%dir %{_sharedstatedir}/ceilometer
%files collector
-%{_bindir}/ceilometer-collector
+%{_bindir}/ceilometer-collector*
%{_initrddir}/%{name}-collector
%{_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
%{_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
+* Sun Mar 15 2015 Ivan Berezovskiy <iberezovskiy@mirantis.com> - 2014.2.2
+- New update of requirements for current 2014.2.2 version
+
+* Mon Mar 2 2015 Ivan Berezovskiy <iberezovskiy@mirantis.com> - 2014.2.2
+- Update spec and requirements for current 2014.2.2 version
+ https://github.com/openstack/ceilometer/blob/stable/juno/requirements.txt
+
+* Fri Jul 4 2014 Ivan Berezovskiy <iberezovskiy@mirantis.com> - 2014.2.b1
+- Update to upstream 2014.2.b1
+- Update requirements
-* Thu Jun 6 2013 Pádraig Brady <P@draigBrady.com> - 2013.1.2-1
-- Update to stable/grizzly release 2013.1.2
+* 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)
-* Thu Jun 6 2013 Pádraig Brady <P@draigBrady.com> - 2013.1-3
+* 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
+
+* 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