2 %global with_doc %{!?_without_doc:1}%{?_without_doc:0}
3 %global pypi_name ceilometer
5 Name: openstack-ceilometer
8 Summary: OpenStack measurement collection service
10 Group: Applications/System
12 URL: https://wiki.openstack.org/wiki/Ceilometer
13 Source0: http://tarballs.openstack.org/%{pypi_name}/%{pypi_name}-%{version}.tar.gz
14 Source1: %{pypi_name}-dist.conf
15 Source2: %{pypi_name}.logrotate
16 Source3: %{pypi_name}.conf.sample
18 Source10: %{name}-api.init
19 Source100: %{name}-api.upstart
20 Source11: %{name}-collector.init
21 Source110: %{name}-collector.upstart
22 Source12: %{name}-compute.init
23 Source120: %{name}-compute.upstart
24 Source13: %{name}-central.init
25 Source130: %{name}-central.upstart
26 Source14: %{name}-alarm-notifier.init
27 Source140: %{name}-alarm-notifier.upstart
28 Source15: %{name}-alarm-evaluator.init
29 Source150: %{name}-alarm-evaluator.upstart
30 Source16: %{name}-notification.init
31 Source160: %{name}-notification.upstart
34 # patches_base=2014.1.1
38 BuildRequires: intltool
39 BuildRequires: python-sphinx10
40 BuildRequires: python-setuptools
41 BuildRequires: python-pbr
42 BuildRequires: python-d2to1
43 BuildRequires: python2-devel
45 BuildRequires: openstack-utils
47 # These are required to build due to the requirements check added
48 BuildRequires: python-sqlalchemy
49 BuildRequires: python-webob1.2
53 OpenStack ceilometer provides services to measure and
54 collect metrics from OpenStack components.
57 %package -n python-ceilometer
58 Summary: OpenStack ceilometer python libraries
59 Group: Applications/System
61 Requires: python-retrying >= 1.2.2, python-retrying < 1.3.0, python-retrying > 1.3.0
64 Requires: python-babel
65 Requires: python-eventlet >= 0.15.2
66 Requires: python-iso8601 >= 0.1.9
67 Requires: python-lxml >= 2.3
68 Requires: python-anyjson >= 0.3.3
69 Requires: python-jsonpath-rw >= 1.2.0, python-jsonpath-rw < 2.0
70 Requires: python-stevedore >= 1.1.0
71 Requires: python-msgpack >= 0.4.0
72 Requires: python-posix_ipc
73 Requires: python-six >= 1.7.0
74 Requires: PyYAML >= 3.1.0
75 Requires: python-sqlalchemy >= 0.8.4, python-sqlalchemy <= 0.8.99, python-sqlalchemy >= 0.9.7, python-sqlalchemy <= 0.9.99
77 Requires: python-argparse
78 Requires: python-happybase >= 0.5, python-happybase < 0.7, python-happybase > 0.7
79 Requires: python-jsonschema >= 2.0.0, python-jsonschema < 3.0.0
80 Requires: python-lockfile >= 0.8
81 Requires: python-netaddr >= 0.7.12
82 Requires: python-pbr >= 0.6, python-pbr < 0.7, python-pbr > 0.7, python-pbr < 1.0
83 Requires: python-requests >= 2.2.0, python-requests < 2.4.0, python-requests > 2.4.0
84 Requires: python-tooz >= 0.3
86 Requires: python-alembic >= 0.6.4
87 Requires: python-migrate >= 0.9.1, python-migrate < 0.9.2, python-migrate > 0.9.2
89 Requires: python-webob >= 1.2.3
91 Requires: python-oslo-config >= 1:1.4.0
92 Requires: python-oslo-db >= 1.0.0
93 Requires: python-oslo-rootwrap >= 1.3.0
94 Requires: python-oslo-vmware >= 0.6.0
95 Requires: python-oslo-utils >= 1.0.0
96 Requires: python-oslo-messaging >= 1.4.0
97 Requires: python-oslo-serialization >= 1.0.0
98 Requires: python-oslo-middleware >= 0.1.0
100 Requires: pysnmp > 4.2.1, pysnmp < 5.0.0
102 Requires: python-croniter >= 0.3.4
104 Requires: python-keystonemiddleware >= 1.0.0
105 Requires: python-paste-deploy >= 1.5.0
107 # These were only added as global dependencies
108 # at the end of the Icehouse cycle with the change
109 # to cli.py referenced from in http://pad.lv/1317210
110 Requires: python-pymongo
111 Requires: python-flask
112 Requires: python-pecan >= 0.5.0
113 Requires: python-wsme >= 0.6
114 Requires: python-neutronclient >= 2.3.6
115 Requires: python-novaclient >= 2.18.0
116 Requires: python-keystoneclient >= 0.11.1
117 Requires: python-glanceclient >= 0.14.0
118 Requires: python-swiftclient >= 2.2.0
119 Requires: python-ceilometerclient >= 1.0.6
120 Requires: libvirt-python
122 %description -n python-ceilometer
123 OpenStack ceilometer provides services to measure and
124 collect metrics from OpenStack components.
126 This package contains the ceilometer python library.
130 Summary: Components common to all OpenStack ceilometer services
131 Group: Applications/System
133 Requires: python-ceilometer = %{version}-%{release}
134 Requires: openstack-utils
136 Requires(post): chkconfig
137 Requires(postun): initscripts
138 Requires(preun): chkconfig
139 Requires(pre): shadow-utils
143 OpenStack ceilometer provides services to measure and
144 collect metrics from OpenStack components.
146 This package contains components common to all OpenStack
151 Summary: OpenStack ceilometer compute agent
152 Group: Applications/System
154 Requires: %{name}-common = %{version}-%{release}
156 Requires: python-novaclient >= 2.18.0
157 Requires: python-keystoneclient >= 0.11.1
158 Requires: libvirt-python
161 OpenStack ceilometer provides services to measure and
162 collect metrics from OpenStack components.
164 This package contains the ceilometer agent for
165 running on OpenStack compute nodes.
169 Summary: OpenStack ceilometer central agent
170 Group: Applications/System
172 Requires: %{name}-common = %{version}-%{release}
174 Requires: python-novaclient >= 2.18.0
175 Requires: python-keystoneclient >= 0.11.1
176 Requires: python-glanceclient >= 0.14.0
177 Requires: python-swiftclient >= 2.2.0
180 OpenStack ceilometer provides services to measure and
181 collect metrics from OpenStack components.
183 This package contains the central ceilometer agent.
187 Summary: OpenStack ceilometer collector
188 Group: Applications/System
190 Requires: %{name}-common = %{version}-%{release}
192 # For compat with older provisioning tools.
193 # Remove when all reference the notification package explicitly
194 Requires: %{name}-notification
196 Requires: python-pymongo
198 %description collector
199 OpenStack ceilometer provides services to measure and
200 collect metrics from OpenStack components.
202 This package contains the ceilometer collector service
203 which collects metrics from the various agents.
206 %package notification
207 Summary: OpenStack ceilometer notification agent
208 Group: Applications/System
210 Requires: %{name}-common = %{version}-%{release}
212 %description notification
213 OpenStack ceilometer provides services to measure and
214 collect metrics from OpenStack components.
216 This package contains the ceilometer notification agent
217 which pushes metrics to the collector service from the
218 various OpenStack services.
222 Summary: OpenStack ceilometer API service
223 Group: Applications/System
225 Requires: %{name}-common = %{version}-%{release}
227 Requires: python-pymongo
228 Requires: python-flask
229 Requires: python-wsme >= 0.6
230 Requires: python-pecan >= 0.5.0
233 OpenStack ceilometer provides services to measure and
234 collect metrics from OpenStack components.
236 This package contains the ceilometer API service.
240 Summary: OpenStack ceilometer alarm services
241 Group: Applications/System
243 Requires: %{name}-common = %{version}-%{release}
244 Requires: python-ceilometerclient >= 1.0.6
247 OpenStack ceilometer provides services to measure and
248 collect metrics from OpenStack components.
250 This package contains the ceilometer alarm notification
251 and evaluation services.
256 Summary: Documentation for OpenStack ceilometer
259 # Required to build module documents
260 BuildRequires: python-eventlet
261 BuildRequires: python-sqlalchemy0.7
262 BuildRequires: python-webob
263 # while not strictly required, quiets the build down when building docs.
264 BuildRequires: python-migrate, python-iso8601
267 OpenStack ceilometer provides services to measure and
268 collect metrics from OpenStack components.
270 This package contains documentation files for ceilometer.
274 %setup -q -n ceilometer-%{version}
276 find . \( -name .gitignore -o -name .placeholder \) -delete
278 find ceilometer -name \*.py -exec sed -i '/\/usr\/bin\/env python/{d;q}' {} +
280 # TODO: Have the following handle multi line entries
281 sed -i '/setup_requires/d; /install_requires/d; /dependency_links/d' setup.py
283 # Remove the requirements file so that pbr hooks don't add it
284 # to distutils requires_dist config
285 rm -rf {test-,}requirements.txt tools/{pip,test}-requires
288 %{__python} setup.py build
291 %{__python} setup.py install -O1 --skip-build --root %{buildroot}
293 # docs generation requires everything to be installed first
294 export PYTHONPATH="$( pwd ):$PYTHONPATH"
299 SPHINX_DEBUG=1 sphinx-1.0-build -b html source build/html
300 # Fix hidden-file-or-dir warnings
301 rm -fr build/html/.doctrees build/html/.buildinfo
307 install -d -m 755 %{buildroot}%{_sharedstatedir}/ceilometer
308 install -d -m 755 %{buildroot}%{_sharedstatedir}/ceilometer/tmp
309 install -d -m 755 %{buildroot}%{_localstatedir}/log/ceilometer
311 # Install config files
312 install -d -m 755 %{buildroot}%{_sysconfdir}/ceilometer
313 install -p -D -m 640 %{SOURCE1} %{buildroot}%{_datadir}/ceilometer/ceilometer-dist.conf
314 install -p -D -m 640 %{SOURCE3} %{buildroot}%{_sysconfdir}/ceilometer/ceilometer.conf
315 install -p -D -m 640 etc/ceilometer/policy.json %{buildroot}%{_sysconfdir}/ceilometer/policy.json
316 install -p -D -m 640 etc/ceilometer/pipeline.yaml %{buildroot}%{_sysconfdir}/ceilometer/pipeline.yaml
317 install -p -D -m 640 etc/ceilometer/event_definitions.yaml %{buildroot}%{_sysconfdir}/ceilometer/event_definitions.yaml
318 install -p -D -m 640 etc/ceilometer/api_paste.ini %{buildroot}%{_sysconfdir}/ceilometer/api_paste.ini
320 # Install initscripts for services
321 install -p -D -m 755 %{SOURCE10} %{buildroot}%{_initrddir}/%{name}-api
322 install -p -D -m 755 %{SOURCE11} %{buildroot}%{_initrddir}/%{name}-collector
323 install -p -D -m 755 %{SOURCE12} %{buildroot}%{_initrddir}/%{name}-compute
324 install -p -D -m 755 %{SOURCE13} %{buildroot}%{_initrddir}/%{name}-central
325 install -p -D -m 755 %{SOURCE14} %{buildroot}%{_initrddir}/%{name}-alarm-notifier
326 install -p -D -m 755 %{SOURCE15} %{buildroot}%{_initrddir}/%{name}-alarm-evaluator
327 install -p -D -m 755 %{SOURCE16} %{buildroot}%{_initrddir}/%{name}-notification
329 # Install upstart jobs examples
330 install -d -m 755 %{buildroot}%{_datadir}/ceilometer
331 install -p -m 644 %{SOURCE100} %{buildroot}%{_datadir}/ceilometer/
332 install -p -m 644 %{SOURCE110} %{buildroot}%{_datadir}/ceilometer/
333 install -p -m 644 %{SOURCE120} %{buildroot}%{_datadir}/ceilometer/
334 install -p -m 644 %{SOURCE130} %{buildroot}%{_datadir}/ceilometer/
335 install -p -m 644 %{SOURCE140} %{buildroot}%{_datadir}/ceilometer/
336 install -p -m 644 %{SOURCE150} %{buildroot}%{_datadir}/ceilometer/
337 install -p -m 644 %{SOURCE160} %{buildroot}%{_datadir}/ceilometer/
340 install -p -D -m 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/logrotate.d/%{name}
342 # Install pid directory
343 install -d -m 755 %{buildroot}%{_localstatedir}/run/ceilometer
345 # Remove unneeded in production stuff
346 rm -f %{buildroot}%{_bindir}/ceilometer-debug
347 rm -fr %{buildroot}%{python_sitelib}/tests/
348 rm -fr %{buildroot}%{python_sitelib}/run_tests.*
349 rm -f %{buildroot}/usr/share/doc/ceilometer/README*
353 getent group ceilometer >/dev/null || groupadd -r ceilometer --gid 166
354 if ! getent passwd ceilometer >/dev/null; then
355 # Id reservation request: https://bugzilla.redhat.com/923891
356 useradd -u 166 -r -g ceilometer -G ceilometer,nobody -d %{_sharedstatedir}/ceilometer -s /sbin/nologin -c "OpenStack ceilometer Daemons" ceilometer
361 if [ $1 -eq 1 ] ; then
362 # Initial installation
363 /sbin/chkconfig --add %{name}-compute
367 if [ $1 -eq 1 ] ; then
368 # Initial installation
369 /sbin/chkconfig --add %{name}-collector
373 if [ $1 -eq 1 ] ; then
374 # Initial installation
375 /sbin/chkconfig --add %{name}-notification
379 if [ $1 -eq 1 ] ; then
380 # Initial installation
381 /sbin/chkconfig --add %{name}-api
385 if [ $1 -eq 1 ] ; then
386 # Initial installation
387 /sbin/chkconfig --add %{name}-central
391 if [ $1 -eq 1 ] ; then
392 # Initial installation
393 for svc in alarm-notifier alarm-evaluator; do
394 /sbin/chkconfig --add %{name}-${svc}
399 if [ $1 -eq 0 ] ; then
400 for svc in compute; do
401 /sbin/service %{name}-${svc} stop > /dev/null 2>&1
402 /sbin/chkconfig --del %{name}-${svc}
407 if [ $1 -eq 0 ] ; then
408 for svc in collector; do
409 /sbin/service %{name}-${svc} stop > /dev/null 2>&1
410 /sbin/chkconfig --del %{name}-${svc}
415 if [ $1 -eq 0 ] ; then
416 for svc in notification; do
417 /sbin/service %{name}-${svc} stop > /dev/null 2>&1
418 /sbin/chkconfig --del %{name}-${svc}
423 if [ $1 -eq 0 ] ; then
425 /sbin/service %{name}-${svc} stop > /dev/null 2>&1
426 /sbin/chkconfig --del %{name}-${svc}
431 if [ $1 -eq 0 ] ; then
432 for svc in central; do
433 /sbin/service %{name}-${svc} stop > /dev/null 2>&1
434 /sbin/chkconfig --del %{name}-${svc}
439 if [ $1 -eq 0 ] ; then
440 for svc in alarm-notifier alarm-evaluator; do
441 /sbin/service %{name}-${svc} stop > /dev/null 2>&1
442 /sbin/chkconfig --del %{name}-${svc}
447 if [ $1 -ge 1 ] ; then
448 # Package upgrade, not uninstall
449 for svc in compute; do
450 /sbin/service %{name}-${svc} condrestart > /dev/null 2>&1 || :
455 if [ $1 -ge 1 ] ; then
456 # Package upgrade, not uninstall
457 for svc in collector; do
458 /sbin/service %{name}-${svc} condrestart > /dev/null 2>&1 || :
463 if [ $1 -ge 1 ] ; then
464 # Package upgrade, not uninstall
465 for svc in notification; do
466 /sbin/service %{name}-${svc} condrestart > /dev/null 2>&1 || :
471 if [ $1 -ge 1 ] ; then
472 # Package upgrade, not uninstall
474 /sbin/service %{name}-${svc} condrestart > /dev/null 2>&1 || :
479 if [ $1 -ge 1 ] ; then
480 # Package upgrade, not uninstall
481 for svc in central; do
482 /sbin/service %{name}-${svc} condrestart > /dev/null 2>&1 || :
487 /bin/systemctl daemon-reload >/dev/null 2>&1 || :
488 if [ $1 -ge 1 ] ; then
489 # Package upgrade, not uninstall
490 for svc in alarm-notifier alarm-evaluator; do
491 /sbin/service %{name}-${svc} condrestart > /dev/null 2>&1 || :
498 %dir %{_sysconfdir}/ceilometer
499 %attr(-, root, ceilometer) %{_datadir}/ceilometer/ceilometer-dist.conf
500 %config(noreplace) %attr(-, root, ceilometer) %{_sysconfdir}/ceilometer/ceilometer.conf
501 %config(noreplace) %attr(-, root, ceilometer) %{_sysconfdir}/ceilometer/policy.json
502 %config(noreplace) %attr(-, root, ceilometer) %{_sysconfdir}/ceilometer/pipeline.yaml
503 %config(noreplace) %attr(-, root, ceilometer) %{_sysconfdir}/ceilometer/api_paste.ini
504 %config(noreplace) %attr(-, root, ceilometer) %{_sysconfdir}/ceilometer/event_definitions.yaml
505 %config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
507 %dir %attr(0755, ceilometer, root) %{_localstatedir}/log/ceilometer
508 %dir %attr(0755, ceilometer, root) %{_localstatedir}/run/ceilometer
510 %{_bindir}/ceilometer-agent-ipmi
511 %{_bindir}/ceilometer-dbsync
512 %{_bindir}/ceilometer-expirer
513 %{_bindir}/ceilometer-rootwrap
514 %{_bindir}/ceilometer-send-sample
517 %defattr(-, ceilometer, ceilometer, -)
518 %dir %{_sharedstatedir}/ceilometer
519 %dir %{_sharedstatedir}/ceilometer/tmp
522 %files -n python-ceilometer
523 %{python_sitelib}/ceilometer
524 %{python_sitelib}/ceilometer-%{version}*.egg-info
534 %{_bindir}/ceilometer-agent-compute
535 %{_initrddir}/%{name}-compute
536 %{_datarootdir}/ceilometer/%{name}-compute.upstart
540 %{_bindir}/ceilometer-collector*
541 %{_initrddir}/%{name}-collector
542 %{_datarootdir}/ceilometer/%{name}-collector.upstart
546 %{_bindir}/ceilometer-agent-notification
547 %{_initrddir}/%{name}-notification
548 %{_datarootdir}/ceilometer/%{name}-notification.upstart
552 %{_bindir}/ceilometer-api
553 %{_initrddir}/%{name}-api
554 %{_datarootdir}/ceilometer/%{name}-api.upstart
558 %{_bindir}/ceilometer-agent-central
559 %{_initrddir}/%{name}-central
560 %{_datarootdir}/ceilometer/%{name}-central.upstart
564 %{_bindir}/ceilometer-alarm-notifier
565 %{_bindir}/ceilometer-alarm-evaluator
566 %{_initrddir}/%{name}-alarm-notifier
567 %{_datarootdir}/ceilometer/%{name}-alarm-notifier.upstart
568 %{_initrddir}/%{name}-alarm-evaluator
569 %{_datarootdir}/ceilometer/%{name}-alarm-evaluator.upstart
573 * Wed Nov 19 2014 Daniil Trishkin <dtrishkin@mirantis.com> - 2014.2
574 - Update to upstream 2014.2
575 - Update requirements
577 * Fri Jul 4 2014 Ivan Berezovskiy <iberezovskiy@mirantis.com> - 2014.2.b1
578 - Update to upstream 2014.2.b1
579 - Update requirements
581 * Wed Jun 11 2014 Steve Linabery <slinaber@redhat.com> - 2014.1.1-2
582 - Update to upstream 2014.1.1
583 - fix message routing with newer QPID (rhbz#1103800)
585 * Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2014.1-3
586 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
588 * Wed May 07 2014 Pádraig Brady <pbrady@redhat.com> - 2014.1-2
589 - Avoid dependency issues with distributed installs (#1095414)
591 * Thu Apr 17 2014 Pádraig Brady <pbrady@redhat.com> - 2014.1-1
592 - Update to Icehouse release
594 * Fri Apr 11 2014 Pádraig Brady <pbrady@redhat.com> - 2014.1-0.7.rc2
595 - Update to upstream 2014.1.rc2
596 - Remove qpid as default rpc backend
597 - Split out openstack-ceilometer-notification subpackage from collector
599 * Mon Mar 31 2014 Pádraig Brady <P@draigBrady.com> 2014.1-0.6.rc1
600 - Update to upstream 2014.1.rc1
602 * Fri Mar 14 2014 Pádraig Brady <pbrady@redhat.com> - 2014.1-0.5.b3
603 - Update to Icehouse milestone 3
605 * Tue Feb 04 2014 Pádraig Brady <pbrady@redhat.com> - 2014.1-0.4.b2
606 - Fix missing dependency on python-babel
608 * Mon Jan 27 2014 Pádraig Brady <pbrady@redhat.com> - 2014.1-0.3.b2
609 - Update to Icehouse milestone 2
611 * Mon Jan 06 2014 Pádraig Brady <pbrady@redhat.com> - 2014.1-0.2.b1
612 - Set python-six min version to ensure updated
614 * Mon Dec 23 2013 Pádraig Brady <pbrady@redhat.com> - 2014.1-0.1.b1
615 - Update to Icehouse milestone 1
617 * Tue Dec 17 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2.1-1
618 - Update to Havana stable release 2013.2.1
620 * Thu Oct 17 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-1
621 - Update to Havana release
623 * Tue Oct 15 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.12.rc2
624 - Update to Havana rc2
625 - openstack-ceilometer-alarm now depends on python-ceilometerclient
627 * Thu Oct 03 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.12.rc1
628 - Update to Havana rc1
629 - Separate out the new alarm services to the 'alarm' subpackage
631 * Fri Sep 13 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.10.b3
632 - Depend on python-oslo-config >= 1:1.2.0 so it upgraded automatically
634 * Mon Sep 10 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.8.b3
635 - Depend on python-pymongo rather than pymongo to avoid a puppet bug
637 * Mon Sep 9 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.7.b3
638 - Depend on python-alembic
640 * Mon Sep 9 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.6.b3
641 - Distribute dist defaults in ceilometer-dist.conf separate to user ceilometer.conf
643 * Mon Sep 9 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.5.b3
644 - Update to Havana milestone 3
646 * Tue Aug 27 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.4.b1
647 - Avoid python runtime dependency management
649 * Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2013.2-0.3.b1
650 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
652 * Thu Jun 6 2013 Pádraig Brady <P@draigBrady.com> - 2013.2-0.2.b1
653 - Fix uninstall for openstack-ceilometer-central
655 * Fri May 31 2013 Pádraig Brady <P@draigBrady.com> - 2013.2-0.1.b1
658 * Mon Apr 8 2013 Pádraig Brady <P@draigBrady.com> - 2013.1-2
661 * Tue Mar 26 2013 Pádraig Brady <P@draigBrady.com> - 2013.1-0.5.g3