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
63 Requires: python-babel
64 Requires: python-eventlet >= 0.15.1, python-eventlet <= 0.15.2
65 Requires: python-iso8601 >= 0.1.9
66 Requires: python-lxml >= 2.3
67 Requires: python-anyjson >= 0.3.3
68 Requires: python-jsonpath-rw >= 1.2.0, python-jsonpath-rw < 2.0
69 Requires: python-stevedore >= 1.0.0
70 Requires: python-msgpack >= 0.4.0
71 Requires: python-posix_ipc
72 Requires: python-six >= 1.7.0
73 Requires: PyYAML >= 3.1.0
75 Requires: python-argparse
76 Requires: python-croniter >= 0.3.4
77 Requires: python-happybase >= 0.5, python-happybase < 0.7, python-happybase > 0.7
78 Requires: python-jsonschema >= 2.0.0, python-jsonschema < 3.0.0
79 Requires: python-lockfile == 0.8
80 Requires: python-netaddr >= 0.7.12
81 Requires: python-ordereddict < 1.2
82 Requires: python-pbr >= 0.6, python-pbr < 0.7, python-pbr > 0.7, python-pbr < 1.0
83 Requires: python-requests >= 1.2.2, python-requests <= 2.2.1
84 Requires: python-tooz >= 0.3
86 Requires: python-sqlalchemy >= 0.9.7, python-sqlalchemy <= 0.9.99
87 Requires: python-alembic >= 0.6.4
88 Requires: python-migrate == 0.9.1
90 Requires: python-webob >= 1.2.3
92 Requires: python-oslo-config >= 1:1.4.0
93 Requires: python-oslo.db >= 1.0.0
94 Requires: python-oslo-rootwrap >= 1.3.0
95 Requires: python-oslo-vmware >= 0.6.0
96 Requires: python-oslo-utils >= 1.0.0
97 Requires: python-oslo-messaging >= 1.4.0
98 Requires: python-oslo.serialization >= 1.0.0
100 Requires: pysnmp > 4.2.1, pysnmp < 5.0.0
103 Requires: python-keystonemiddleware >= 1.0.0
104 Requires: python-paste-deploy >= 1.5.0
106 # These were only added as global dependencies
107 # at the end of the Icehouse cycle with the change
108 # to cli.py referenced from in http://pad.lv/1317210
109 Requires: python-pymongo
110 Requires: python-flask
111 Requires: python-pecan >= 0.5.0
112 Requires: python-wsme >= 0.6
113 Requires: python-neutronclient >= 2.3.6, python-neutronclient < 3
114 Requires: python-novaclient >= 2.18.0
115 Requires: python-keystoneclient >= 0.10.0
116 Requires: python-glanceclient >= 0.14.0
117 Requires: python-swiftclient >= 2.2.0
118 Requires: python-ceilometerclient >= 1.0.6
119 Requires: libvirt-python
121 %description -n python-ceilometer
122 OpenStack ceilometer provides services to measure and
123 collect metrics from OpenStack components.
125 This package contains the ceilometer python library.
129 Summary: Components common to all OpenStack ceilometer services
130 Group: Applications/System
132 Requires: python-ceilometer = %{version}-%{release}
133 Requires: openstack-utils
135 Requires(post): chkconfig
136 Requires(postun): initscripts
137 Requires(preun): chkconfig
138 Requires(pre): shadow-utils
142 OpenStack ceilometer provides services to measure and
143 collect metrics from OpenStack components.
145 This package contains components common to all OpenStack
150 Summary: OpenStack ceilometer compute agent
151 Group: Applications/System
153 Requires: %{name}-common = %{version}-%{release}
155 Requires: python-novaclient >= 2.18.0
156 Requires: python-keystoneclient >= 0.10.0
157 Requires: libvirt-python
160 OpenStack ceilometer provides services to measure and
161 collect metrics from OpenStack components.
163 This package contains the ceilometer agent for
164 running on OpenStack compute nodes.
168 Summary: OpenStack ceilometer central agent
169 Group: Applications/System
171 Requires: %{name}-common = %{version}-%{release}
173 Requires: python-novaclient >= 2.18.0
174 Requires: python-keystoneclient >= 0.10.0
175 Requires: python-glanceclient >= 0.14.0
176 Requires: python-swiftclient >= 2.2.0
179 OpenStack ceilometer provides services to measure and
180 collect metrics from OpenStack components.
182 This package contains the central ceilometer agent.
186 Summary: OpenStack ceilometer collector
187 Group: Applications/System
189 Requires: %{name}-common = %{version}-%{release}
191 # For compat with older provisioning tools.
192 # Remove when all reference the notification package explicitly
193 Requires: %{name}-notification
195 Requires: python-pymongo
197 %description collector
198 OpenStack ceilometer provides services to measure and
199 collect metrics from OpenStack components.
201 This package contains the ceilometer collector service
202 which collects metrics from the various agents.
205 %package notification
206 Summary: OpenStack ceilometer notification agent
207 Group: Applications/System
209 Requires: %{name}-common = %{version}-%{release}
211 %description notification
212 OpenStack ceilometer provides services to measure and
213 collect metrics from OpenStack components.
215 This package contains the ceilometer notification agent
216 which pushes metrics to the collector service from the
217 various OpenStack services.
221 Summary: OpenStack ceilometer API service
222 Group: Applications/System
224 Requires: %{name}-common = %{version}-%{release}
226 Requires: python-pymongo
227 Requires: python-flask
228 Requires: python-pecan >= 0.5.0
229 Requires: python-wsme >= 0.6
232 OpenStack ceilometer provides services to measure and
233 collect metrics from OpenStack components.
235 This package contains the ceilometer API service.
239 Summary: OpenStack ceilometer alarm services
240 Group: Applications/System
242 Requires: %{name}-common = %{version}-%{release}
243 Requires: python-ceilometerclient >= 1.0.6
246 OpenStack ceilometer provides services to measure and
247 collect metrics from OpenStack components.
249 This package contains the ceilometer alarm notification
250 and evaluation services.
255 Summary: Documentation for OpenStack ceilometer
258 # Required to build module documents
259 BuildRequires: python-eventlet
260 BuildRequires: python-sqlalchemy0.7
261 BuildRequires: python-webob
262 # while not strictly required, quiets the build down when building docs.
263 BuildRequires: python-migrate, python-iso8601
266 OpenStack ceilometer provides services to measure and
267 collect metrics from OpenStack components.
269 This package contains documentation files for ceilometer.
273 %setup -q -n ceilometer-%{version}
275 find . \( -name .gitignore -o -name .placeholder \) -delete
277 find ceilometer -name \*.py -exec sed -i '/\/usr\/bin\/env python/{d;q}' {} +
279 # TODO: Have the following handle multi line entries
280 sed -i '/setup_requires/d; /install_requires/d; /dependency_links/d' setup.py
282 # Remove the requirements file so that pbr hooks don't add it
283 # to distutils requires_dist config
284 rm -rf {test-,}requirements.txt tools/{pip,test}-requires
287 %{__python} setup.py build
290 %{__python} setup.py install -O1 --skip-build --root %{buildroot}
292 # docs generation requires everything to be installed first
293 export PYTHONPATH="$( pwd ):$PYTHONPATH"
298 SPHINX_DEBUG=1 sphinx-1.0-build -b html source build/html
299 # Fix hidden-file-or-dir warnings
300 rm -fr build/html/.doctrees build/html/.buildinfo
306 install -d -m 755 %{buildroot}%{_sharedstatedir}/ceilometer
307 install -d -m 755 %{buildroot}%{_sharedstatedir}/ceilometer/tmp
308 install -d -m 775 %{buildroot}%{_localstatedir}/log/ceilometer
310 # Install config files
311 install -d -m 755 %{buildroot}%{_sysconfdir}/ceilometer
312 install -p -D -m 640 %{SOURCE1} %{buildroot}%{_datadir}/ceilometer/ceilometer-dist.conf
313 install -p -D -m 640 %{SOURCE3} %{buildroot}%{_sysconfdir}/ceilometer/ceilometer.conf
314 install -p -D -m 640 etc/ceilometer/policy.json %{buildroot}%{_sysconfdir}/ceilometer/policy.json
315 install -p -D -m 640 etc/ceilometer/pipeline.yaml %{buildroot}%{_sysconfdir}/ceilometer/pipeline.yaml
316 install -p -D -m 640 etc/ceilometer/event_definitions.yaml %{buildroot}%{_sysconfdir}/ceilometer/event_definitions.yaml
317 install -p -D -m 640 etc/ceilometer/api_paste.ini %{buildroot}%{_sysconfdir}/ceilometer/api_paste.ini
319 # Install initscripts for services
320 install -p -D -m 755 %{SOURCE10} %{buildroot}%{_initrddir}/%{name}-api
321 install -p -D -m 755 %{SOURCE11} %{buildroot}%{_initrddir}/%{name}-collector
322 install -p -D -m 755 %{SOURCE12} %{buildroot}%{_initrddir}/%{name}-compute
323 install -p -D -m 755 %{SOURCE13} %{buildroot}%{_initrddir}/%{name}-central
324 install -p -D -m 755 %{SOURCE14} %{buildroot}%{_initrddir}/%{name}-alarm-notifier
325 install -p -D -m 755 %{SOURCE15} %{buildroot}%{_initrddir}/%{name}-alarm-evaluator
326 install -p -D -m 755 %{SOURCE16} %{buildroot}%{_initrddir}/%{name}-notification
328 # Install upstart jobs examples
329 install -d -m 755 %{buildroot}%{_datadir}/ceilometer
330 install -p -m 644 %{SOURCE100} %{buildroot}%{_datadir}/ceilometer/
331 install -p -m 644 %{SOURCE110} %{buildroot}%{_datadir}/ceilometer/
332 install -p -m 644 %{SOURCE120} %{buildroot}%{_datadir}/ceilometer/
333 install -p -m 644 %{SOURCE130} %{buildroot}%{_datadir}/ceilometer/
334 install -p -m 644 %{SOURCE140} %{buildroot}%{_datadir}/ceilometer/
335 install -p -m 644 %{SOURCE150} %{buildroot}%{_datadir}/ceilometer/
336 install -p -m 644 %{SOURCE160} %{buildroot}%{_datadir}/ceilometer/
339 install -p -D -m 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/logrotate.d/%{name}
341 # Install pid directory
342 install -d -m 755 %{buildroot}%{_localstatedir}/run/ceilometer
344 # Remove unneeded in production stuff
345 rm -f %{buildroot}%{_bindir}/ceilometer-debug
346 rm -fr %{buildroot}%{python_sitelib}/tests/
347 rm -fr %{buildroot}%{python_sitelib}/run_tests.*
348 rm -f %{buildroot}/usr/share/doc/ceilometer/README*
352 getent group ceilometer >/dev/null || groupadd -r ceilometer --gid 166
353 if ! getent passwd ceilometer >/dev/null; then
354 # Id reservation request: https://bugzilla.redhat.com/923891
355 useradd -u 166 -r -g ceilometer -G ceilometer,nobody -d %{_sharedstatedir}/ceilometer -s /sbin/nologin -c "OpenStack ceilometer Daemons" ceilometer
360 if [ $1 -eq 1 ] ; then
361 # Initial installation
362 /sbin/chkconfig --add %{name}-compute
366 if [ $1 -eq 1 ] ; then
367 # Initial installation
368 /sbin/chkconfig --add %{name}-collector
372 if [ $1 -eq 1 ] ; then
373 # Initial installation
374 /sbin/chkconfig --add %{name}-notification
378 if [ $1 -eq 1 ] ; then
379 # Initial installation
380 /sbin/chkconfig --add %{name}-api
384 if [ $1 -eq 1 ] ; then
385 # Initial installation
386 /sbin/chkconfig --add %{name}-central
390 if [ $1 -eq 1 ] ; then
391 # Initial installation
392 for svc in alarm-notifier alarm-evaluator; do
393 /sbin/chkconfig --add %{name}-${svc}
398 if [ $1 -eq 0 ] ; then
399 for svc in compute; do
400 /sbin/service %{name}-${svc} stop > /dev/null 2>&1
401 /sbin/chkconfig --del %{name}-${svc}
406 if [ $1 -eq 0 ] ; then
407 for svc in collector; do
408 /sbin/service %{name}-${svc} stop > /dev/null 2>&1
409 /sbin/chkconfig --del %{name}-${svc}
414 if [ $1 -eq 0 ] ; then
415 for svc in notification; do
416 /sbin/service %{name}-${svc} stop > /dev/null 2>&1
417 /sbin/chkconfig --del %{name}-${svc}
422 if [ $1 -eq 0 ] ; then
424 /sbin/service %{name}-${svc} stop > /dev/null 2>&1
425 /sbin/chkconfig --del %{name}-${svc}
430 if [ $1 -eq 0 ] ; then
431 for svc in central; do
432 /sbin/service %{name}-${svc} stop > /dev/null 2>&1
433 /sbin/chkconfig --del %{name}-${svc}
438 if [ $1 -eq 0 ] ; then
439 for svc in alarm-notifier alarm-evaluator; do
440 /sbin/service %{name}-${svc} stop > /dev/null 2>&1
441 /sbin/chkconfig --del %{name}-${svc}
446 if [ $1 -ge 1 ] ; then
447 # Package upgrade, not uninstall
448 for svc in compute; do
449 /sbin/service %{name}-${svc} condrestart > /dev/null 2>&1 || :
454 if [ $1 -ge 1 ] ; then
455 # Package upgrade, not uninstall
456 for svc in collector; do
457 /sbin/service %{name}-${svc} condrestart > /dev/null 2>&1 || :
462 if [ $1 -ge 1 ] ; then
463 # Package upgrade, not uninstall
464 for svc in notification; do
465 /sbin/service %{name}-${svc} condrestart > /dev/null 2>&1 || :
470 if [ $1 -ge 1 ] ; then
471 # Package upgrade, not uninstall
473 /sbin/service %{name}-${svc} condrestart > /dev/null 2>&1 || :
478 if [ $1 -ge 1 ] ; then
479 # Package upgrade, not uninstall
480 for svc in central; do
481 /sbin/service %{name}-${svc} condrestart > /dev/null 2>&1 || :
486 /bin/systemctl daemon-reload >/dev/null 2>&1 || :
487 if [ $1 -ge 1 ] ; then
488 # Package upgrade, not uninstall
489 for svc in alarm-notifier alarm-evaluator; do
490 /sbin/service %{name}-${svc} condrestart > /dev/null 2>&1 || :
497 %dir %{_sysconfdir}/ceilometer
498 %attr(-, root, ceilometer) %{_datadir}/ceilometer/ceilometer-dist.conf
499 %config(noreplace) %attr(-, root, ceilometer) %{_sysconfdir}/ceilometer/ceilometer.conf
500 %config(noreplace) %attr(-, root, ceilometer) %{_sysconfdir}/ceilometer/policy.json
501 %config(noreplace) %attr(-, root, ceilometer) %{_sysconfdir}/ceilometer/pipeline.yaml
502 %config(noreplace) %attr(-, root, ceilometer) %{_sysconfdir}/ceilometer/api_paste.ini
503 %config(noreplace) %attr(-, root, ceilometer) %{_sysconfdir}/ceilometer/event_definitions.yaml
504 %config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
506 %dir %attr(0775, ceilometer, ceilometer) %{_localstatedir}/log/ceilometer
507 %dir %attr(0755, ceilometer, root) %{_localstatedir}/run/ceilometer
509 %{_bindir}/ceilometer-agent-ipmi
510 %{_bindir}/ceilometer-dbsync
511 %{_bindir}/ceilometer-expirer
512 %{_bindir}/ceilometer-rootwrap
513 %{_bindir}/ceilometer-send-sample
516 %defattr(-, ceilometer, ceilometer, -)
517 %dir %{_sharedstatedir}/ceilometer
518 %dir %{_sharedstatedir}/ceilometer/tmp
521 %files -n python-ceilometer
522 %{python_sitelib}/ceilometer
523 %{python_sitelib}/ceilometer-%{version}*.egg-info
533 %{_bindir}/ceilometer-agent-compute
534 %{_initrddir}/%{name}-compute
535 %{_datarootdir}/ceilometer/%{name}-compute.upstart
539 %{_bindir}/ceilometer-collector*
540 %{_initrddir}/%{name}-collector
541 %{_datarootdir}/ceilometer/%{name}-collector.upstart
545 %{_bindir}/ceilometer-agent-notification
546 %{_initrddir}/%{name}-notification
547 %{_datarootdir}/ceilometer/%{name}-notification.upstart
551 %{_bindir}/ceilometer-api
552 %{_initrddir}/%{name}-api
553 %{_datarootdir}/ceilometer/%{name}-api.upstart
557 %{_bindir}/ceilometer-agent-central
558 %{_initrddir}/%{name}-central
559 %{_datarootdir}/ceilometer/%{name}-central.upstart
563 %{_bindir}/ceilometer-alarm-notifier
564 %{_bindir}/ceilometer-alarm-evaluator
565 %{_initrddir}/%{name}-alarm-notifier
566 %{_datarootdir}/ceilometer/%{name}-alarm-notifier.upstart
567 %{_initrddir}/%{name}-alarm-evaluator
568 %{_datarootdir}/ceilometer/%{name}-alarm-evaluator.upstart
572 * Mon Mar 2 2015 Ivan Berezovskiy <iberezovskiy@mirantis.com> - 2014.2.2
573 - Update spec and requirements for current 2014.2.2 version
574 https://github.com/openstack/ceilometer/blob/stable/juno/requirements.txt
576 * Fri Jul 4 2014 Ivan Berezovskiy <iberezovskiy@mirantis.com> - 2014.2.b1
577 - Update to upstream 2014.2.b1
578 - Update requirements
580 * Wed Jun 11 2014 Steve Linabery <slinaber@redhat.com> - 2014.1.1-2
581 - Update to upstream 2014.1.1
582 - fix message routing with newer QPID (rhbz#1103800)
584 * Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2014.1-3
585 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
587 * Wed May 07 2014 Pádraig Brady <pbrady@redhat.com> - 2014.1-2
588 - Avoid dependency issues with distributed installs (#1095414)
590 * Thu Apr 17 2014 Pádraig Brady <pbrady@redhat.com> - 2014.1-1
591 - Update to Icehouse release
593 * Fri Apr 11 2014 Pádraig Brady <pbrady@redhat.com> - 2014.1-0.7.rc2
594 - Update to upstream 2014.1.rc2
595 - Remove qpid as default rpc backend
596 - Split out openstack-ceilometer-notification subpackage from collector
598 * Mon Mar 31 2014 Pádraig Brady <P@draigBrady.com> 2014.1-0.6.rc1
599 - Update to upstream 2014.1.rc1
601 * Fri Mar 14 2014 Pádraig Brady <pbrady@redhat.com> - 2014.1-0.5.b3
602 - Update to Icehouse milestone 3
604 * Tue Feb 04 2014 Pádraig Brady <pbrady@redhat.com> - 2014.1-0.4.b2
605 - Fix missing dependency on python-babel
607 * Mon Jan 27 2014 Pádraig Brady <pbrady@redhat.com> - 2014.1-0.3.b2
608 - Update to Icehouse milestone 2
610 * Mon Jan 06 2014 Pádraig Brady <pbrady@redhat.com> - 2014.1-0.2.b1
611 - Set python-six min version to ensure updated
613 * Mon Dec 23 2013 Pádraig Brady <pbrady@redhat.com> - 2014.1-0.1.b1
614 - Update to Icehouse milestone 1
616 * Tue Dec 17 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2.1-1
617 - Update to Havana stable release 2013.2.1
619 * Thu Oct 17 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-1
620 - Update to Havana release
622 * Tue Oct 15 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.12.rc2
623 - Update to Havana rc2
624 - openstack-ceilometer-alarm now depends on python-ceilometerclient
626 * Thu Oct 03 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.12.rc1
627 - Update to Havana rc1
628 - Separate out the new alarm services to the 'alarm' subpackage
630 * Fri Sep 13 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.10.b3
631 - Depend on python-oslo-config >= 1:1.2.0 so it upgraded automatically
633 * Mon Sep 10 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.8.b3
634 - Depend on python-pymongo rather than pymongo to avoid a puppet bug
636 * Mon Sep 9 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.7.b3
637 - Depend on python-alembic
639 * Mon Sep 9 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.6.b3
640 - Distribute dist defaults in ceilometer-dist.conf separate to user ceilometer.conf
642 * Mon Sep 9 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.5.b3
643 - Update to Havana milestone 3
645 * Tue Aug 27 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.4.b1
646 - Avoid python runtime dependency management
648 * Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2013.2-0.3.b1
649 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
651 * Thu Jun 6 2013 Pádraig Brady <P@draigBrady.com> - 2013.2-0.2.b1
652 - Fix uninstall for openstack-ceilometer-central
654 * Fri May 31 2013 Pádraig Brady <P@draigBrady.com> - 2013.2-0.1.b1
657 * Mon Apr 8 2013 Pádraig Brady <P@draigBrady.com> - 2013.1-2
660 * Tue Mar 26 2013 Pádraig Brady <P@draigBrady.com> - 2013.1-0.5.g3