From: Ilya Kharin Date: Mon, 15 Jul 2013 19:55:01 +0000 (+0400) Subject: Update RPM-specs to 2013.1.2 version X-Git-Tag: 2014.1~16^2 X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=83a861872b42b59992e91ae14efdbb03f5c3a5c1;p=openstack-build%2Fceilometer-build.git Update RPM-specs to 2013.1.2 version Change-Id: I9ab78572edb6fa628f62abda38bebdd9fc3763f4 --- diff --git a/rpm/SOURCES/0001-Ensure-we-don-t-access-the-net-when-building-docs.patch b/rpm/SOURCES/0001-Ensure-we-don-t-access-the-net-when-building-docs.patch new file mode 100644 index 0000000..220e998 --- /dev/null +++ b/rpm/SOURCES/0001-Ensure-we-don-t-access-the-net-when-building-docs.patch @@ -0,0 +1,24 @@ +From 995e4dac63cfaad92a8634211734a81d66f5c688 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?P=C3=A1draig=20Brady?= +Date: Fri, 6 Jan 2012 12:16:34 +0000 +Subject: [PATCH] Ensure we don't access the net when building docs + +(Note, this has not been sent upstream) + +Change-Id: I9d02fb4053a8106672aded1614a2850e21603eb2 +--- + doc/source/conf.py | 1 - + 1 files changed, 0 insertions(+), 1 deletions(-) + +diff --git a/doc/source/conf.py b/doc/source/conf.py +index 7b77eb9..2b36df7 100644 +--- a/doc/source/conf.py ++++ b/doc/source/conf.py +@@ -139,7 +139,6 @@ write_autodoc_index() + # They can be extensions coming with Sphinx (named 'sphinx.ext.*') + # or your custom ones. + extensions = ['sphinx.ext.autodoc', +- 'sphinx.ext.intersphinx', + 'sphinx.ext.todo', + 'sphinxcontrib.autohttp.flask', + 'wsmeext.sphinxext', diff --git a/rpm/SOURCES/0002-avoid-code-path-causing-qpid-exchange-leaks.patch b/rpm/SOURCES/0002-avoid-code-path-causing-qpid-exchange-leaks.patch new file mode 100644 index 0000000..62c9e3f --- /dev/null +++ b/rpm/SOURCES/0002-avoid-code-path-causing-qpid-exchange-leaks.patch @@ -0,0 +1,26 @@ +From 975c75e089327bd63f9fa5c934950244f0daae42 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?P=C3=A1draig=20Brady?= +Date: Fri, 21 Jun 2013 10:47:51 +0100 +Subject: [PATCH] avoid code path causing qpid exchange leaks + +Always assume amqp_rpc_single_reply_queue is True, +so that the problematic code path is ignored. +The issue is discussed at https://pad.lv/1178375 +--- + ceilometer/openstack/common/rpc/amqp.py | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +diff --git a/ceilometer/openstack/common/rpc/amqp.py b/ceilometer/openstack/common/rpc/amqp.py +index d8e6ba0..01f0e1f 100644 +--- a/ceilometer/openstack/common/rpc/amqp.py ++++ b/ceilometer/openstack/common/rpc/amqp.py +@@ -590,7 +590,8 @@ def multicall(conf, context, topic, msg, timeout, connection_pool): + + # TODO(pekowski): Remove this flag and the code under the if clause + # in Havana. +- if not conf.amqp_rpc_single_reply_queue: ++ # (p-draigbrady): This clause is disabled to avoid qpid exchange leaks ++ if False and not conf.amqp_rpc_single_reply_queue: + conn = ConnectionContext(conf, connection_pool) + wait_msg = MulticallWaiter(conf, conn, timeout) + conn.declare_direct_consumer(msg_id, wait_msg) diff --git a/rpm/SOURCES/ceilometer.conf b/rpm/SOURCES/ceilometer.conf new file mode 100644 index 0000000..fdf224c --- /dev/null +++ b/rpm/SOURCES/ceilometer.conf @@ -0,0 +1,5 @@ +[DEFAULT] +logdir = /var/log/ceilometer +sql_connection = mysql://ceilometer:ceilometer@localhost/ceilometer +rpc_backend = ceilometer.openstack.common.rpc.impl_qpid + diff --git a/rpm/SOURCES/ceilometer.logrotate b/rpm/SOURCES/ceilometer.logrotate new file mode 100644 index 0000000..3424103 --- /dev/null +++ b/rpm/SOURCES/ceilometer.logrotate @@ -0,0 +1,9 @@ +compress + +/var/log/ceilometer/*.log { + weekly + rotate 4 + missingok + compress + minsize 100k +} diff --git a/rpm/SOURCES/openstack-ceilometer-api.init b/rpm/SOURCES/openstack-ceilometer-api.init new file mode 100644 index 0000000..913ae66 --- /dev/null +++ b/rpm/SOURCES/openstack-ceilometer-api.init @@ -0,0 +1,102 @@ +#!/bin/sh +# +# openstack-ceilometer-api OpenStack ceilometer API Server +# +# chkconfig: - 98 02 +# description: OpenStack measurement and collection service API server + +### BEGIN INIT INFO +# Provides: +# Required-Start: $remote_fs $network $syslog +# Required-Stop: $remote_fs $syslog +# Default-Stop: 0 1 6 +# Short-Description: OpenStack ceilometer API Server +# Description: OpenStack measurement and collection service API server +### END INIT INFO + +. /etc/rc.d/init.d/functions + +suffix=api +prog=openstack-ceilometer-$suffix +exec="/usr/bin/ceilometer-$suffix" +config="/etc/ceilometer/ceilometer.conf" +pidfile="/var/run/ceilometer/ceilometer-$suffix.pid" +logfile="/var/log/ceilometer/$suffix.log" + +[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog + +lockfile=/var/lock/subsys/$prog + +start() { + [ -x $exec ] || exit 5 + [ -f $config ] || exit 6 + echo -n $"Starting $prog: " + daemon --user ceilometer --pidfile $pidfile "$exec --config-file $config --logfile $logfile &>/dev/null & echo \$! > $pidfile" + retval=$? + echo + [ $retval -eq 0 ] && touch $lockfile + return $retval +} + +stop() { + echo -n $"Stopping $prog: " + killproc -p $pidfile $prog + retval=$? + echo + [ $retval -eq 0 ] && rm -f $lockfile + return $retval +} + +restart() { + stop + start +} + +reload() { + restart +} + +force_reload() { + restart +} + +rh_status() { + status -p $pidfile $prog +} + +rh_status_q() { + rh_status >/dev/null 2>&1 +} + + +case "$1" in + start) + rh_status_q && exit 0 + $1 + ;; + stop) + rh_status_q || exit 0 + $1 + ;; + restart) + $1 + ;; + reload) + rh_status_q || exit 7 + $1 + ;; + force-reload) + force_reload + ;; + status) + rh_status + ;; + condrestart|try-restart) + rh_status_q || exit 0 + restart + ;; + *) + echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" + exit 2 +esac +exit $? diff --git a/rpm/SOURCES/openstack-ceilometer-api.upstart b/rpm/SOURCES/openstack-ceilometer-api.upstart new file mode 100644 index 0000000..7cde214 --- /dev/null +++ b/rpm/SOURCES/openstack-ceilometer-api.upstart @@ -0,0 +1,8 @@ +description "OpenStack Ceilometer API Server" + +start on stopped rc RUNLEVEL=[2345] +stop on runlevel [S016] + +respawn + +exec su -s /bin/sh -c "exec /usr/bin/ceilometer-api --config-file /etc/ceilometer/ceilometer.conf --logfile /var/log/ceilometer/api.log" ceilometer diff --git a/rpm/SOURCES/openstack-ceilometer-central.init b/rpm/SOURCES/openstack-ceilometer-central.init new file mode 100644 index 0000000..366d74a --- /dev/null +++ b/rpm/SOURCES/openstack-ceilometer-central.init @@ -0,0 +1,102 @@ +#!/bin/sh +# +# openstack-ceilometer-central OpenStack ceilometer central agent +# +# chkconfig: - 98 02 +# description: OpenStack measurement and collection service central agent + +### BEGIN INIT INFO +# Provides: +# Required-Start: $remote_fs $network $syslog +# Required-Stop: $remote_fs $syslog +# Default-Stop: 0 1 6 +# Short-Description: OpenStack ceilometer central agent +# Description: OpenStack measurement and collection service central agent +### END INIT INFO + +. /etc/rc.d/init.d/functions + +suffix=central +prog=openstack-ceilometer-$suffix +exec="/usr/bin/ceilometer-agent-$suffix" +config="/etc/ceilometer/ceilometer.conf" +pidfile="/var/run/ceilometer/ceilometer-$suffix.pid" +logfile="/var/log/ceilometer/$suffix.log" + +[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog + +lockfile=/var/lock/subsys/$prog + +start() { + [ -x $exec ] || exit 5 + [ -f $config ] || exit 6 + echo -n $"Starting $prog: " + daemon --user ceilometer --pidfile $pidfile "$exec --config-file $config --logfile $logfile &>/dev/null & echo \$! > $pidfile" + retval=$? + echo + [ $retval -eq 0 ] && touch $lockfile + return $retval +} + +stop() { + echo -n $"Stopping $prog: " + killproc -p $pidfile $prog + retval=$? + echo + [ $retval -eq 0 ] && rm -f $lockfile + return $retval +} + +restart() { + stop + start +} + +reload() { + restart +} + +force_reload() { + restart +} + +rh_status() { + status -p $pidfile $prog +} + +rh_status_q() { + rh_status >/dev/null 2>&1 +} + + +case "$1" in + start) + rh_status_q && exit 0 + $1 + ;; + stop) + rh_status_q || exit 0 + $1 + ;; + restart) + $1 + ;; + reload) + rh_status_q || exit 7 + $1 + ;; + force-reload) + force_reload + ;; + status) + rh_status + ;; + condrestart|try-restart) + rh_status_q || exit 0 + restart + ;; + *) + echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" + exit 2 +esac +exit $? diff --git a/rpm/SOURCES/openstack-ceilometer-central.upstart b/rpm/SOURCES/openstack-ceilometer-central.upstart new file mode 100644 index 0000000..390935c --- /dev/null +++ b/rpm/SOURCES/openstack-ceilometer-central.upstart @@ -0,0 +1,8 @@ +description "OpenStack Ceilometer central agent" + +start on stopped rc RUNLEVEL=[2345] +stop on runlevel [S016] + +respawn + +exec su -s /bin/sh -c "exec /usr/bin/ceilometer-agent-central --config-file /etc/ceilometer/ceilometer.conf --logfile /var/log/ceilometer/central.log" ceilometer diff --git a/rpm/SOURCES/openstack-ceilometer-collector.init b/rpm/SOURCES/openstack-ceilometer-collector.init new file mode 100644 index 0000000..9dca492 --- /dev/null +++ b/rpm/SOURCES/openstack-ceilometer-collector.init @@ -0,0 +1,102 @@ +#!/bin/sh +# +# openstack-ceilometer-collector OpenStack ceilometer collector Server +# +# chkconfig: - 98 02 +# description: OpenStack measurement and collection service collector agent + +### BEGIN INIT INFO +# Provides: +# Required-Start: $remote_fs $network $syslog +# Required-Stop: $remote_fs $syslog +# Default-Stop: 0 1 6 +# Short-Description: OpenStack ceilometer collector Server +# Description: OpenStack measurement and collection service collector agent +### END INIT INFO + +. /etc/rc.d/init.d/functions + +suffix=collector +prog=openstack-ceilometer-$suffix +exec="/usr/bin/ceilometer-$suffix" +config="/etc/ceilometer/ceilometer.conf" +pidfile="/var/run/ceilometer/ceilometer-$suffix.pid" +logfile="/var/log/ceilometer/$suffix.log" + +[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog + +lockfile=/var/lock/subsys/$prog + +start() { + [ -x $exec ] || exit 5 + [ -f $config ] || exit 6 + echo -n $"Starting $prog: " + daemon --user ceilometer --pidfile $pidfile "$exec --config-file $config --logfile $logfile &>/dev/null & echo \$! > $pidfile" + retval=$? + echo + [ $retval -eq 0 ] && touch $lockfile + return $retval +} + +stop() { + echo -n $"Stopping $prog: " + killproc -p $pidfile $prog + retval=$? + echo + [ $retval -eq 0 ] && rm -f $lockfile + return $retval +} + +restart() { + stop + start +} + +reload() { + restart +} + +force_reload() { + restart +} + +rh_status() { + status -p $pidfile $prog +} + +rh_status_q() { + rh_status >/dev/null 2>&1 +} + + +case "$1" in + start) + rh_status_q && exit 0 + $1 + ;; + stop) + rh_status_q || exit 0 + $1 + ;; + restart) + $1 + ;; + reload) + rh_status_q || exit 7 + $1 + ;; + force-reload) + force_reload + ;; + status) + rh_status + ;; + condrestart|try-restart) + rh_status_q || exit 0 + restart + ;; + *) + echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" + exit 2 +esac +exit $? diff --git a/rpm/SOURCES/openstack-ceilometer-collector.upstart b/rpm/SOURCES/openstack-ceilometer-collector.upstart new file mode 100644 index 0000000..bd6ee43 --- /dev/null +++ b/rpm/SOURCES/openstack-ceilometer-collector.upstart @@ -0,0 +1,8 @@ +description "OpenStack Ceilometer collector agent" + +start on stopped rc RUNLEVEL=[2345] +stop on runlevel [S016] + +respawn + +exec su -s /bin/sh -c "exec /usr/bin/ceilometer-collector --config-file /etc/ceilometer/ceilometer.conf --logfile /var/log/ceilometer/collector.log" ceilometer diff --git a/rpm/SOURCES/openstack-ceilometer-compute.init b/rpm/SOURCES/openstack-ceilometer-compute.init new file mode 100644 index 0000000..25e578a --- /dev/null +++ b/rpm/SOURCES/openstack-ceilometer-compute.init @@ -0,0 +1,102 @@ +#!/bin/sh +# +# openstack-ceilometer-compute OpenStack ceilometer compute node agent +# +# chkconfig: - 98 02 +# description: OpenStack measurement and collection service for running on compute nodes + +### BEGIN INIT INFO +# Provides: +# Required-Start: $remote_fs $network $syslog +# Required-Stop: $remote_fs $syslog +# Default-Stop: 0 1 6 +# Short-Description: OpenStack ceilometer compute node agent +# Description: OpenStack measurement and collection service for running on compute nodes +### END INIT INFO + +. /etc/rc.d/init.d/functions + +suffix=compute +prog=openstack-ceilometer-$suffix +exec="/usr/bin/ceilometer-agent-$suffix" +config="/etc/ceilometer/ceilometer.conf" +pidfile="/var/run/ceilometer/ceilometer-$suffix.pid" +logfile="/var/log/ceilometer/$suffix.log" + +[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog + +lockfile=/var/lock/subsys/$prog + +start() { + [ -x $exec ] || exit 5 + [ -f $config ] || exit 6 + echo -n $"Starting $prog: " + daemon --user ceilometer --pidfile $pidfile "$exec --config-file $config --logfile $logfile &>/dev/null & echo \$! > $pidfile" + retval=$? + echo + [ $retval -eq 0 ] && touch $lockfile + return $retval +} + +stop() { + echo -n $"Stopping $prog: " + killproc -p $pidfile $prog + retval=$? + echo + [ $retval -eq 0 ] && rm -f $lockfile + return $retval +} + +restart() { + stop + start +} + +reload() { + restart +} + +force_reload() { + restart +} + +rh_status() { + status -p $pidfile $prog +} + +rh_status_q() { + rh_status >/dev/null 2>&1 +} + + +case "$1" in + start) + rh_status_q && exit 0 + $1 + ;; + stop) + rh_status_q || exit 0 + $1 + ;; + restart) + $1 + ;; + reload) + rh_status_q || exit 7 + $1 + ;; + force-reload) + force_reload + ;; + status) + rh_status + ;; + condrestart|try-restart) + rh_status_q || exit 0 + restart + ;; + *) + echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" + exit 2 +esac +exit $? diff --git a/rpm/SOURCES/openstack-ceilometer-compute.upstart b/rpm/SOURCES/openstack-ceilometer-compute.upstart new file mode 100644 index 0000000..7d65b2b --- /dev/null +++ b/rpm/SOURCES/openstack-ceilometer-compute.upstart @@ -0,0 +1,8 @@ +description "OpenStack Ceilometer compute agent" + +start on stopped rc RUNLEVEL=[2345] +stop on runlevel [S016] + +respawn + +exec su -s /bin/sh -c "exec /usr/bin/ceilometer-agent-compute --config-file /etc/ceilometer/ceilometer.conf --logfile /var/log/ceilometer/compute.log" ceilometer diff --git a/rpm/SOURCES/openstack-ceilometer-newdeps.patch b/rpm/SOURCES/openstack-ceilometer-newdeps.patch new file mode 100644 index 0000000..ae8994f --- /dev/null +++ b/rpm/SOURCES/openstack-ceilometer-newdeps.patch @@ -0,0 +1,50 @@ +diff -Naur ceilometer-2013.1.g3.orig/ceilometer/__init__.py ceilometer-2013.1.g3/ceilometer/__init__.py +--- ceilometer-2013.1.g3.orig/ceilometer/__init__.py 2013-04-08 09:54:04.545469160 +0000 ++++ ceilometer-2013.1.g3/ceilometer/__init__.py 2013-04-08 10:01:12.306302227 +0000 +@@ -14,6 +14,28 @@ + # under the License. + # + ++import sys ++import pkg_resources ++ ++# If there is a conflicting non egg module, ++# i.e. an older standard system module installed, ++# then replace it with this requirement ++def replace_dist(requirement): ++ try: ++ return pkg_resources.require(requirement) ++ except pkg_resources.VersionConflict: ++ e = sys.exc_info()[1] ++ dist=e.args[0] ++ req=e.args[1] ++ if dist.key == req.key and not dist.location.endswith('.egg'): ++ del pkg_resources.working_set.by_key[dist.key] ++ # We assume there is no need to adjust sys.path ++ # and the associated pkg_resources.working_set.entries ++ return pkg_resources.require(requirement) ++ ++replace_dist("WebOb >= 1.2") ++replace_dist("SQLAlchemy >= 0.7.3") ++ + import gettext + + gettext.install('ceilometer', unicode=1) +diff -Naur ceilometer-2013.1.g3.orig/ceilometer/storage/sqlalchemy/migration.py ceilometer-2013.1.g3/ceilometer/storage/sqlalchemy/migration.py +--- ceilometer-2013.1.g3.orig/ceilometer/storage/sqlalchemy/migration.py 2013-04-08 09:54:04.608469135 +0000 ++++ ceilometer-2013.1.g3/ceilometer/storage/sqlalchemy/migration.py 2013-04-08 10:06:21.515180041 +0000 +@@ -52,7 +52,13 @@ + + + # NOTE(jkoelker) Delay importing migrate until we are patched +-from migrate import exceptions as versioning_exceptions ++try: ++ # Try the more specific path first (migrate <= 0.6) ++ from migrate.versioning import exceptions as versioning_exceptions ++except ImportError: ++ # Use the newer path (migrate >= 0.7) ++ from migrate import exceptions as versioning_exceptions ++ + from migrate.versioning import api as versioning_api + from migrate.versioning.repository import Repository + diff --git a/rpm/SPECS/openstack-ceilometer.spec b/rpm/SPECS/openstack-ceilometer.spec new file mode 100644 index 0000000..369ec4c --- /dev/null +++ b/rpm/SPECS/openstack-ceilometer.spec @@ -0,0 +1,432 @@ +%global _without_doc 1 +%global with_doc %{!?_without_doc:1}%{?_without_doc:0} +%global pypi_name ceilometer + +Name: openstack-ceilometer +Version: 2013.1.2 +Release: 2%{?dist} +Summary: OpenStack measurement collection service + +Group: Applications/System +License: ASL 2.0 +URL: https://wiki.openstack.org/wiki/Ceilometer +Source0: ceilometer-%{version}.tar.gz +Source1: %{pypi_name}.conf +Source2: %{pypi_name}.logrotate + +Source10: %{name}-api.init +Source100: %{name}-api.upstart +Source11: %{name}-collector.init +Source110: %{name}-collector.upstart +Source12: %{name}-compute.init +Source120: %{name}-compute.upstart +Source13: %{name}-central.init +Source130: %{name}-central.upstart + +# +# patches_base=2013.1.2 +# +Patch0001: 0001-Ensure-we-don-t-access-the-net-when-building-docs.patch +Patch0002: 0002-avoid-code-path-causing-qpid-exchange-leaks.patch + +# This is EL6 specific and not upstream +Patch100: openstack-ceilometer-newdeps.patch + +BuildArch: noarch +BuildRequires: intltool +BuildRequires: python-sphinx10 +BuildRequires: python-setuptools +BuildRequires: python2-devel + +BuildRequires: openstack-utils + +# These are required to build due to the requirements check added +BuildRequires: python-sqlalchemy0.7 +BuildRequires: python-webob1.2 + + +%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-qpid +Requires: python-kombu +Requires: python-amqplib + +Requires: python-eventlet +Requires: python-greenlet +Requires: python-iso8601 +Requires: python-lxml +Requires: python-anyjson +Requires: python-stevedore + +Requires: python-sqlalchemy0.7 +Requires: python-migrate + +Requires: python-webob >= 1.2 +Requires: python-oslo-config +Requires: PyYAML + +%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 = %{version}-%{release} +Requires: openstack-utils + +Requires(post): chkconfig +Requires(postun): initscripts +Requires(preun): chkconfig +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 = %{version}-%{release} + +Requires: python-novaclient +Requires: python-keystoneclient +Requires: libvirt-python + +%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 = %{version}-%{release} + +Requires: python-novaclient +Requires: python-keystoneclient +Requires: python-glanceclient +Requires: python-swiftclient + +%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 agent +Group: Applications/System + +Requires: %{name}-common = %{version}-%{release} + +Requires: pymongo + +%description collector +OpenStack ceilometer provides services to measure and +collect metrics from OpenStack components. + +This package contains the ceilometer collector agent. + + +%package api +Summary: OpenStack ceilometer API service +Group: Applications/System + +Requires: %{name}-common = %{version}-%{release} + +Requires: pymongo +Requires: python-flask +Requires: python-pecan +Requires: python-wsme + +%description api +OpenStack ceilometer provides services to measure and +collect metrics from OpenStack components. + +This package contains the ceilometer API service. + + +%if 0%{?with_doc} +%package doc +Summary: Documentation for OpenStack ceilometer +Group: Documentation + +# Required to build module documents +BuildRequires: python-eventlet +BuildRequires: python-sqlalchemy0.7 +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} + +%patch0001 -p1 +%patch0002 -p1 + +# Apply EL6 patch +%patch100 -p1 + +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 + +%build +%{__python} setup.py build + +%install +%{__python} 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-1.0-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 -p -D -m 640 %{SOURCE1} %{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/sources.json %{buildroot}%{_sysconfdir}/ceilometer/sources.json +install -p -D -m 640 etc/ceilometer/pipeline.yaml %{buildroot}%{_sysconfdir}/ceilometer/pipeline.yaml + +# Install initscripts for services +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 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 logrotate +install -p -D -m 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/logrotate.d/%{name} + +# Install pid directory +install -d -m 755 %{buildroot}%{_localstatedir}/run/ceilometer + +# Remove unneeded in production stuff +rm -f %{buildroot}%{_bindir}/ceilometer-debug +rm -fr %{buildroot}%{python_sitelib}/tests/ +rm -fr %{buildroot}%{python_sitelib}/run_tests.* +rm -f %{buildroot}/usr/share/doc/ceilometer/README* +rm -f %{buildroot}/%{python_sitelib}/ceilometer/api/v1/static/LICENSE.* + + +%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 +if [ $1 -eq 1 ] ; then + # Initial installation + /sbin/chkconfig --add %{name}-compute +fi + +%post collector +if [ $1 -eq 1 ] ; then + # Initial installation + /sbin/chkconfig --add %{name}-collector +fi + +%post api +if [ $1 -eq 1 ] ; then + # Initial installation + /sbin/chkconfig --add %{name}-api +fi + +%post central +if [ $1 -eq 1 ] ; then + # Initial installation + /sbin/chkconfig --add %{name}-central +fi + +%preun compute +if [ $1 -eq 0 ] ; then + for svc in compute; do + /sbin/service %{name}-${svc} stop > /dev/null 2>&1 + /sbin/chkconfig --del %{name}-${svc} + done +fi + +%preun collector +if [ $1 -eq 0 ] ; then + for svc in collector; do + /sbin/service %{name}-${svc} stop > /dev/null 2>&1 + /sbin/chkconfig --del %{name}-${svc} + done +fi + +%preun api +if [ $1 -eq 0 ] ; then + for svc in api; do + /sbin/service %{name}-${svc} stop > /dev/null 2>&1 + /sbin/chkconfig --del %{name}-${svc} + done +fi + +%preun central +if [ $1 -eq 0 ] ; then + for svc in central; do + /sbin/service %{name}-${svc} stop > /dev/null 2>&1 + /sbin/chkconfig --del %{name}-${svc} + done +fi + +%postun compute +if [ $1 -ge 1 ] ; then + # Package upgrade, not uninstall + for svc in compute; do + /sbin/service %{name}-${svc} condrestart > /dev/null 2>&1 || : + done +fi + +%postun collector +if [ $1 -ge 1 ] ; then + # Package upgrade, not uninstall + for svc in collector; do + /sbin/service %{name}-${svc} condrestart > /dev/null 2>&1 || : + done +fi + +%postun api +if [ $1 -ge 1 ] ; then + # Package upgrade, not uninstall + for svc in api; do + /sbin/service %{name}-${svc} condrestart > /dev/null 2>&1 || : + done +fi + +%postun central +if [ $1 -ge 1 ] ; then + # Package upgrade, not uninstall + for svc in central; do + /sbin/service %{name}-${svc} condrestart > /dev/null 2>&1 || : + done +fi + + +%files common +%doc LICENSE +%dir %{_sysconfdir}/ceilometer +%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/sources.json +%config(noreplace) %attr(-, root, ceilometer) %{_sysconfdir}/ceilometer/pipeline.yaml +%config(noreplace) %{_sysconfdir}/logrotate.d/%{name} + +%dir %attr(0755, ceilometer, root) %{_localstatedir}/log/ceilometer +%dir %attr(0755, ceilometer, root) %{_localstatedir}/run/ceilometer + +%{_bindir}/ceilometer-* + +%defattr(-, ceilometer, ceilometer, -) +%dir %{_sharedstatedir}/ceilometer +%dir %{_sharedstatedir}/ceilometer/tmp + + +%files -n python-ceilometer +%{python_sitelib}/ceilometer +%{python_sitelib}/ceilometer-%{version}*.egg-info + + +%if 0%{?with_doc} +%files doc +%doc doc/build/html +%endif + + +%files compute +%{_bindir}/ceilometer-agent-compute +%{_initrddir}/%{name}-compute +%{_datarootdir}/ceilometer/%{name}-compute.upstart + + +%files collector +%{_bindir}/ceilometer-collector +%{_initrddir}/%{name}-collector +%{_datarootdir}/ceilometer/%{name}-collector.upstart + + +%files api +%doc ceilometer/api/v1/static/LICENSE.* +%{_bindir}/ceilometer-api +%{_initrddir}/%{name}-api +%{_datarootdir}/ceilometer/%{name}-api.upstart + + +%files central +%{_bindir}/ceilometer-agent-central +%{_initrddir}/%{name}-central +%{_datarootdir}/ceilometer/%{name}-central.upstart + + +%changelog +* Fri Jun 21 2013 Pádraig Brady - 2013.1.2-2 +- Avoid qpid exchange leaks + +* Thu Jun 6 2013 Pádraig Brady - 2013.1.2-1 +- Update to stable/grizzly release 2013.1.2 + +* Thu Jun 6 2013 Pádraig Brady - 2013.1-3 +- Fix uninstall for openstack-ceilometer-central + +* 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