%global _without_doc 1 %global with_doc %{!?_without_doc:1}%{?_without_doc:0} %global pypi_name ceilometer Name: openstack-ceilometer # Liberty semver reset # https://review.openstack.org/#/q/I6a35fa0dda798fad93b804d00a46af80f08d475c,n,z Epoch: 1 Version: 5.0.0.0rc1 Release: 2%{?dist}~mos8.0.1 Summary: OpenStack measurement collection service Group: Applications/System License: ASL 2.0 URL: https://wiki.openstack.org/wiki/Ceilometer Source0: %{pypi_name}-%{version}.tar.gz Source1: %{pypi_name}-dist.conf Source2: %{pypi_name}.logrotate Source3: %{pypi_name}.conf.sample Source4: ceilometer-rootwrap-sudoers Source5: openstack-ceilometer-polling Source10: %{name}-api.service Source11: %{name}-collector.service Source12: %{name}-compute.service Source13: %{name}-central.service Source14: %{name}-alarm-notifier.service Source15: %{name}-alarm-evaluator.service Source16: %{name}-notification.service Source17: %{name}-ipmi.service Source18: %{name}-polling.service BuildArch: noarch BuildRequires: intltool BuildRequires: python-sphinx BuildRequires: python-setuptools BuildRequires: python-pbr BuildRequires: python-d2to1 BuildRequires: python2-devel BuildRequires: systemd-units %description OpenStack ceilometer provides services to measure and collect metrics from OpenStack components. %package -n python-ceilometer Summary: OpenStack ceilometer python libraries Group: Applications/System Requires: python-babel >= 1.3 Requires: python-eventlet >= 0.7.14 Requires: python-greenlet >= 0.3.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 Requires: python-jsonpath-rw-ext >= 0.1.7 Requires: python-stevedore >= 1.5.0 Requires: python-msgpack >= 0.4.0 Requires: python-pbr >= 1.6 Requires: python-six >= 1.9.0 Requires: python-sqlalchemy >= 0.9.9 Requires: python-alembic >= 0.8.0 Requires: python-migrate >= 0.9.6 Requires: python-webob >= 1.2.3 Requires: python-oslo-config >= 2:2.3.0 Requires: PyYAML >= 3.1.0 Requires: python-netaddr >= 0.7.12 Requires: python-oslo-rootwrap >= 2.0.0 Requires: python-oslo-vmware >= 1.16.0 Requires: python-requests >= 2.5.2 Requires: pysnmp >= 4.2.1 Requires: pytz >= 2013.6 Requires: python-croniter >= 0.3.4 Requires: python-retrying >= 1.2.3 Requires: python-jsonschema >= 2.0.0 Requires: python-werkzeug >= 0.7 Requires: python-oslo-context >= 0.2.0 Requires: python-oslo-concurrency >= 2.3.0 Requires: python-oslo-i18n >= 1.5.0 Requires: python-oslo-log >= 1.8.0 Requires: python-oslo-middleware >= 2.8.0 Requires: python-oslo-policy >= 0.5.0 Requires: python-oslo-service >= 0.7.0 Requires: python-oslo-reports >= 0.1.0 %description -n python-ceilometer OpenStack ceilometer provides services to measure and collect metrics from OpenStack components. This package contains the ceilometer python library. %package common Summary: Components common to all OpenStack ceilometer services Group: Applications/System Requires: python-ceilometer = %{epoch}:%{version}-%{release} Requires: python-oslo-messaging >= 1.16.0 Requires: python-oslo-serialization >= 1.4.0 Requires: python-oslo-utils >= 2.0.0 Requires: python-posix_ipc Requires(post): systemd-units Requires(preun): systemd-units Requires(postun): systemd-units Requires(pre): shadow-utils %description common OpenStack ceilometer provides services to measure and collect metrics from OpenStack components. This package contains components common to all OpenStack ceilometer services. %package compute Summary: OpenStack ceilometer compute agent Group: Applications/System Requires: %{name}-common = %{epoch}:%{version}-%{release} Requires: %{name}-polling = %{epoch}:%{version}-%{release} Requires: python-novaclient >= 1:2.28.1 Requires: python-keystoneclient >= 1:1.6.0 Requires: python-tooz >= 1.19.0 Requires: libvirt-python >= 1.2.5 %description compute OpenStack ceilometer provides services to measure and collect metrics from OpenStack components. This package contains the ceilometer agent for running on OpenStack compute nodes. %package central Summary: OpenStack ceilometer central agent Group: Applications/System Requires: %{name}-common = %{epoch}:%{version}-%{release} Requires: %{name}-polling = %{epoch}:%{version}-%{release} Requires: python-novaclient >= 1:2.28.1 Requires: python-keystoneclient >= 1:1.6.0 Requires: python-glanceclient >= 1:0.18.0 Requires: python-swiftclient >= 2.2.0 Requires: python-neutronclient >= 2.6.0 Requires: python-tooz >= 1.19.0 %description central OpenStack ceilometer provides services to measure and collect metrics from OpenStack components. This package contains the central ceilometer agent. %package collector Summary: OpenStack ceilometer collector Group: Applications/System Requires: %{name}-common = %{epoch}:%{version}-%{release} # For compat with older provisioning tools. # Remove when all reference the notification package explicitly Requires: %{name}-notification Requires: python-oslo-db >= 2.4.1 Requires: python-pymongo >= 3.0.2 %description collector OpenStack ceilometer provides services to measure and collect metrics from OpenStack components. 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 = %{epoch}:%{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 Summary: OpenStack ceilometer API service Group: Applications/System Requires: %{name}-common = %{epoch}:%{version}-%{release} Requires: python-keystonemiddleware >= 2.0.0 Requires: python-oslo-db >= 2.4.1 Requires: python-pymongo >= 3.0.2 Requires: python-pecan >= 1.0.0 Requires: python-wsme >= 0.7 Requires: python-paste-deploy >= 1.5.0 Requires: python-ceilometerclient >= 1.5.0 Requires: python-tooz >= 1.19.0 %description api OpenStack ceilometer provides services to measure and collect metrics from OpenStack components. This package contains the ceilometer API service. %package alarm Summary: OpenStack ceilometer alarm services Group: Applications/System Requires: %{name}-common = %{epoch}:%{version}-%{release} Requires: python-ceilometerclient >= 1.5.0 %description alarm OpenStack ceilometer provides services to measure and collect metrics from OpenStack components. This package contains the ceilometer alarm notification and evaluation services. %package ipmi Summary: OpenStack ceilometer ipmi agent Group: Applications/System Requires: %{name}-common = %{epoch}:%{version}-%{release} Requires: %{name}-polling = %{epoch}:%{version}-%{release} Requires: python-novaclient >= 1:2.28.1 Requires: python-keystoneclient >= 1:1.6.0 Requires: python-neutronclient >= 2.6.0 Requires: python-tooz >= 1.19.0 Requires: python-oslo-rootwrap >= 2.0.0 Requires: ipmitool %description ipmi OpenStack ceilometer provides services to measure and collect metrics from OpenStack components. This package contains the ipmi agent to be run on OpenStack nodes from which IPMI sensor data is to be collected directly, by-passing Ironic's management of baremetal. %package polling Summary: OpenStack ceilometer polling agent Group: Applications/System Requires: %{name}-common = %{epoch}:%{version}-%{release} Requires: python-novaclient >= 1:2.28.1 Requires: python-keystoneclient >= 1:1.6.0 Requires: python-glanceclient >= 1:0.18.0 Requires: python-swiftclient >= 2.2.0 Requires: libvirt-python >= 1.2.5 %description polling Ceilometer aims to deliver a unique point of contact for billing systems to aquire all counters they need to establish customer billing, across all current and future OpenStack components. The delivery of counters must be tracable and auditable, the counters must be easily extensible to support new projects, and agents doing data collections should be independent of the overall system. This package contains the polling service. %if 0%{?with_doc} %package doc Summary: Documentation for OpenStack ceilometer Group: Documentation # Required to build module documents BuildRequires: python-eventlet BuildRequires: python-sqlalchemy BuildRequires: python-webob # while not strictly required, quiets the build down when building docs. BuildRequires: python-migrate, python-iso8601 %description doc OpenStack ceilometer provides services to measure and collect metrics from OpenStack components. This package contains documentation files for ceilometer. %endif %prep %setup -q -n ceilometer-%{version} 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 %{__python2} setup.py build install -p -D -m 640 %{SOURCE3} etc/ceilometer/ceilometer.conf.sample # Programmatically update defaults in sample config # which is installed at /etc/ceilometer/ceilometer.conf # TODO: Make this more robust # Note it only edits the first occurance, so assumes a section ordering in sample # and also doesn't support multi-valued variables. while read name eq value; do test "$name" && test "$value" || continue sed -i "0,/^# *$name=/{s!^# *$name=.*!#$name=$value!}" etc/ceilometer/ceilometer.conf.sample done < %{SOURCE1} %install %{__python2} setup.py install -O1 --skip-build --root %{buildroot} # docs generation requires everything to be installed first export PYTHONPATH="$( pwd ):$PYTHONPATH" pushd doc %if 0%{?with_doc} SPHINX_DEBUG=1 sphinx-build -b html source build/html # Fix hidden-file-or-dir warnings rm -fr build/html/.doctrees build/html/.buildinfo %endif popd # 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 config files install -d -m 755 %{buildroot}%{_sysconfdir}/ceilometer install -d -m 755 %{buildroot}%{_sysconfdir}/ceilometer/rootwrap.d install -d -m 755 %{buildroot}%{_sysconfdir}/sudoers.d install -d -m 755 %{buildroot}%{_sysconfdir}/sysconfig install -p -D -m 640 %{SOURCE1} %{buildroot}%{_datadir}/ceilometer/ceilometer-dist.conf install -p -D -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/sudoers.d/ceilometer install -p -D -m 644 %{SOURCE5} %{buildroot}%{_sysconfdir}/sysconfig/openstack-ceilometer-polling install -p -D -m 640 etc/ceilometer/ceilometer.conf.sample %{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/pipeline.yaml %{buildroot}%{_sysconfdir}/ceilometer/pipeline.yaml install -p -D -m 640 etc/ceilometer/event_pipeline.yaml %{buildroot}%{_sysconfdir}/ceilometer/event_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 -p -D -m 640 etc/ceilometer/rootwrap.conf %{buildroot}%{_sysconfdir}/ceilometer/rootwrap.conf install -p -D -m 640 etc/ceilometer/rootwrap.d/ipmi.filters %{buildroot}/%{_sysconfdir}/ceilometer/rootwrap.d/ipmi.filters # Install initscripts for services %if 0%{?rhel} && 0%{?rhel} <= 6 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 -p -D -m 755 %{SOURCE17} %{buildroot}%{_initrddir}/%{name}-ipmi install -p -D -m 755 %{SOURCE18} %{buildroot}%{_initrddir}/%{name}-polling # Install upstart jobs examples install -d -m 755 %{buildroot}%{_datadir}/ceilometer install -p -m 644 %{SOURCE100} %{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 -p -m 644 %{SOURCE170} %{buildroot}%{_datadir}/ceilometer/ install -p -m 644 %{SOURCE180} %{buildroot}%{_datadir}/ceilometer/ %else install -p -D -m 644 %{SOURCE10} %{buildroot}%{_unitdir}/%{name}-api.service install -p -D -m 644 %{SOURCE11} %{buildroot}%{_unitdir}/%{name}-collector.service install -p -D -m 644 %{SOURCE12} %{buildroot}%{_unitdir}/%{name}-compute.service install -p -D -m 644 %{SOURCE13} %{buildroot}%{_unitdir}/%{name}-central.service install -p -D -m 644 %{SOURCE14} %{buildroot}%{_unitdir}/%{name}-alarm-notifier.service install -p -D -m 644 %{SOURCE15} %{buildroot}%{_unitdir}/%{name}-alarm-evaluator.service install -p -D -m 644 %{SOURCE16} %{buildroot}%{_unitdir}/%{name}-notification.service install -p -D -m 644 %{SOURCE17} %{buildroot}%{_unitdir}/%{name}-ipmi.service install -p -D -m 644 %{SOURCE18} %{buildroot}%{_unitdir}/%{name}-polling.service %endif # Install logrotate install -p -D -m 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/logrotate.d/%{name} # Remove unneeded in production stuff rm -f %{buildroot}%{_bindir}/ceilometer-debug rm -fr %{buildroot}%{python2_sitelib}/tests/ rm -fr %{buildroot}%{python2_sitelib}/run_tests.* rm -f %{buildroot}/usr/share/doc/ceilometer/README* %pre common getent group ceilometer >/dev/null || groupadd -r ceilometer --gid 166 if ! getent passwd ceilometer >/dev/null; then # Id reservation request: https://bugzilla.redhat.com/923891 useradd -u 166 -r -g ceilometer -G ceilometer,nobody -d %{_sharedstatedir}/ceilometer -s /sbin/nologin -c "OpenStack ceilometer Daemons" ceilometer fi exit 0 %post compute %systemd_post %{name}-compute.service %post collector %systemd_post %{name}-collector.service %post notification %systemd_post %{name}-notification.service %post api %systemd_post %{name}-api.service %post central %systemd_post %{name}-central.service %post alarm %systemd_post %{name}-alarm-notifier.service %{name}-alarm-evaluator.service %post ipmi %systemd_post %{name}-alarm-ipmi.service %post polling %systemd_post %{name}-polling.service %preun compute %systemd_preun %{name}-compute.service %preun collector %systemd_preun %{name}-collector.service %preun notification %systemd_preun %{name}-notification.service %preun api %systemd_preun %{name}-api.service %preun central %systemd_preun %{name}-central.service %preun alarm %systemd_preun %{name}-alarm-notifier.service %{name}-alarm-evaluator.service %preun ipmi %systemd_preun %{name}-ipmi.service %preun polling %systemd_preun %{name}-polling.service %postun compute %systemd_postun_with_restart %{name}-compute.service %postun collector %systemd_postun_with_restart %{name}-collector.service %postun notification %systemd_postun_with_restart %{name}-notification.service %postun api %systemd_postun_with_restart %{name}-api.service %postun central %systemd_postun_with_restart %{name}-central.service %postun alarm %systemd_postun_with_restart %{name}-alarm-notifier.service %{name}-alarm-evaluator.service %postun ipmi %systemd_postun_with_restart %{name}-ipmi.service %postun polling %systemd_postun_with_restart %{name}-polling.service %files common %license 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/pipeline.yaml %config(noreplace) %attr(-, root, ceilometer) %{_sysconfdir}/ceilometer/api_paste.ini %config(noreplace) %{_sysconfdir}/logrotate.d/%{name} %dir %attr(0755, ceilometer, root) %{_localstatedir}/log/ceilometer %{_bindir}/ceilometer-dbsync %{_bindir}/ceilometer-expirer %{_bindir}/ceilometer-send-sample %defattr(-, ceilometer, ceilometer, -) %dir %{_sharedstatedir}/ceilometer %dir %{_sharedstatedir}/ceilometer/tmp %files -n python-ceilometer %{python2_sitelib}/ceilometer %{python2_sitelib}/ceilometer-*.egg-info %if 0%{?with_doc} %files doc %doc doc/build/html %endif %files compute %{_unitdir}/%{name}-compute.service %files collector %{_bindir}/ceilometer-collector* %{_unitdir}/%{name}-collector.service %files notification %config(noreplace) %attr(-, root, ceilometer) %{_sysconfdir}/ceilometer/event_pipeline.yaml %config(noreplace) %attr(-, root, ceilometer) %{_sysconfdir}/ceilometer/event_definitions.yaml %{_bindir}/ceilometer-agent-notification %{_unitdir}/%{name}-notification.service %files api %{_bindir}/ceilometer-api %{_unitdir}/%{name}-api.service %files central %{_unitdir}/%{name}-central.service %files alarm %{_bindir}/ceilometer-alarm-notifier %{_bindir}/ceilometer-alarm-evaluator %{_unitdir}/%{name}-alarm-notifier.service %{_unitdir}/%{name}-alarm-evaluator.service %files ipmi %config(noreplace) %attr(-, root, ceilometer) %{_sysconfdir}/ceilometer/rootwrap.conf %config(noreplace) %attr(-, root, ceilometer) %{_sysconfdir}/ceilometer/rootwrap.d/ipmi.filters %{_bindir}/ceilometer-rootwrap %{_sysconfdir}/sudoers.d/ceilometer %{_unitdir}/%{name}-ipmi.service %files polling %{_bindir}/ceilometer-polling %attr(-, root, ceilometer) %{_sysconfdir}/sysconfig/openstack-ceilometer-polling %{_unitdir}/%{name}-polling.service %changelog * Mon Sep 28 2015 Daniil Trishkin - 1:5.0.0.0rc1-1%{?dist}~mos8.0.1 - Update for Liberty - Update requirements according to global requirements of Liberty - .spec is from https://raw.githubusercontent.com/openstack-packages/ceilometer/rpm-master/openstack-ceilometer.spec * Fri Jan 23 2015 Ivan Berezovskiy - 2015.1.0 - Create own package for polling agent - Update requirements and version to 2015.1.0 * Wed Jan 21 2015 Ivan Berezovskiy - 2015.1.0b1 - Update version to 2015.1.0b1 * Wed Nov 19 2014 Daniil Trishkin - 2014.2 - Update to upstream 2014.2 - Update requirements * Fri Jul 4 2014 Ivan Berezovskiy - 2014.2.b1 - Update to upstream 2014.2.b1 - Update requirements * Wed Jun 11 2014 Steve Linabery - 2014.1.1-2 - Update to upstream 2014.1.1 - fix message routing with newer QPID (rhbz#1103800) * Sat Jun 07 2014 Fedora Release Engineering - 2014.1-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild * Wed May 07 2014 Pádraig Brady - 2014.1-2 - Avoid dependency issues with distributed installs (#1095414) * Thu Apr 17 2014 Pádraig Brady - 2014.1-1 - Update to Icehouse release * Fri Apr 11 2014 Pádraig Brady - 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 2014.1-0.6.rc1 - Update to upstream 2014.1.rc1 * Fri Mar 14 2014 Pádraig Brady - 2014.1-0.5.b3 - Update to Icehouse milestone 3 * Tue Feb 04 2014 Pádraig Brady - 2014.1-0.4.b2 - Fix missing dependency on python-babel * Mon Jan 27 2014 Pádraig Brady - 2014.1-0.3.b2 - Update to Icehouse milestone 2 * Mon Jan 06 2014 Pádraig Brady - 2014.1-0.2.b1 - Set python-six min version to ensure updated * Mon Dec 23 2013 Pádraig Brady - 2014.1-0.1.b1 - Update to Icehouse milestone 1 * Tue Dec 17 2013 Pádraig Brady - 2013.2.1-1 - Update to Havana stable release 2013.2.1 * Thu Oct 17 2013 Pádraig Brady - 2013.2-1 - Update to Havana release * Tue Oct 15 2013 Pádraig Brady - 2013.2-0.12.rc2 - Update to Havana rc2 - openstack-ceilometer-alarm now depends on python-ceilometerclient * Thu Oct 03 2013 Pádraig Brady - 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 - 2013.2-0.10.b3 - Depend on python-oslo-config >= 1:1.2.0 so it upgraded automatically * Tue Sep 10 2013 Pádraig Brady - 2013.2-0.8.b3 - Depend on python-pymongo rather than pymongo to avoid a puppet bug * Mon Sep 9 2013 Pádraig Brady - 2013.2-0.7.b3 - Depend on python-alembic * Mon Sep 9 2013 Pádraig Brady - 2013.2-0.6.b3 - Distribute dist defaults in ceilometer-dist.conf separate to user ceilometer.conf * Mon Sep 9 2013 Pádraig Brady - 2013.2-0.5.b3 - Update to Havana milestone 3 * Tue Aug 27 2013 Pádraig Brady - 2013.2-0.4.b1 - Avoid python runtime dependency management * Sat Aug 03 2013 Fedora Release Engineering - 2013.2-0.3.b1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild * Thu Jun 6 2013 Pádraig Brady - 2013.2-0.2.b1 - Fix uninstall for openstack-ceilometer-central * Fri May 31 2013 Pádraig Brady - 2013.2-0.1.b1 - Havana milestone 1 * Mon Apr 8 2013 Pádraig Brady - 2013.1-2 - Grizzly release * Tue Mar 26 2013 Pádraig Brady - 2013.1-0.5.g3 - Initial package