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
17 Source10: %{name}-api.init
18 Source100: %{name}-api.upstart
19 Source11: %{name}-collector.init
20 Source110: %{name}-collector.upstart
21 Source12: %{name}-compute.init
22 Source120: %{name}-compute.upstart
23 Source13: %{name}-central.init
24 Source130: %{name}-central.upstart
25 Source14: %{name}-alarm-notifier.init
26 Source140: %{name}-alarm-notifier.upstart
27 Source15: %{name}-alarm-evaluator.init
28 Source150: %{name}-alarm-evaluator.upstart
33 Patch0001: 0001-Ensure-we-don-t-access-the-net-when-building-docs.patch
35 # This is EL6 specific and not upstream
36 Patch100: openstack-ceilometer-newdeps.patch
39 BuildRequires: intltool
40 BuildRequires: python-sphinx10
41 BuildRequires: python-setuptools
42 BuildRequires: python-pbr
43 BuildRequires: python-d2to1
44 BuildRequires: python2-devel
46 BuildRequires: openstack-utils
48 # These are required to build due to the requirements check added
49 BuildRequires: python-sqlalchemy0.7
50 BuildRequires: python-webob >= 1.2
54 OpenStack ceilometer provides services to measure and
55 collect metrics from OpenStack components.
58 %package -n python-ceilometer
59 Summary: OpenStack ceilometer python libraries
60 Group: Applications/System
63 Requires: python-kombu
64 Requires: python-amqplib
66 Requires: python-eventlet
67 Requires: python-greenlet
68 Requires: python-iso8601
70 Requires: python-anyjson
71 Requires: python-stevedore
72 Requires: python-msgpack
73 Requires: python-netaddr
77 Requires: python-sqlalchemy0.7
78 Requires: python-alembic
79 Requires: python-migrate
81 Requires: python-webob >= 1.2
83 Requires: python-oslo-config >= 1:1.2.0
85 %description -n python-ceilometer
86 OpenStack ceilometer provides services to measure and
87 collect metrics from OpenStack components.
89 This package contains the ceilometer python library.
93 Summary: Components common to all OpenStack ceilometer services
94 Group: Applications/System
96 Requires: python-ceilometer = %{version}-%{release}
97 Requires: openstack-utils
99 Requires(post): chkconfig
100 Requires(postun): initscripts
101 Requires(preun): chkconfig
102 Requires(pre): shadow-utils
107 OpenStack ceilometer provides services to measure and
108 collect metrics from OpenStack components.
110 This package contains components common to all OpenStack
115 Summary: OpenStack ceilometer compute agent
116 Group: Applications/System
118 Requires: %{name}-common = %{version}-%{release}
120 Requires: python-novaclient
121 Requires: python-keystoneclient
122 Requires: libvirt-python
125 OpenStack ceilometer provides services to measure and
126 collect metrics from OpenStack components.
128 This package contains the ceilometer agent for
129 running on OpenStack compute nodes.
133 Summary: OpenStack ceilometer central agent
134 Group: Applications/System
136 Requires: %{name}-common = %{version}-%{release}
138 Requires: python-novaclient
139 Requires: python-keystoneclient
140 Requires: python-glanceclient
141 Requires: python-swiftclient
144 OpenStack ceilometer provides services to measure and
145 collect metrics from OpenStack components.
147 This package contains the central ceilometer agent.
151 Summary: OpenStack ceilometer collector agent
152 Group: Applications/System
154 Requires: %{name}-common = %{version}-%{release}
156 Requires: python-pymongo
158 %description collector
159 OpenStack ceilometer provides services to measure and
160 collect metrics from OpenStack components.
162 This package contains the ceilometer collector agent.
166 Summary: OpenStack ceilometer API service
167 Group: Applications/System
169 Requires: %{name}-common = %{version}-%{release}
171 Requires: python-pymongo
172 Requires: python-flask
173 Requires: python-pecan
174 Requires: python-wsme
177 OpenStack ceilometer provides services to measure and
178 collect metrics from OpenStack components.
180 This package contains the ceilometer API service.
184 Summary: OpenStack ceilometer alarm services
185 Group: Applications/System
187 Requires: %{name}-common = %{version}-%{release}
188 Requires: python-ceilometerclient
191 OpenStack ceilometer provides services to measure and
192 collect metrics from OpenStack components.
194 This package contains the ceilometer alarm notification
195 and evaluation services.
200 Summary: Documentation for OpenStack ceilometer
203 # Required to build module documents
204 BuildRequires: python-eventlet
205 BuildRequires: python-sqlalchemy0.7
206 BuildRequires: python-webob
207 # while not strictly required, quiets the build down when building docs.
208 BuildRequires: python-migrate, python-iso8601
211 OpenStack ceilometer provides services to measure and
212 collect metrics from OpenStack components.
214 This package contains documentation files for ceilometer.
218 %setup -q -n ceilometer-%{version}
225 find . \( -name .gitignore -o -name .placeholder \) -delete
227 find ceilometer -name \*.py -exec sed -i '/\/usr\/bin\/env python/{d;q}' {} +
229 # TODO: Have the following handle multi line entries
230 sed -i '/setup_requires/d; /install_requires/d; /dependency_links/d' setup.py
232 # Remove the requirements file so that pbr hooks don't add it
233 # to distutils requires_dist config
234 rm -rf {test-,}requirements.txt tools/{pip,test}-requires
236 # Programmatically update defaults in sample config
237 # which is installed at /etc/ceilometer/ceilometer.conf
238 # TODO: Make this more robust
239 # Note it only edits the first occurance, so assumes a section ordering in sample
240 # and also doesn't support multi-valued variables.
241 while read name eq value; do
242 test "$name" && test "$value" || continue
243 sed -i "0,/^# *$name=/{s!^# *$name=.*!#$name=$value!}" etc/ceilometer/ceilometer.conf.sample
247 %{__python} setup.py build
250 %{__python} setup.py install -O1 --skip-build --root %{buildroot}
252 # docs generation requires everything to be installed first
253 export PYTHONPATH="$( pwd ):$PYTHONPATH"
258 SPHINX_DEBUG=1 sphinx-1.0-build -b html source build/html
259 # Fix hidden-file-or-dir warnings
260 rm -fr build/html/.doctrees build/html/.buildinfo
266 install -d -m 755 %{buildroot}%{_sharedstatedir}/ceilometer
267 install -d -m 755 %{buildroot}%{_sharedstatedir}/ceilometer/tmp
268 install -d -m 755 %{buildroot}%{_localstatedir}/log/ceilometer
270 # Install config files
271 install -d -m 755 %{buildroot}%{_sysconfdir}/ceilometer
272 install -p -D -m 640 %{SOURCE1} %{buildroot}%{_datadir}/ceilometer/ceilometer-dist.conf
273 install -p -D -m 640 etc/ceilometer/ceilometer.conf.sample %{buildroot}%{_sysconfdir}/ceilometer/ceilometer.conf
274 install -p -D -m 640 etc/ceilometer/policy.json %{buildroot}%{_sysconfdir}/ceilometer/policy.json
275 install -p -D -m 640 etc/ceilometer/sources.json %{buildroot}%{_sysconfdir}/ceilometer/sources.json
276 install -p -D -m 640 etc/ceilometer/pipeline.yaml %{buildroot}%{_sysconfdir}/ceilometer/pipeline.yaml
278 # Install initscripts for services
279 install -p -D -m 755 %{SOURCE10} %{buildroot}%{_initrddir}/%{name}-api
280 install -p -D -m 755 %{SOURCE11} %{buildroot}%{_initrddir}/%{name}-collector
281 install -p -D -m 755 %{SOURCE12} %{buildroot}%{_initrddir}/%{name}-compute
282 install -p -D -m 755 %{SOURCE13} %{buildroot}%{_initrddir}/%{name}-central
283 install -p -D -m 755 %{SOURCE14} %{buildroot}%{_initrddir}/%{name}-alarm-notifier
284 install -p -D -m 755 %{SOURCE15} %{buildroot}%{_initrddir}/%{name}-alarm-evaluator
286 # Install upstart jobs examples
287 install -d -m 755 %{buildroot}%{_datadir}/ceilometer
288 install -p -m 644 %{SOURCE100} %{buildroot}%{_datadir}/ceilometer/
289 install -p -m 644 %{SOURCE110} %{buildroot}%{_datadir}/ceilometer/
290 install -p -m 644 %{SOURCE120} %{buildroot}%{_datadir}/ceilometer/
291 install -p -m 644 %{SOURCE130} %{buildroot}%{_datadir}/ceilometer/
292 install -p -m 644 %{SOURCE140} %{buildroot}%{_datadir}/ceilometer/
293 install -p -m 644 %{SOURCE150} %{buildroot}%{_datadir}/ceilometer/
296 install -p -D -m 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/logrotate.d/%{name}
298 # Install pid directory
299 install -d -m 755 %{buildroot}%{_localstatedir}/run/ceilometer
301 # Remove unneeded in production stuff
302 rm -f %{buildroot}%{_bindir}/ceilometer-debug
303 rm -fr %{buildroot}%{python_sitelib}/tests/
304 rm -fr %{buildroot}%{python_sitelib}/run_tests.*
305 rm -f %{buildroot}/usr/share/doc/ceilometer/README*
306 rm -f %{buildroot}/%{python_sitelib}/ceilometer/api/v1/static/LICENSE.*
310 getent group ceilometer >/dev/null || groupadd -r ceilometer --gid 166
311 if ! getent passwd ceilometer >/dev/null; then
312 # Id reservation request: https://bugzilla.redhat.com/923891
313 useradd -u 166 -r -g ceilometer -G ceilometer,nobody -d %{_sharedstatedir}/ceilometer -s /sbin/nologin -c "OpenStack ceilometer Daemons" ceilometer
318 if [ $1 -eq 1 ] ; then
319 # Initial installation
320 /sbin/chkconfig --add %{name}-compute
324 if [ $1 -eq 1 ] ; then
325 # Initial installation
326 /sbin/chkconfig --add %{name}-collector
330 if [ $1 -eq 1 ] ; then
331 # Initial installation
332 /sbin/chkconfig --add %{name}-api
336 if [ $1 -eq 1 ] ; then
337 # Initial installation
338 /sbin/chkconfig --add %{name}-central
342 if [ $1 -eq 1 ] ; then
343 # Initial installation
344 for svc in alarm-notifier alarm-evaluator; do
345 /sbin/chkconfig --add %{name}-${svc}
350 if [ $1 -eq 0 ] ; then
351 for svc in compute; do
352 /sbin/service %{name}-${svc} stop > /dev/null 2>&1
353 /sbin/chkconfig --del %{name}-${svc}
358 if [ $1 -eq 0 ] ; then
359 for svc in collector; do
360 /sbin/service %{name}-${svc} stop > /dev/null 2>&1
361 /sbin/chkconfig --del %{name}-${svc}
366 if [ $1 -eq 0 ] ; then
368 /sbin/service %{name}-${svc} stop > /dev/null 2>&1
369 /sbin/chkconfig --del %{name}-${svc}
374 if [ $1 -eq 0 ] ; then
375 for svc in central; do
376 /sbin/service %{name}-${svc} stop > /dev/null 2>&1
377 /sbin/chkconfig --del %{name}-${svc}
382 if [ $1 -eq 0 ] ; then
383 for svc in alarm-notifier alarm-evaluator; do
384 /sbin/service %{name}-${svc} stop > /dev/null 2>&1
385 /sbin/chkconfig --del %{name}-${svc}
390 if [ $1 -ge 1 ] ; then
391 # Package upgrade, not uninstall
392 for svc in compute; do
393 /sbin/service %{name}-${svc} condrestart > /dev/null 2>&1 || :
398 if [ $1 -ge 1 ] ; then
399 # Package upgrade, not uninstall
400 for svc in collector; do
401 /sbin/service %{name}-${svc} condrestart > /dev/null 2>&1 || :
406 if [ $1 -ge 1 ] ; then
407 # Package upgrade, not uninstall
409 /sbin/service %{name}-${svc} condrestart > /dev/null 2>&1 || :
414 if [ $1 -ge 1 ] ; then
415 # Package upgrade, not uninstall
416 for svc in central; do
417 /sbin/service %{name}-${svc} condrestart > /dev/null 2>&1 || :
422 /bin/systemctl daemon-reload >/dev/null 2>&1 || :
423 if [ $1 -ge 1 ] ; then
424 # Package upgrade, not uninstall
425 for svc in alarm-notifier alarm-evaluator; do
426 /sbin/service %{name}-${svc} condrestart > /dev/null 2>&1 || :
433 %dir %{_sysconfdir}/ceilometer
434 %attr(-, root, ceilometer) %{_datadir}/ceilometer/ceilometer-dist.conf
435 %config(noreplace) %attr(-, root, ceilometer) %{_sysconfdir}/ceilometer/ceilometer.conf
436 %config(noreplace) %attr(-, root, ceilometer) %{_sysconfdir}/ceilometer/policy.json
437 %config(noreplace) %attr(-, root, ceilometer) %{_sysconfdir}/ceilometer/sources.json
438 %config(noreplace) %attr(-, root, ceilometer) %{_sysconfdir}/ceilometer/pipeline.yaml
439 %config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
441 %dir %attr(0755, ceilometer, root) %{_localstatedir}/log/ceilometer
442 %dir %attr(0755, ceilometer, root) %{_localstatedir}/run/ceilometer
444 %{_bindir}/ceilometer-dbsync
445 %{_bindir}/ceilometer-expirer
448 %defattr(-, ceilometer, ceilometer, -)
449 %dir %{_sharedstatedir}/ceilometer
450 %dir %{_sharedstatedir}/ceilometer/tmp
453 %files -n python-ceilometer
454 %{python_sitelib}/ceilometer
455 %{python_sitelib}/ceilometer-%{version}*.egg-info
465 %{_bindir}/ceilometer-agent-compute
466 %{_initrddir}/%{name}-compute
467 %{_datarootdir}/ceilometer/%{name}-compute.upstart
471 %{_bindir}/ceilometer-collector*
472 %{_initrddir}/%{name}-collector
473 %{_datarootdir}/ceilometer/%{name}-collector.upstart
477 %doc ceilometer/api/v1/static/LICENSE.*
478 %{_bindir}/ceilometer-api
479 %{_initrddir}/%{name}-api
480 %{_datarootdir}/ceilometer/%{name}-api.upstart
484 %{_bindir}/ceilometer-agent-central
485 %{_initrddir}/%{name}-central
486 %{_datarootdir}/ceilometer/%{name}-central.upstart
490 %{_bindir}/ceilometer-alarm-notifier
491 %{_bindir}/ceilometer-alarm-evaluator
492 %{_initrddir}/%{name}-alarm-notifier
493 %{_datarootdir}/ceilometer/%{name}-alarm-notifier.upstart
494 %{_initrddir}/%{name}-alarm-evaluator
495 %{_datarootdir}/ceilometer/%{name}-alarm-evaluator.upstart
499 * Thu Oct 17 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-1
500 - Update to Havana release
502 * Tue Oct 15 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.12.rc2
503 - Update to Havana rc2
504 - openstack-ceilometer-alarm now depends on python-ceilometerclient
506 * Thu Oct 03 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.12.rc1
507 - Update to Havana rc1
508 - Separate out the new alarm services to the 'alarm' subpackage
510 * Fri Sep 13 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.10.b3
511 - Depend on python-oslo-config >= 1:1.2.0 so it upgraded automatically
513 * Mon Sep 10 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.8.b3
514 - Depend on python-pymongo rather than pymongo to avoid a puppet bug
516 * Mon Sep 9 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.7.b3
517 - Depend on python-alembic
519 * Mon Sep 9 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.6.b3
520 - Distribute dist defaults in ceilometer-dist.conf separate to user ceilometer.conf
522 * Mon Sep 9 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.5.b3
523 - Update to Havana milestone 3
525 * Tue Aug 27 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.4.b1
526 - Avoid python runtime dependency management
528 * Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2013.2-0.3.b1
529 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
531 * Thu Jun 6 2013 Pádraig Brady <P@draigBrady.com> - 2013.2-0.2.b1
532 - Fix uninstall for openstack-ceilometer-central
534 * Fri May 31 2013 Pádraig Brady <P@draigBrady.com> - 2013.2-0.1.b1
537 * Mon Apr 8 2013 Pádraig Brady <P@draigBrady.com> - 2013.1-2
540 * Tue Mar 26 2013 Pádraig Brady <P@draigBrady.com> - 2013.1-0.5.g3