2 %global with_doc %{!?_without_doc:1}%{?_without_doc:0}
3 %global pypi_name ceilometer
5 Name: openstack-ceilometer
7 Release: 0.8.b3%{?dist}
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}.b3.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
27 # patches_base=2013.2.b3
29 Patch0001: 0001-Ensure-we-don-t-access-the-net-when-building-docs.patch
31 # This is EL6 specific and not upstream
32 Patch100: openstack-ceilometer-newdeps.patch
35 BuildRequires: intltool
36 BuildRequires: python-sphinx10
37 BuildRequires: python-setuptools
38 BuildRequires: python-pbr
39 BuildRequires: python-d2to1
40 BuildRequires: python2-devel
42 BuildRequires: openstack-utils
44 # These are required to build due to the requirements check added
45 BuildRequires: python-sqlalchemy0.7
46 BuildRequires: python-webob1.2
50 OpenStack ceilometer provides services to measure and
51 collect metrics from OpenStack components.
54 %package -n python-ceilometer
55 Summary: OpenStack ceilometer python libraries
56 Group: Applications/System
59 Requires: python-kombu
60 Requires: python-amqplib
62 Requires: python-eventlet
63 Requires: python-greenlet
64 Requires: python-iso8601
66 Requires: python-anyjson
67 Requires: python-stevedore
68 Requires: python-msgpack
69 Requires: python-netaddr
72 Requires: python-sqlalchemy0.7
73 Requires: python-alembic
74 Requires: python-migrate
76 Requires: python-webob >= 1.2
77 Requires: python-oslo-config
80 %description -n python-ceilometer
81 OpenStack ceilometer provides services to measure and
82 collect metrics from OpenStack components.
84 This package contains the ceilometer python library.
88 Summary: Components common to all OpenStack ceilometer services
89 Group: Applications/System
91 Requires: python-ceilometer = %{version}-%{release}
92 Requires: openstack-utils
94 Requires(post): chkconfig
95 Requires(postun): initscripts
96 Requires(preun): chkconfig
97 Requires(pre): shadow-utils
102 OpenStack ceilometer provides services to measure and
103 collect metrics from OpenStack components.
105 This package contains components common to all OpenStack
110 Summary: OpenStack ceilometer compute agent
111 Group: Applications/System
113 Requires: %{name}-common = %{version}-%{release}
115 Requires: python-novaclient
116 Requires: python-keystoneclient
117 Requires: libvirt-python
120 OpenStack ceilometer provides services to measure and
121 collect metrics from OpenStack components.
123 This package contains the ceilometer agent for
124 running on OpenStack compute nodes.
128 Summary: OpenStack ceilometer central agent
129 Group: Applications/System
131 Requires: %{name}-common = %{version}-%{release}
133 Requires: python-novaclient
134 Requires: python-keystoneclient
135 Requires: python-glanceclient
136 Requires: python-swiftclient
139 OpenStack ceilometer provides services to measure and
140 collect metrics from OpenStack components.
142 This package contains the central ceilometer agent.
146 Summary: OpenStack ceilometer collector agent
147 Group: Applications/System
149 Requires: %{name}-common = %{version}-%{release}
151 Requires: python-pymongo
153 %description collector
154 OpenStack ceilometer provides services to measure and
155 collect metrics from OpenStack components.
157 This package contains the ceilometer collector agent.
161 Summary: OpenStack ceilometer API service
162 Group: Applications/System
164 Requires: %{name}-common = %{version}-%{release}
166 Requires: python-pymongo
167 Requires: python-flask
168 Requires: python-pecan
169 Requires: python-wsme
172 OpenStack ceilometer provides services to measure and
173 collect metrics from OpenStack components.
175 This package contains the ceilometer API service.
180 Summary: Documentation for OpenStack ceilometer
183 # Required to build module documents
184 BuildRequires: python-eventlet
185 BuildRequires: python-sqlalchemy0.7
186 BuildRequires: python-webob
187 # while not strictly required, quiets the build down when building docs.
188 BuildRequires: python-migrate, python-iso8601
191 OpenStack ceilometer provides services to measure and
192 collect metrics from OpenStack components.
194 This package contains documentation files for ceilometer.
198 %setup -q -n ceilometer-%{version}
205 find . \( -name .gitignore -o -name .placeholder \) -delete
207 find ceilometer -name \*.py -exec sed -i '/\/usr\/bin\/env python/{d;q}' {} +
209 # TODO: Have the following handle multi line entries
210 sed -i '/setup_requires/d; /install_requires/d; /dependency_links/d' setup.py
212 # Remove the requirements file so that pbr hooks don't add it
213 # to distutils requires_dist config
214 rm -rf {test-,}requirements.txt tools/{pip,test}-requires
216 # Programmatically update defaults in sample config
217 # which is installed at /etc/ceilometer/ceilometer.conf
218 # TODO: Make this more robust
219 # Note it only edits the first occurance, so assumes a section ordering in sample
220 # and also doesn't support multi-valued variables.
221 while read name eq value; do
222 test "$name" && test "$value" || continue
223 sed -i "0,/^# *$name=/{s!^# *$name=.*!#$name=$value!}" etc/ceilometer/ceilometer.conf.sample
227 %{__python} setup.py build
230 %{__python} setup.py install -O1 --skip-build --root %{buildroot}
232 # docs generation requires everything to be installed first
233 export PYTHONPATH="$( pwd ):$PYTHONPATH"
238 SPHINX_DEBUG=1 sphinx-1.0-build -b html source build/html
239 # Fix hidden-file-or-dir warnings
240 rm -fr build/html/.doctrees build/html/.buildinfo
246 install -d -m 755 %{buildroot}%{_sharedstatedir}/ceilometer
247 install -d -m 755 %{buildroot}%{_sharedstatedir}/ceilometer/tmp
248 install -d -m 755 %{buildroot}%{_localstatedir}/log/ceilometer
250 # Install config files
251 install -d -m 755 %{buildroot}%{_sysconfdir}/ceilometer
252 install -p -D -m 640 %{SOURCE1} %{buildroot}%{_datadir}/ceilometer/ceilometer-dist.conf
253 install -p -D -m 640 etc/ceilometer/ceilometer.conf.sample %{buildroot}%{_sysconfdir}/ceilometer/ceilometer.conf
254 install -p -D -m 640 etc/ceilometer/policy.json %{buildroot}%{_sysconfdir}/ceilometer/policy.json
255 install -p -D -m 640 etc/ceilometer/sources.json %{buildroot}%{_sysconfdir}/ceilometer/sources.json
256 install -p -D -m 640 etc/ceilometer/pipeline.yaml %{buildroot}%{_sysconfdir}/ceilometer/pipeline.yaml
258 # Install initscripts for services
259 install -p -D -m 755 %{SOURCE10} %{buildroot}%{_initrddir}/%{name}-api
260 install -p -D -m 755 %{SOURCE11} %{buildroot}%{_initrddir}/%{name}-collector
261 install -p -D -m 755 %{SOURCE12} %{buildroot}%{_initrddir}/%{name}-compute
262 install -p -D -m 755 %{SOURCE13} %{buildroot}%{_initrddir}/%{name}-central
264 # Install upstart jobs examples
265 install -d -m 755 %{buildroot}%{_datadir}/ceilometer
266 install -p -m 644 %{SOURCE100} %{buildroot}%{_datadir}/ceilometer/
267 install -p -m 644 %{SOURCE110} %{buildroot}%{_datadir}/ceilometer/
268 install -p -m 644 %{SOURCE120} %{buildroot}%{_datadir}/ceilometer/
269 install -p -m 644 %{SOURCE130} %{buildroot}%{_datadir}/ceilometer/
272 install -p -D -m 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/logrotate.d/%{name}
274 # Install pid directory
275 install -d -m 755 %{buildroot}%{_localstatedir}/run/ceilometer
277 # Remove unneeded in production stuff
278 rm -f %{buildroot}%{_bindir}/ceilometer-debug
279 rm -fr %{buildroot}%{python_sitelib}/tests/
280 rm -fr %{buildroot}%{python_sitelib}/run_tests.*
281 rm -f %{buildroot}/usr/share/doc/ceilometer/README*
282 rm -f %{buildroot}/%{python_sitelib}/ceilometer/api/v1/static/LICENSE.*
286 getent group ceilometer >/dev/null || groupadd -r ceilometer --gid 166
287 if ! getent passwd ceilometer >/dev/null; then
288 # Id reservation request: https://bugzilla.redhat.com/923891
289 useradd -u 166 -r -g ceilometer -G ceilometer,nobody -d %{_sharedstatedir}/ceilometer -s /sbin/nologin -c "OpenStack ceilometer Daemons" ceilometer
294 if [ $1 -eq 1 ] ; then
295 # Initial installation
296 /sbin/chkconfig --add %{name}-compute
300 if [ $1 -eq 1 ] ; then
301 # Initial installation
302 /sbin/chkconfig --add %{name}-collector
306 if [ $1 -eq 1 ] ; then
307 # Initial installation
308 /sbin/chkconfig --add %{name}-api
312 if [ $1 -eq 1 ] ; then
313 # Initial installation
314 /sbin/chkconfig --add %{name}-central
318 if [ $1 -eq 0 ] ; then
319 for svc in compute; do
320 /sbin/service %{name}-${svc} stop > /dev/null 2>&1
321 /sbin/chkconfig --del %{name}-${svc}
326 if [ $1 -eq 0 ] ; then
327 for svc in collector; do
328 /sbin/service %{name}-${svc} stop > /dev/null 2>&1
329 /sbin/chkconfig --del %{name}-${svc}
334 if [ $1 -eq 0 ] ; then
336 /sbin/service %{name}-${svc} stop > /dev/null 2>&1
337 /sbin/chkconfig --del %{name}-${svc}
342 if [ $1 -eq 0 ] ; then
343 for svc in central; do
344 /sbin/service %{name}-${svc} stop > /dev/null 2>&1
345 /sbin/chkconfig --del %{name}-${svc}
350 if [ $1 -ge 1 ] ; then
351 # Package upgrade, not uninstall
352 for svc in compute; do
353 /sbin/service %{name}-${svc} condrestart > /dev/null 2>&1 || :
358 if [ $1 -ge 1 ] ; then
359 # Package upgrade, not uninstall
360 for svc in collector; do
361 /sbin/service %{name}-${svc} condrestart > /dev/null 2>&1 || :
366 if [ $1 -ge 1 ] ; then
367 # Package upgrade, not uninstall
369 /sbin/service %{name}-${svc} condrestart > /dev/null 2>&1 || :
374 if [ $1 -ge 1 ] ; then
375 # Package upgrade, not uninstall
376 for svc in central; do
377 /sbin/service %{name}-${svc} condrestart > /dev/null 2>&1 || :
384 %dir %{_sysconfdir}/ceilometer
385 %attr(-, root, ceilometer) %{_datadir}/ceilometer/ceilometer-dist.conf
386 %config(noreplace) %attr(-, root, ceilometer) %{_sysconfdir}/ceilometer/ceilometer.conf
387 %config(noreplace) %attr(-, root, ceilometer) %{_sysconfdir}/ceilometer/policy.json
388 %config(noreplace) %attr(-, root, ceilometer) %{_sysconfdir}/ceilometer/sources.json
389 %config(noreplace) %attr(-, root, ceilometer) %{_sysconfdir}/ceilometer/pipeline.yaml
390 %config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
392 %dir %attr(0755, ceilometer, root) %{_localstatedir}/log/ceilometer
393 %dir %attr(0755, ceilometer, root) %{_localstatedir}/run/ceilometer
395 %{_bindir}/ceilometer-*
397 %defattr(-, ceilometer, ceilometer, -)
398 %dir %{_sharedstatedir}/ceilometer
399 %dir %{_sharedstatedir}/ceilometer/tmp
402 %files -n python-ceilometer
403 %{python_sitelib}/ceilometer
404 %{python_sitelib}/ceilometer-%{version}*.egg-info
414 %{_bindir}/ceilometer-agent-compute
415 %{_initrddir}/%{name}-compute
416 %{_datarootdir}/ceilometer/%{name}-compute.upstart
420 %{_bindir}/ceilometer-collector
421 %{_initrddir}/%{name}-collector
422 %{_datarootdir}/ceilometer/%{name}-collector.upstart
426 %doc ceilometer/api/v1/static/LICENSE.*
427 %{_bindir}/ceilometer-api
428 %{_initrddir}/%{name}-api
429 %{_datarootdir}/ceilometer/%{name}-api.upstart
433 %{_bindir}/ceilometer-agent-central
434 %{_initrddir}/%{name}-central
435 %{_datarootdir}/ceilometer/%{name}-central.upstart
439 * Mon Sep 10 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.8.b3
440 - Depend on python-pymongo rather than pymongo to avoid a puppet bug
442 * Mon Sep 9 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.7.b3
443 - Depend on python-alembic
445 * Mon Sep 9 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.6.b3
446 - Distribute dist defaults in ceilometer-dist.conf separate to user ceilometer.conf
448 * Mon Sep 9 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.5.b3
449 - Update to Havana milestone 3
451 * Tue Aug 27 2013 Pádraig Brady <pbrady@redhat.com> - 2013.2-0.4.b1
452 - Avoid python runtime dependency management
454 * Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2013.2-0.3.b1
455 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
457 * Thu Jun 6 2013 Pádraig Brady <P@draigBrady.com> - 2013.2-0.2.b1
458 - Fix uninstall for openstack-ceilometer-central
460 * Fri May 31 2013 Pádraig Brady <P@draigBrady.com> - 2013.2-0.1.b1
463 * Mon Apr 8 2013 Pádraig Brady <P@draigBrady.com> - 2013.1-2
466 * Tue Mar 26 2013 Pádraig Brady <P@draigBrady.com> - 2013.1-0.5.g3