From: iberezovskiy Date: Wed, 13 May 2015 14:23:15 +0000 (+0300) Subject: Build ceilometer 2015.1.0 (stable/kilo) X-Git-Tag: mos-9.0~17 X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=9ed9a8077046102d4b1ac5edc630b266fe7063d8;p=openstack-build%2Fceilometer-build.git Build ceilometer 2015.1.0 (stable/kilo) * Requirements was updated according to: https://github.com/openstack/ceilometer/blob/stable/kilo/requirements.txt https://github.com/openstack/requirements/blob/stable/kilo/global-requirements.txt * Add support for new ceilometer-polling package * Rewrite runtests.sh script Change-Id: Id3702cf87aef9520ba343f440f8e0382b510a91c --- diff --git a/debian/README.Debian b/debian/README.Debian deleted file mode 100644 index ca0ec7d..0000000 --- a/debian/README.Debian +++ /dev/null @@ -1,2 +0,0 @@ -In order to configure both the agents and collector you have to put notification_topics 'notifications,glance_notifications' -in your /etc/nova/nova.conf. diff --git a/debian/changelog b/debian/changelog deleted file mode 100644 index 75dcdc2..0000000 --- a/debian/changelog +++ /dev/null @@ -1,496 +0,0 @@ -ceilometer (2015.1~b1-0ubuntu3) vivid; urgency=medium - - * Systemd enablement: - - d/*.service: Dropped in favor of template approach. - - d/control: Add dh-systemd and openstack-pkg-tools to BD's. - - d/rules: Enable use of pkgos, tidyup generated init files. - - d/*.init.in: Cherry pick and adapt pkgos template configurations from - Debian ceilometer package (thanks Thomas). - - d/*.upstart: Drop in preference to generated files. - * d/control,compat: Bump debhelper compat level to 9. - - -- Corey Bryant Thu, 08 Jan 2015 14:19:46 -0500 - -ceilometer (2015.1~b1-0ubuntu2) vivid; urgency=medium - - * Systemd integration: - - add the 6 systemd debian/*.service corresponding to the upstart jobs - - debian/control: add dh-systemd build-dep - - debian/rules: enables systemd helper - * debian/control: - - fix Vcs-Bzr to point to kilo - - -- Didier Roche Fri, 09 Jan 2015 13:22:50 +0100 - -ceilometer (2015.1~b1-0ubuntu1) vivid; urgency=medium - - [ Chuck Short ] - * Open up for vivid. - * debian/control: Update bzr branch. - * debian/control: Add python-oslo.conccurency, python-retrying, and - python-oslo.midddleware as a build dependency. - * debian/patches/fix-requirements.patch: Dropped no longer needed. - * debian/patches/skip-db-tests.patch: Refreshed - * debian/rules: Use oslo-config-generator to generate configuration - files. - * debian/control, debian/ceilometer-polling.upstart, - debian/ceilometer-polling.install, debian/ceilometer-polling.postrm: - Add polling service. - - [ Corey Bryant ] - * New upstream release. - - d/control: Align requirements with upstream. - - d/watch: Update uversionmangle for kilo beta naming. - * d/control: Bumped Standards-Version to 3.9.6. - - -- Corey Bryant Fri, 19 Dec 2014 07:54:44 -0500 - -ceilometer (2014.2-0ubuntu1) utopic; urgency=medium - - * New upstream release. - - -- Chuck Short Thu, 16 Oct 2014 14:30:18 -0400 - -ceilometer (2014.2~rc3-0ubuntu1) utopic; urgency=medium - - [ Corey Bryant ] - * New upstream release candidate. - - -- Chuck Short Tue, 14 Oct 2014 12:57:54 -0400 - -ceilometer (2014.2~rc2-0ubuntu1) utopic; urgency=medium - - [ Corey Bryant ] - * New upstream release candidate (LP: #1377218): - - d/watch: Use tarballs.openstack.org, limit scope to versions - starting with numbers. - - d/control: Align version requirements with rc1. - - d/ceilometer-agent-ipmi.*: Add support for IPMI agent. - - d/ceilometer-common.install: Add support for ceilometer-rootwrap. - - d/ceilometer-agent-notification.postrm: Add missing postrm file. - - d/ceilometer-agent-central.upstart: Fix description. - - d/ceilometer-collector.upstart: Fix description. - - d/ceilometer-api.upstart: Fix description. - - d/tests/control: Add ceilometer-agent-ipmi to test. - - d/tests/test-daemons: Add ceilometer-agent-ipmi to test. - - d/ceilometer.conf.sample: Removed. Use generated config file. - - d/rules: Copy sample config file from etc/ rather than debian/. - - d/p/series: Add missing patches. - - d/p/skip-ubuntu-tests.patch: Rebased. - - d/p/fix-requirements.patch: Drop ordereddict and discover. - - d/p/fix-requirements.patch: Align with Ubuntu. - - d/rules: Generate sample ceilometer.conf and patch with log and - db connection defaults before before copying. - - d/p/default-*.patch: Dropped as unable to patch config file - pre-generation. - - [ James Page ] - * d/p/skip-ubuntu-tests.patch,skip-db-tests.patch: Rework unit test - patches to skip db2 and mongodb tests as not in Ubuntu main. - * d/control: Fixup accross->across typo. - * d/ceilometer-agent-ipmi.install: Install rootwrap filters for - ipmitool usage. - * d/control: Add dependency on ipmitool for ceilometer-agent-ipmi. - * d/ceilometer-common.logrotate: Add single common logrotate configuration, - inline with Debian (thanks Thomas) (LP: #1373617). - - -- James Page Thu, 09 Oct 2014 17:48:38 +0100 - -ceilometer (2014.2~b3-0ubuntu2) utopic; urgency=medium - - * d/control: Tidy version requirements to align to b3, wrap-and-sort. - * d/control: Bump Standards-Version: 3.9.5, no changes. - * d/tests/*: Rename DEP-8 tests to comply with naming standards. - * d/*: wrap-and-sort. - - -- James Page Thu, 18 Sep 2014 11:35:49 +0100 - -ceilometer (2014.2~b3-0ubuntu1) utopic; urgency=medium - - [ Chuck Short ] - * New upstream release. - * debian/control: - - Dropped python-swift, python-nova, python-flask, python-msqldb, - python-simplejson, and python-kombu - - Added python-oslotest, python-oslo.utils, python-oslo.nessaging, - python-keystonemiddleware, python-tz, python-neutronclient, - python-posix-ipc, python-oslo.db, and python-hacking - - Bumped dependens on python-alembic, python-happybase, python-iso8601, - python-keystoneclient, python-novaclient, python-oslo.config, - python-swiftclient, python-pbr, python-pecan, python-stevedore, - python-six, python-testools - - Added versioned dependencies for python-croniter, python-httplib2, - python-jsonpath-rw, python-migrate, python-mock, python-mox, - python-msgpack, python-oslo.vmware, - - Renamed python-oslo.sphinx to python-oslosphinx. - * debian/patches/fix-requirements.patch: Dropped no longer needed. - * debian/rules: Temporarily disable tests. - * debian/pydist-overrides: Add pysnmp - * debian/ceilometer.conf.sample: Add sample configuration file - - [ James Page ] - * debian/ceilometer-common.install: Install missing api_paste.ini to - /etc/ceilometer. - - -- Chuck Short Mon, 15 Sep 2014 10:02:14 -0400 - -ceilometer (2014.2~b2-0ubuntu1) utopic; urgency=medium - - [ Chuck Short ] - * New upstream release. - * debian/rules: Re-enable tests. - * debian/paches/fix-requirements.patch: Refreshed - * debian/control: Add python-oslo.vmware - * debian/control: Add python-pysnmp4. - * debian/patches/skip-ubunu-tests.patch: Skip tests that are failing - in the buildds. - * debian/rules: Pipe tests through subunit. - - [ Gauvain Pocentek ] - * debian/patches/default-log-dir.patch: define a default log directory to - actually get logging to work - - -- Chuck Short Thu, 24 Jul 2014 14:41:58 -0400 - -ceilometer (2014.2~b1-0ubuntu2) utopic; urgency=medium - - * SECURITY UPDATE: X_AUTH_TOKEN disclosure - - debian/patches/CVE-2014-4615.patch: filter out token in - ceilometer/openstack/common/middleware/notifier.py. - - CVE-2014-4615 - - -- Marc Deslauriers Wed, 09 Jul 2014 14:48:47 -0400 - -ceilometer (2014.2~b1-0ubuntu1) trusty; urgency=medium - - * New upstream release. - * debian/control: Open up juno release - * debian/patches/fix-requirements.patch: Refreshed. - * debian/rules: Patch the ceilometer.conf.sample directly since - the configuration files are generated by a tool. - * debian/ceilometer-common.install: Drop sources.json. - - -- Chuck Short Fri, 13 Jun 2014 13:20:35 -0400 - -ceilometer (2014.1-0ubuntu1) trusty; urgency=medium - - * New upstream release (LP: #1299055). - - -- Corey Bryant Wed, 16 Apr 2014 13:04:53 -0400 - -ceilometer (2014.1~rc3-0ubuntu1) trusty; urgency=medium - - * New upstream release candidate (LP: #1299055). - - -- Chuck Short Tue, 15 Apr 2014 20:29:38 -0400 - -ceilometer (2014.1~rc2-0ubuntu1) trusty; urgency=medium - - [ James Page ] - * d/ceilometer-common.postinst: Only run db sync process if default sqlite - connection is configured in /etc/ceilometer/ceilometer.conf (LP: #1182964). - - [ Chuck Short ] - * New upstream release (LP: #1299055). - - -- Chuck Short Tue, 08 Apr 2014 15:41:50 -0400 - -ceilometer (2014.1~rc1-0ubuntu1) trusty; urgency=medium - - * New upstream release. - - -- Corey Bryant Mon, 31 Mar 2014 11:50:09 -0400 - -ceilometer (2014.1~b3-0ubuntu3) trusty; urgency=medium - - * debian/patches/fix-requirements.patch: Explicity disable snmp. - - -- Chuck Short Thu, 20 Mar 2014 13:12:54 -0400 - -ceilometer (2014.1~b3-0ubuntu2) trusty; urgency=medium - - * d/p/default-dbconnection-sqlite.patch: Fix default sqlite connection URL. - * d/control: Fixup typo in notification agent description (LP: #1267127). - - -- James Page Thu, 13 Mar 2014 16:51:52 +0000 - -ceilometer (2014.1~b3-0ubuntu1) trusty; urgency=medium - - * New upstream release. - * debian/patches/debian/patches/default-dbconnection-sqlite.patch: Refreshed. - * debian/patches/fix-setup-requirements.patch: Dropped no longer needed. - * debian/patches/skip-database-tests.patch: Dropped no longer needed. - * debian/patches/revert-keystone-compat.patch: Dropped no longer needed. - * debian/control: - - Bump python-stevedore to 0.13. - - Add python-croniter as a build dependency. - - Suggest python-pysnmp4. - * debian/cielometer-common.install: Add ceilometer-sample - - -- Chuck Short Thu, 06 Mar 2014 14:44:28 -0500 - -ceilometer (2014.1~b2-0ubuntu1) trusty; urgency=medium - - [ James Page ] - * d/control: Add python-jsonpath-rw to BD's. - * d/p/fix-setup-requirements.patch: Bump WebOb to support < 1.4. - (LP: #1261101) - - [ Chuck Short ] - * New upstream version. - * debian/control, debian/ceilometer-common.install: Split out - ceilometer-alarm-evaluator and ceilometer-alarm-notifier into their - own packages. (LP: #1250002) - * debian/ceilometer-agent-central.logrotate, - debian/ceilometer-agent-compute.logrotate, - debian/ceilometer-api.logrotate, - debian/ceilometer-collector.logrotate: Add logrotate files, - thanks to Ahmed Rahal. (LP: #1224223) - * Fix typos in upstart files. - - -- Chuck Short Thu, 23 Jan 2014 15:08:11 -0500 - -ceilometer (2014.1~b1-0ubuntu1) trusty; urgency=low - - [ Chuck Short ] - * New upstream release. - * debian/control: - - Open icehouse release. - - Renamed msgpack-python to python-msgpack. - - Bump build dependency version for python-ceilometerclient, - python-novaclient, python-keystoneclient, python-six, - python-wsme. - * debian/patches/fix-setup-requirements.patch: Refreshed. - * debian/patches/skip-database-tests.patch: Refreshed. - * debian/rules: Temporarily disable testsuite. - - [ Yolanda Robla ] - * debian/patches/fix-setup-requirements.patch: Refreshed. - * debian/patches/default-dbconnection-sqlite.patch: Refreshed - * debian/ceilometer-collector.install: Removed usr/bin/ceilometer-collector-udp - * Added ceilometer-agent-notification package: - - debian/control: added ceilometer-agent-notification package - - debian/ceilometer-agent-notification.*: added install, upstart - - debian/tests: added ceilometer-agent-notification to tests - * debian/control: updated build-depends and depends versions - - [ James Page ] - * debian/control: Add missing BD on python-mysqldb. - - -- Chuck Short Thu, 05 Dec 2013 11:59:04 -0500 - -ceilometer (2013.2-0ubuntu1) saucy; urgency=low - - * New upstream release (LP: #1236462). - - -- Chuck Short Thu, 17 Oct 2013 09:38:31 -0400 - -ceilometer (2013.2~rc2-0ubuntu1) saucy; urgency=low - - * New upstream release candidate (LP: #1239156): - - d/p/revert-keystone-compat.patch: Revert keystoneclient 0.4.0 compat - fix as this causes test failures against 0.3.4. - * d/control: Drop a3 from versioned dependency on python-oslo.config. - - -- James Page Mon, 14 Oct 2013 10:30:03 +0100 - -ceilometer (2013.2~rc1-0ubuntu1) saucy; urgency=low - - * debian/patches/fix-setup-requirements.patch: Dropped no longer - needed. - * debian/patches/skip-database.patch: Refreshed - * debian/control: - - Add versioned dependency for python-pbr. - - Bump version dependency for python-webob. - - Add versioned dependency for alembic. - - Bump versioned dependency for python-sqlalchemy. - - Add versioned dependency for python-pymongo. - - Add versioned dependency for python-eventlet. - - Dropped python-extras dependency. - - Bump versioned dependency for python-flask. - - Bump versioned dependency for python-stevedore. - - Add versioned dependency for python-glanceclient. - - Bump versioned dependency for python-novaclient. - - Bump versioned dependency for python-keystoneclient. - - Bump versioned dependency for python-ceilometerclient. - - Add versioned dependency for python-lxml. - - Bump versioned dependency for python-wsme. - - Dropped python-netifaces dependency. - - Added python-httplib2 build dependency. - - Bump versioned dependency for python-fixtures. - - Bump versioned dependency for testrepository. - - Added versioned dependency for python-testtools. - - Added versioned dependency for python-swiftclient. - - Dropped python-cinderclient dependency. - - Dropped python-lockfile dependency. - - Dropped python-setuptoools-git dependency. - - Dropped python-unittest2 dependency. - - Dropped python-d2to1 dependency. - - Added versioned dependency for python-testtools. - - Added binary dependency for python-netaddr. - - Add python-six as a dependency. - * debian/patches/fix-setup-requirements.patch: Bump sqlachemy version. - * debian/ceilometer-common.install: - - Dropped ceilometer-alarm-singleton, no longer exists. - - Added usr/bin/ceilometer-alarm-evaluator. - - -- Chuck Short Thu, 03 Oct 2013 08:40:40 -0400 - -ceilometer (2013.2~b3-0ubuntu1) saucy; urgency=low - - [ Chuck Short ] - * New upstream release. - * debian/patches/fix-setup-requirements.patch: Refreshed - * debian/patches/skip-database.patch: Refreshed - - [ Yolanda Robla ] - * debian/control,debian/tests: Add basic autopkgtests. - - [ Adam Gandelman ] - * debian/patches/default-dbconnection-sqlite.patch: Set 'connection' flag - in [database] section, referencing 'sqlite_db' (LP: #1221956). - * debian/patches/skip-database-tests.patch: Also patch out db2 and hbase - scenarios in v2 test_statistics_scenarios.py. - * debian/rules: Clean python-pbr egg if it exists, set PYTHONPATH to build - dir when running tests. - - -- Chuck Short Sat, 07 Sep 2013 15:58:58 -0400 - -ceilometer (2013.2~b2-0ubuntu4) saucy; urgency=low - - * debian/patches/skip-database-tests.patch: Refreshed due to precise failures. - - -- Chuck Short Sun, 28 Jul 2013 21:58:31 -0400 - -ceilometer (2013.2~b2-0ubuntu3) saucy; urgency=low - - * debian/rules: Enable testsuite. - * debian/control: Fix up run time dependencies. - * debian/patches/fix-setup-requirements.patch: Refreshed - * debian/patches/skip-database-tests.patch: Refreshed - - -- Chuck Short Mon, 22 Jul 2013 15:17:35 -0400 - -ceilometer (2013.2~b2-0ubuntu2) saucy; urgency=low - - * debian/control: Fix sqlalchemy dependency. - - -- Chuck Short Fri, 19 Jul 2013 14:51:18 -0400 - -ceilometer (2013.2~b2-0ubuntu1) saucy; urgency=low - - [ Yolanda Robla ] - * debian/patches/default-dbconnection-sqlite.patch: updated db section - - [ Chuck Short ] - * New upstream version. - * debian/patches/default-dbconnection-sqlite.patch: Refreshed. - * debian/control: Bump requirements for stevedore to 0.9. - * debian/control: Add python-simplejson - * debian/control: Drop python-keystoneclient hardcoded version. - * debian/control: Add python-testscenarios as a build depends. - * debian/control: Add python-cinderclient as a build depends. - * debian/control: Add python-ceilometerclient as a build depends. - * debian/control: Add python-alembic as build depends. - * debian/control: Add python-oslo.sphinx as build-depends. - * debian/control: Update runtime depends. - * debian/control: Add python-happybase. - * debian/ceilometer-common.install: Add ceilometer-alarm-singleton, - ceilometer-alarm-notifier, and ceilometer-expirer. - * debian/patches/skip-database-tests.patch: Skip database tests - if the database is not installed. - - [ James Page ] - * d/control: Update VCS fields for new branch locations. - - -- Chuck Short Fri, 19 Jul 2013 10:04:36 -0400 - -ceilometer (2013.2~b1-0ubuntu1) saucy; urgency=low - - * New upstream release. - * debian/rules: Add fail-missing if binaries are missing - from the packages. - * debian/control: Add python-happybase as build-dependencies. - * debian/control: Add python-pbr and python-d2to1 as build-dependencies - * debian/control: Add python-fixtures as build-dependencies. - * debian/control: Add python-nova as build-dependencies. - * debian/control: Add python-testtools - * debian/control: Add msgpack-python. - * debian/patches/requests-dep.patch: Dropped no longer needed. - * debian/patches/remove-hbase-support.patch: Dropped no longer neded. - * debian/patches/default-dbconnection-sqlite.patch: Refreshed. - * debian/rules: Use testr instead of nosetests to run tests. - * debian/ceilometer-collector.install: Added usr/bin/ceilometer-collector-udp. - - -- Chuck Short Fri, 31 May 2013 10:29:16 -0500 - -ceilometer (2013.1-0ubuntu1) raring; urgency=low - - * New upstream release. - - -- Chuck Short Fri, 05 Apr 2013 14:34:37 -0500 - -ceilometer (2013.1~rc1-0ubuntu1) raring; urgency=low - - [ Chuck Short ] - * New upstream release. - * debian/watch: point to the right releases. - * debian/rules: Enable testsuite. - * debian/ceilometer-agent-compute.postinst: Add smarts to - configure users after install. - * debian/ceilometer-common.postinst: Configure ceilometer db. - * debian/ceilometer-common.install: Install configuration files. - * debian/*.upstart: Update and use start-stop-daemon. - - [ James Page ] - * Added watch file. - * d/rules: Fixup test suite execution as much as possible: - - Set PYTHONPATH to CURDIR during execution. - - Provide HOME directory for keystone tests. - - Override clean to tidy up after execution. - * d/control: Tidied BD's: - - Drop python-ming (not the right ming). - - python-oslo-config -> python-oslo.config. - - Dropped misc other surplus/duplicate dependencies. - - Wrapped and sorted. - * d/p/request-dep.patch: Remove upper bound on python-requests inline with - the rest of OpenStack. - * d/p/remove-hbase-support.patch: Remove happybase dependency. - * d/control: Bumped Standards-Version, no changes. - - [ Yolanda Robla ] - * d/rules: Copy ceilometer.conf.sample to ceilometer.conf. - * d/ceilometer-common.install: Install ceilometer.conf and ceilometer-dbsync. - * d/ceilometer-common.postinst: fixing user/group creation. - * d/*.upstart: Fix upstart jobs. - * d/pydist-overrides: Correct pymongo and wsme package names. - * d/control: modified mongodb recommends to suggests (LP: #1131627). - * d/files: copying pipeline.yaml. - * d/control: fixed typo (LP: #1140309). - * d/patches/default-dbconnection-sqlite.patch: default db to sqlite - - -- Chuck Short Tue, 26 Mar 2013 11:23:03 -0500 - -ceilometer (0.1-0ubuntu2) raring; urgency=low - - * Fix typo in debian/control (ceioleter -> ceilometer) (LP: #1140309) - - -- Hans Joachim Desserud Sun, 03 Mar 2013 20:08:39 +0100 - -ceilometer (0.1-0ubuntu1) quantal; urgency=low - - * New upstream release. - - -- Chuck Short Fri, 12 Oct 2012 09:34:05 -0500 - -ceilometer (0~20121002-0ubuntu2) quantal; urgency=low - - * Fix two typos in dependencies in debian/control (LP: #1063244) - - -- Adam Conrad Sun, 07 Oct 2012 07:49:55 -0600 - -ceilometer (0~20121002-0ubuntu1) quantal; urgency=low - - * Initial release. - - -- Chuck Short Wed, 03 Oct 2012 13:00:29 -0500 diff --git a/debian/patches/default-config.patch b/debian/patches/default-config.patch deleted file mode 100644 index a64ff21..0000000 --- a/debian/patches/default-config.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- etc/ceilometer/ceilometer.conf.sample 2014-10-09 17:27:51.497651569 +0100 -+++ etc/ceilometer/ceilometer.conf.sample.ubuntu 2014-10-09 17:27:31.565650862 +0100 -@@ -472,6 +472,7 @@ - # paths. (string value) - # Deprecated group/name - [DEFAULT]/logdir - #log_dir= -+log_dir=/var/log/ceilometer - - # Use syslog for logging. Existing syslog format is DEPRECATED - # during I, and will change in J to honor RFC5424. (boolean -@@ -714,6 +715,9 @@ - # (if unset, connection is used) (string value) - #alarm_connection= - -+# Provide backwards compatible default for both alarm and metering -+connection=sqlite:////var/lib/ceilometer/ceilometer.sqlite -+ - - [dispatcher_file] - diff --git a/debian/patches/series b/debian/patches/series deleted file mode 100644 index 44cee38..0000000 --- a/debian/patches/series +++ /dev/null @@ -1 +0,0 @@ -skip-db-tests.patch diff --git a/debian/pydist-overrides b/debian/pydist-overrides deleted file mode 100644 index 4cd03a7..0000000 --- a/debian/pydist-overrides +++ /dev/null @@ -1,3 +0,0 @@ -pymongo python-pymongo -happybase -pysnmp diff --git a/debian/watch b/debian/watch deleted file mode 100755 index 75204bb..0000000 --- a/debian/watch +++ /dev/null @@ -1,3 +0,0 @@ -version=3 -opts="uversionmangle=s/\.([a-zA-Z])/~$1/;s/%7E/~/;s/\.0b/~b/" \ - http://tarballs.openstack.org/ceilometer ceilometer-(\d.*)\.tar\.gz diff --git a/rpm/SOURCES/openstack-ceilometer-polling.init b/rpm/SOURCES/openstack-ceilometer-polling.init new file mode 100644 index 0000000..c4caa85 --- /dev/null +++ b/rpm/SOURCES/openstack-ceilometer-polling.init @@ -0,0 +1,103 @@ +#!/bin/sh +# +# openstack-ceilometer-polling OpenStack ceilometer polling agent +# +# chkconfig: - 98 02 +# description: OpenStack measurement and collection service polling 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 polling agent +# Description: OpenStack measurement and collection service polling agent +### END INIT INFO + +. /etc/rc.d/init.d/functions + +suffix=polling +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 --logfile $logfile ${OPTIONS} &>/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-polling.service b/rpm/SOURCES/openstack-ceilometer-polling.service new file mode 100644 index 0000000..d51ef57 --- /dev/null +++ b/rpm/SOURCES/openstack-ceilometer-polling.service @@ -0,0 +1,13 @@ +[Unit] +Description=OpenStack ceilometer polling agent +After=syslog.target network.target + +[Service] +Type=simple +User=ceilometer +EnvironmentFile=/etc/sysconfig/openstack-ceilometer-polling +ExecStart=/usr/bin/ceilometer-polling --logfile /var/log/ceilometer/polling.log $OPTIONS + +[Install] +WantedBy=multi-user.target + diff --git a/rpm/SOURCES/openstack-ceilometer-polling.upstart b/rpm/SOURCES/openstack-ceilometer-polling.upstart new file mode 100644 index 0000000..0f79f69 --- /dev/null +++ b/rpm/SOURCES/openstack-ceilometer-polling.upstart @@ -0,0 +1,10 @@ +description "OpenStack Ceilometer polling agent" + +start on stopped rc RUNLEVEL=[2345] +stop on runlevel [S016] + +respawn + +[ -e /etc/sysconfig/openstack-ceilometer-polling ] && . /etc/sysconfig/openstack-ceilometer-polling + +exec su -s /bin/sh -c "exec /usr/bin/ceilometer-polling --logfile /var/log/ceilometer/polling.log ${OPTIONS}" ceilometer diff --git a/rpm/SPECS/openstack-ceilometer.spec b/rpm/SPECS/openstack-ceilometer.spec index 6b77df5..89f23cf 100644 --- a/rpm/SPECS/openstack-ceilometer.spec +++ b/rpm/SPECS/openstack-ceilometer.spec @@ -3,7 +3,7 @@ %global pypi_name ceilometer Name: openstack-ceilometer -Version: 2015.1.0b1 +Version: 2015.1.0 Release: 2%{?dist} Summary: OpenStack measurement collection service @@ -32,6 +32,8 @@ Source16: %{name}-notification.init Source160: %{name}-notification.upstart Source17: %{name}-ipmi.init Source170: %{name}-ipmi.upstart +Source18: %{name}-polling.init +Source180: %{name}-polling.upstart %else Source10: %{name}-api.service Source11: %{name}-collector.service @@ -41,6 +43,7 @@ Source14: %{name}-alarm-notifier.service Source15: %{name}-alarm-evaluator.service Source16: %{name}-notification.service Source17: %{name}-ipmi.service +Source18: %{name}-polling.service %endif # @@ -51,20 +54,20 @@ BuildArch: noarch BuildRequires: intltool BuildRequires: python-sphinx10 BuildRequires: python-setuptools -BuildRequires: python-pbr +BuildRequires: python-pbr >= 0.10 BuildRequires: python-d2to1 BuildRequires: python2-devel BuildRequires: openstack-utils # These are required to generate ceilometer configuration file BuildRequires: python-tox -BuildRequires: python-oslo-db -BuildRequires: python-oslo-messaging -BuildRequires: python-keystonemiddleware +BuildRequires: python-oslo-db >= 1.7.0 +BuildRequires: python-oslo-messaging >= 1.8.0 +BuildRequires: python-keystonemiddleware >= 1.5.0 # These are required to build due to the requirements check added -BuildRequires: python-sqlalchemy -BuildRequires: python-webob +BuildRequires: python-sqlalchemy >= 0.9.7 +BuildRequires: python-webob >= 1.2.3 %if ! (0%{?rhel} && 0%{?rhel} <= 6) BuildRequires: systemd-units @@ -79,67 +82,53 @@ collect metrics from OpenStack components. Summary: OpenStack ceilometer python libraries Group: Applications/System -Requires: python-retrying >= 1.2.2, python-retrying < 1.3.0, python-retrying > 1.3.0 -Requires: python-qpid - -Requires: python-babel -Requires: python-eventlet >= 0.15.2 +Requires: python-alembic >= 0.7.2 +Requires: python-ceilometerclient >= 1.0.13 +Requires: python-croniter >= 0.3.4 +Requires: python-eventlet >= 0.16.1 +Requires: python-flask >= 0.10 +Requires: python-glanceclient >= 1:0.15.0 Requires: python-iso8601 >= 0.1.9 +Requires: python-jsonpath-rw >= 1.2.0 +Requires: python-jsonschema >= 2.0.0 +Requires: python-kafka >= 0.9.2 +Requires: python-keystoneclient >= 1.1.0 +Requires: python-keystonemiddleware >= 1.5.0 Requires: python-lxml >= 2.3 -Requires: python-anyjson >= 0.3.3 -Requires: python-jsonpath-rw >= 1.2.0, python-jsonpath-rw < 2.0 -Requires: python-stevedore >= 1.1.0 +Requires: python-migrate >= 0.9.5 Requires: python-msgpack >= 0.4.0 -Requires: python-posix_ipc -Requires: python-six >= 1.7.0 -Requires: PyYAML >= 3.1.0 -Requires: python-sqlalchemy >= 0.8.4, python-sqlalchemy <= 0.8.99, python-sqlalchemy >= 0.9.7, python-sqlalchemy <= 0.9.99 - -Requires: python-argparse -Requires: python-happybase >= 0.5, python-happybase < 0.7, python-happybase > 0.7 -Requires: python-jsonschema >= 2.0.0, python-jsonschema < 3.0.0 -Requires: python-lockfile >= 0.8 -Requires: python-netaddr >= 0.7.12 -Requires: python-pbr >= 0.6, python-pbr < 0.7, python-pbr > 0.7, python-pbr < 1.0 -Requires: python-requests >= 2.2.0, python-requests < 2.4.0, python-requests > 2.4.0 -Requires: python-tooz >= 0.3 - -Requires: python-alembic >= 0.6.4 -Requires: python-migrate >= 0.9.1, python-migrate < 0.9.2, python-migrate > 0.9.2 - -Requires: python-webob >= 1.2.3 - -Requires: python-oslo-concurrency >= 0.4.0 -Requires: python-oslo-config >= 1:1.4.0 -Requires: python-oslo-db >= 1.0.0 -Requires: python-oslo-rootwrap >= 1.3.0 -Requires: python-oslo-vmware >= 0.6.0 -Requires: python-oslo-utils >= 1.0.0 -Requires: python-oslo-messaging >= 1.4.0 -Requires: python-oslo-serialization >= 1.0.0 -Requires: python-oslo-middleware >= 0.1.0 - -Requires: pysnmp > 4.2.1, pysnmp < 5.0.0 -Requires: pytz -Requires: python-croniter >= 0.3.4 - -Requires: python-keystonemiddleware >= 1.0.0 +Requires: python-neutronclient >= 2.3.11 +Requires: python-novaclient >= 1:2.22.0 +Requires: python-oslo-concurrency >= 1.8.0 +Requires: python-oslo-config >= 1:1.9.3 +Requires: python-oslo-context >= 0.2.0 +Requires: python-oslo-db >= 1.7.0 +Requires: python-oslo-i18n >= 1.5.0 +Requires: python-oslo-messaging >= 1.8.0 +Requires: python-oslo-middleware >= 1.0.0 +Requires: python-oslo-policy >= 0.3.1 +Requires: python-oslo-rootwrap >= 1.6.0 +Requires: python-oslo-serialization >= 1.4.0 +Requires: python-oslo.utils >= 1.4.0 Requires: python-paste-deploy >= 1.5.0 - -# These were only added as global dependencies -# at the end of the Icehouse cycle with the change -# to cli.py referenced from in http://pad.lv/1317210 -Requires: python-pymongo -Requires: python-flask -Requires: python-pecan >= 0.5.0 -Requires: python-wsme >= 0.6 -Requires: python-neutronclient >= 2.3.6 -Requires: python-novaclient >= 2.18.0 -Requires: python-keystoneclient >= 0.11.1 -Requires: python-glanceclient >= 0.14.0 +Requires: python-pbr >= 0.10 +Requires: python-pecan >= 0.8.0 +Requires: python-posix_ipc +Requires: python-pymongo >= 2.6.3 +Requires: python-pysnmp >= 4.2.1 +Requires: pytz >= 2013.6 +Requires: python-qpid +Requires: python-requests >= 2.2.0 +Requires: python-retrying >= 1.2.3 +Requires: python-six >= 1.9.0 +Requires: python-sqlalchemy >= 0.9.7 +Requires: python-stevedore >= 1.3.0 Requires: python-swiftclient >= 2.2.0 -Requires: python-ceilometerclient >= 1.0.6 -Requires: libvirt-python +Requires: python-tooz >= 0.13.1 +Requires: python-werkzeug >= 0.7 +Requires: python-webob >= 1.2.3 +Requires: python-wsme >= 0.8 +Requires: PyYAML >= 3.1.0 %description -n python-ceilometer OpenStack ceilometer provides services to measure and @@ -180,9 +169,9 @@ Group: Applications/System Requires: %{name}-common = %{version}-%{release} -Requires: python-novaclient >= 2.18.0 -Requires: python-keystoneclient >= 0.11.1 Requires: libvirt-python +Requires: python-keystoneclient >= 1.1.0 +Requires: python-novaclient >= 2.22.0 %description compute OpenStack ceilometer provides services to measure and @@ -198,9 +187,9 @@ Group: Applications/System Requires: %{name}-common = %{version}-%{release} -Requires: python-novaclient >= 2.18.0 -Requires: python-keystoneclient >= 0.11.1 -Requires: python-glanceclient >= 0.14.0 +Requires: python-glanceclient >= 0.15.0 +Requires: python-keystoneclient >= 1.1.0 +Requires: python-novaclient >= 2.22.0 Requires: python-swiftclient >= 2.2.0 %description central @@ -218,9 +207,8 @@ Requires: %{name}-common = %{version}-%{release} # For compat with older provisioning tools. # Remove when all reference the notification package explicitly -Requires: %{name}-notification - -Requires: python-pymongo +Requires: %{name}-notification = %{version}-%{release} +Requires: python-pymongo >= 2.6.3 %description collector OpenStack ceilometer provides services to measure and @@ -251,13 +239,13 @@ Group: Applications/System Requires: %{name}-common = %{version}-%{release} -Requires: python-keystonemiddleware -Requires: python-oslo-db -Requires: python-pymongo -Requires: python-flask +Requires: python-flask >= 0.10 +Requires: python-keystonemiddleware >= 1.5.0 +Requires: python-oslo-db >= 1.7.0 +Requires: python-paste-deploy >= 1.5.0 +Requires: python-pecan >= 0.8.0 +Requires: python-pymongo >= 2.6.3 Requires: python-wsme >= 0.6 -Requires: python-pecan >= 0.5.0 -Requires: python-paste-deploy %description api OpenStack ceilometer provides services to measure and @@ -271,7 +259,7 @@ Summary: OpenStack ceilometer alarm services Group: Applications/System Requires: %{name}-common = %{version}-%{release} -Requires: python-ceilometerclient >= 1.0.6 +Requires: python-ceilometerclient >= 1.0.13 %description alarm OpenStack ceilometer provides services to measure and @@ -287,12 +275,12 @@ Group: Applications/System Requires: %{name}-common = %{version}-%{release} -Requires: python-novaclient -Requires: python-keystoneclient -Requires: python-neutronclient -Requires: python-tooz -Requires: python-oslo-rootwrap Requires: ipmitool +Requires: python-keystoneclient >= 1.1.0 +Requires: python-neutronclient >= 2.3.11 +Requires: python-novaclient >= 2.22.0 +Requires: python-oslo-rootwrap >= 1.6.0 +Requires: python-tooz >= 0.13.1 %description ipmi OpenStack ceilometer provides services to measure and @@ -303,17 +291,41 @@ 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 = %{version}-%{release} + +Requires: libvirt-python +Requires: python-glanceclient >= 0.15.0 +Requires: python-keystoneclient >= 1.1.0 +Requires: python-novaclient >= 2.22.0 +Requires: python-swiftclient >= 2.2.0 + +%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-sqlalchemy0.7 -BuildRequires: python-webob +BuildRequires: python-eventlet >= 0.16.1 +BuildRequires: python-sqlalchemy >= 0.9.7 +BuildRequires: python-webob >= 1.2.3 # while not strictly required, quiets the build down when building docs. -BuildRequires: python-migrate, python-iso8601 +BuildRequires: python-migrate >= 0.9.5 +BuildRequires: python-iso8601 >= 0.1.9 %description doc OpenStack ceilometer provides services to measure and @@ -391,6 +403,7 @@ install -p -D -m 755 %{SOURCE14} %{buildroot}%{_initrddir}/%{name}-alarm-notifie 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 @@ -402,6 +415,7 @@ 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 @@ -411,6 +425,7 @@ install -p -D -m 644 %{SOURCE14} %{buildroot}%{_unitdir}/%{name}-alarm-notifier. 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 @@ -509,6 +524,16 @@ fi %systemd_post %{name}-alarm-ipmi.service %endif +%post polling +%if 0%{?rhel} && 0%{?rhel} <= 6 +if [ $1 -eq 1 ] ; then + # Initial installation + /sbin/chkconfig --add %{name}-polling +fi +%else +%systemd_post %{name}-polling.service +%endif + %preun compute %if 0%{?rhel} && 0%{?rhel} <= 6 if [ $1 -eq 0 ] ; then @@ -594,6 +619,18 @@ fi %systemd_preun %{name}-ipmi.service %endif +%preun polling +%if 0%{?rhel} && 0%{?rhel} <= 6 +if [ $1 -eq 0 ] ; then + for svc in polling; do + /sbin/service %{name}-${svc} stop > /dev/null 2>&1 + /sbin/chkconfig --del %{name}-${svc} + done +fi +%else +%systemd_preun %{name}-polling.service +%endif + %postun compute %if 0%{?rhel} && 0%{?rhel} <= 6 if [ $1 -ge 1 ] ; then @@ -679,6 +716,18 @@ fi %systemd_postun_with_restart %{name}-ipmi.service %endif +%postun polling +%if 0%{?rhel} && 0%{?rhel} <= 6 +if [ $1 -ge 1 ] ; then + # Package upgrade, not uninstall + for svc in polling; do + /sbin/service %{name}-${svc} condrestart > /dev/null 2>&1 || : + done +fi +%else +%systemd_postun_with_restart %{name}-polling.service +%endif + %files common %doc LICENSE %dir %{_sysconfdir}/ceilometer @@ -698,7 +747,6 @@ fi %{_bindir}/ceilometer-dbsync %{_bindir}/ceilometer-expirer %{_bindir}/ceilometer-send-sample -%{_bindir}/ceilometer-polling %defattr(-, ceilometer, ceilometer, -) @@ -781,6 +829,16 @@ fi %endif +%files polling +%{_bindir}/ceilometer-polling +%if 0%{?rhel} && 0%{?rhel} <= 6 +%{_initrddir}/%{name}-polling +%{_datarootdir}/ceilometer/%{name}-polling.upstart +%else +%{_unitdir}/%{name}-polling.service +%endif + + %files alarm %{_bindir}/ceilometer-alarm-notifier %{_bindir}/ceilometer-alarm-evaluator @@ -796,6 +854,10 @@ fi %changelog +* 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 @@ -889,3 +951,4 @@ fi * Tue Mar 26 2013 Pádraig Brady - 2013.1-0.5.g3 - Initial package + diff --git a/tests/runtests.sh b/tests/runtests.sh index 50dd9f6..b202f0a 100755 --- a/tests/runtests.sh +++ b/tests/runtests.sh @@ -1,262 +1,392 @@ -#!/bin/bash -x +#!/bin/bash +set -eux + +package_to_test=${1} RES=0 -package=$1 +mysql_pass="admin" +token=$(openssl rand -hex 10) +auth_string="--os-auth-url http://127.0.0.1:35357 --os-token ${token} --os-endpoint http://127.0.0.1:35357/v2.0/" +ceilometer_auth_string="--os-username ceilometer --os-password ceilometer --os-tenant-name ceilometer --os-auth-url http://127.0.0.1:35357/v2.0" +ceilometer_service= + +keystone_log_file="/var/log/keystone/keystone.log" +ceilometer_log_dir="/var/log/ceilometer" +mongodb_log="/var/log/mongodb/mongodb.log" + +if [[ `cat /etc/*-release | head -n 1 | awk '{print $1}'` =~ Ubuntu ]]; then + os="ubuntu" + packages_list="python-pip curl" + command_to_install="apt-get install -y --force-yes" + keystone_package="keystone" + keystone_service="keystone" + mysql_service="mysql" + mongodb_service="mongodb" + ceilometer_packages_and_services=( + ceilometer-agent-central + ceilometer-agent-compute + ceilometer-collector + ceilometer-agent-notification + ceilometer-polling + ceilometer-api + ceilometer-alarm-notifier + ceilometer-alarm-evaluator + ) +else + echo "Disable tests for Centos" + exit 0 + os="centos" + packages_list="python-pip curl" + command_to_install="yum install -y" + keystone_package="openstack-keystone" + keystone_service="openstack-keystone" + mysql_service="mysqld" + mongodb_service="mongod" + ceilometer_packages_and_services=( + openstack-ceilometer-central + openstack-ceilometer-compute + openstack-ceilometer-collector + openstack-ceilometer-notification + openstack-ceilometer-polling + openstack-ceilometer-api + openstack-ceilometer-alarm + ) +fi + +ceilometer_binaries=( + ceilometer-agent-central + ceilometer-agent-compute + ceilometer-collector + ceilometer-agent-notification + ceilometer-polling + ceilometer-api + ceilometer-alarm-notifier + ceilometer-alarm-evaluator + ceilometer-dbsync + ceilometer-expirer + ceilometer-rootwrap + ceilometer-send-sample +) + +config_files=( + api_paste.ini + ceilometer.conf + deprecated_pipeline.yaml + event_definitions.yaml + event_pipeline.yaml + gabbi_pipeline.yaml + pipeline.yaml + policy.json + rootwrap.conf +) + +list_commands=( + alarm-list + event-list + meter-list + resource-list + sample-list +) + +install_packages() { + ${command_to_install} $@ +} -prepare_script() { - echo '#!/usr/bin/env python -import pika -connection = pika.BlockingConnection(pika.ConnectionParameters(host="127.0.0.1")) -channel = connection.channel() -channel.queue_declare(queue="notifications.info") -test=r'"'"'{"event_type": "compute.instance.update", "_unique_id": "fake", "payload": {"ephemeral_gb": 0, "instance_id": "fake", "user_id": "fake", "root_gb": 0, "tenant_id": "fake", "memory_mb": 64, "vcpus": 1}, "priority": "INFO"}'"'"' -channel.basic_publish(exchange="nova", routing_key="notifications.info", - properties=pika.BasicProperties(priority=0, delivery_mode=2, headers="", content_encoding="utf-8", content_type="application/json"), - body=test) -print " [x] Message was sent!" -connection.close()' > $(pwd)/send.py +prepare_vm() { + install_packages ${packages_list} +} + +install_and_setup_keystone() { + install_packages ${keystone_package} + service ${keystone_service} stop + + cat > /etc/keystone/keystone.conf << EOF +[DEFAULT] +admin_token=${token} +log_file=${keystone_log_file} +rabbit_password = guest +rabbit_hosts = 127.0.0.1 +notification_driver = messaging +notification_topics = notifications +[database] +connection=mysql://keystone:keystone@localhost/keystone +[token] +provider=keystone.token.providers.uuid.Provider +EOF + [ -d "/var/log/keystone/" ] || mkdir /var/log/keystone/ + touch ${keystone_log_file} + chown -R keystone:keystone /var/log/keystone/ + chown -R keystone:keystone /etc/keystone + + keystone-manage db_sync + service ${keystone_service} restart + sleep 5 + + if [ -z "$(curl -s http://localhost:5000/ | grep '^{"versions":')" ]; then + cat ${keystone_log_file} + exit_on_error 1 "Failed to get to keystone API.\nTests failed because of keystone problem" + fi } -prepare_config() { - mkdir -p /var/log/ceilometer - echo -e "[DEFAULT] +install_and_setup_mysql() { + echo "mysql-server mysql-server/root_password select ${mysql_pass}" | debconf-set-selections + echo "mysql-server mysql-server/root_password_again select ${mysql_pass}" | debconf-set-selections + ${command_to_install} mysql-server-5.6 mysql-client-core-5.6 python-mysqldb + + service ${mysql_service} restart + sleep 5 + + if [ -z "$(service ${mysql_service} status | grep "start/running" )" ]; then + exit_on_error 1 "Mysql service has failed to start" + fi + + mysql -uroot -p${mysql_pass} -Bse "drop database if exists keystone" + mysql -uroot -p${mysql_pass} -Bse "create database keystone" + mysql -uroot -p${mysql_pass} -Bse "GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'keystone'" + mysql -uroot -p${mysql_pass} -Bse "flush privileges" +} + +install_and_setup_rabbit() { + install_packages rabbitmq-server + echo "127.0.10.1 $(hostname)" >> /etc/hosts + service rabbitmq-server restart + sleep 5 + + if [ ! -z "$(service rabbitmq-server status | grep "Error: unable to connect to node")" ]; then + cat /var/log/rabbitmq/startup_log + cat /var/log/rabbitmq/startup_err + + exit_on_error 1 "DB sync command has failures" + fi +} + +ceilometer_configuration() { + cat > /etc/ceilometer/ceilometer.conf << EOF +[DEFAULT] api_paste_config = /etc/ceilometer/api_paste.ini policy_file = /etc/ceilometer/policy.json debug = True verbose = True -log_file = /var/log/ceilometer/$package.log +log_dir = ${ceilometer_log_dir} rpc_backend = ceilometer.openstack.common.rpc.impl_kombu +auth_strategy = keystone +rabbit_password = guest +rabbit_hosts = 127.0.0.1 + +[keystone_authtoken] +auth_host = 127.0.0.1 +auth_port = 35357 +auth_protocol = http +admin_tenant_name = ceilometer +admin_user = ceilometer +admin_password = ceilometer +auth_url=http://127.0.0.1:35357/v2.0 [database] -connection=sqlite:////tmp/ceilometer" > /etc/ceilometer/ceilometer.conf +connection=mongodb://127.0.0.1/ceilometer + +[notification] +store_events = True +EOF + [ -e /etc/default/ceilometer-polling ] && rm -f /etc/default/ceilometer-polling + echo "DAEMON_ARGS=\"--polling-namespaces=central\"" > /etc/default/ceilometer-polling + + [ -d "${ceilometer_log_dir}" ] || mkdir ${ceilometer_log_dir} + chown -R ceilometer:ceilometer ${ceilometer_log_dir} + chown -R ceilometer:ceilometer /etc/ceilometer ceilometer-dbsync --config-file /etc/ceilometer/ceilometer.conf - if [ $? != "0" ]; then - RES=1 - exit $RES + if [ "$?" -ne '0' ]; then + cat ${ceilometer_log_dir}/ceilometer-dbsync.log + exit_on_error 1 "DB sync command has failures" fi - # Clean log file - rm -f /var/log/ceilometer/$package.log + + keystone ${auth_string} user-create --name ceilometer --pass ceilometer + keystone ${auth_string} tenant-create --name ceilometer + keystone ${auth_string} role-create --name=admin + keystone ${auth_string} user-role-add --user ceilometer --role admin --tenant ceilometer + ceilometer_service=$(keystone ${auth_string} service-create --name=ceilometer\ + --type=metering --description="ceilometer" | grep id | awk -F '|' '{print $3}' | tr -d ' ') + keystone ${auth_string} endpoint-create --region RegionOne --service-id=${ceilometer_service}\ + --publicurl=http://127.0.0.1:8777/ --internalurl=http://127.0.0.1:8777/ --adminurl=http://127.0.0.1:8777/ } -prepare_vm() { - if [[ `cat /etc/*-release | head -n 1 | awk '{print $1}'` =~ Ubuntu ]]; then - apt-get install rabbitmq-server screen python-pip sqlite3 -y - else - yum install screen rabbitmq-server python-pip sqlite -y +install_and_setup_mongo() { + install_packages "mongodb mongodb-clients" + cat > /etc/mongodb.conf << EOF +logappend=true +bind_ip = 127.0.0.1 +port = 27017 +dbpath=/var/lib/mongo +pidfilepath = /var/run/mongodb/mongodb.pid +journal = true +logpath = ${mongodb_log} +setParameter = logLevel=1 +EOF + [ -d "/var/log/mongo" ] || mkdir /var/log/mongo + [ -d "/var/lib/mongo" ] || mkdir /var/lib/mongo + [ -d "/var/run/mongodb" ] || mkdir /var/run/mongodb + chown -R mongodb:mongodb /var/log/mongo /var/lib/mongo /var/run/mongodb /etc/mongodb.conf + + service ${mongodb_service} restart + sleep 5 + + if [ -z "$(service ${mongodb_service} status | grep "start/running")" ]; then + cat ${mongodb_log} + exit_on_error 1 "Mongo service has failed to start" fi - service rabbitmq-server restart - for (( i = 1; i <= 5; i++ )) - { - if echo "$(service rabbitmq-server status)" | grep -q "Error: unable to connect to node"; - then - service rabbitmq-server start - if [ "$i" -eq 5 ] - then - echo "rabbitmq-server is dead" - exit 1 - fi - else - echo "$(service rabbitmq-server status)" - break + try=0 + while [ ${try} -le '5' ]; do + mongo --host 127.0.0.1 --eval "db.getSiblingDB('admin')" + if [ "$?" -ne '0' ]; then + try=$((try + 1)) + sleep 5 + else + break fi - } - - sleep 5 + done + if [ "${try}" -ge '5' ]; then + exit_on_error 1 "Mongo shell is not available. Mongo work is broken" + fi } -send_fake_notification() { +send_fake_instance_notification() { pip install pika==0.9.8 - prepare_script + echo '#!/usr/bin/env python +import pika +connection = pika.BlockingConnection(pika.ConnectionParameters(host="127.0.0.1")) +channel = connection.channel() +channel.queue_declare(queue="notifications.info") +test=r'"'"'{"event_type": "compute.instance.update", "_unique_id": "fake", "payload": {"ephemeral_gb": 0, "instance_id": "fake", "user_id": "fake", "root_gb": 0, "tenant_id": "fake", "memory_mb": 64, "vcpus": 1}, "priority": "INFO"}'"'"' +channel.basic_publish(exchange="nova", routing_key="notifications.info", + properties=pika.BasicProperties(priority=0, delivery_mode=2, headers="", content_encoding="utf-8", content_type="application/json"), + body=test) +print " [x] Message was sent!" +connection.close()' > $(pwd)/send.py python $(pwd)/send.py } -check_fake_notification() { - sqlite3 /tmp/ceilometer 'select * from meter;' - local check=$(sqlite3 /tmp/ceilometer 'select * from meter;' | grep instance) - if [ -z "$check" ]; then - echo -e "Meter 'instance' is lost" - RES=1 - echo $RES +exit_on_error() { + # $1 - responce code + # $2 - message + if [ "${1}" -ne '0' ]; then + echo -e "${2}" + RES=${1} + exit ${RES} fi } -check_pollsters() { - local test1=$(cat /var/log/ceilometer/$package.log | grep "Polling pollster $1") - local test2=$(cat /var/log/ceilometer/$package.log | grep "Polling pollster $2") - local test3=$(cat /var/log/ceilometer/$package.log | grep "Polling pollster $3") - if [ -z "$test1" -o -z "$test2" -o -z "$test3" ]; then - echo -e "Some pollsters aren't work" - RES=1 - echo $RES +found=false +for i in ${ceilometer_packages_and_services[@]}; do + if [ "${i}" == "${package_to_test}" ]; then + found=true fi -} +done -check_running() { - if [ $(ps aux | grep $1 | wc -l) -lt "2" ]; then - echo "Process $1 is not running" - RES=1 - echo $RES - fi -} +if ${found}; then + echo "Test for package ${package_to_test} will be run with ceilometer-common package" + RES=0 +fi -case $package in - ceilometer-api|openstack-ceilometer-api) - echo "Skip due to resolving oslo.middleware problem: ImportError: No module named middleware" - exit 0 - prepare_config +case ${package_to_test} in + ceilometer-common|openstack-ceilometer-common) prepare_vm + install_packages "${ceilometer_packages_and_services[@]}" + install_and_setup_rabbit + install_and_setup_mysql + install_and_setup_keystone + install_and_setup_mongo + ceilometer_configuration + + for binary in ${ceilometer_binaries[@]}; do + if [ ! -f "/usr/bin/${binary}" ]; then + exit_on_error 1 "Ceilometer binary ${binary} is missed" + fi + done + + for config in ${config_files[@]}; do + if [ ! -f "/etc/ceilometer/${config}" ]; then + exit_on_error 1 "Ceilometer configuration file ${config} is missed" + fi + done - screen -dmS ceilometer-api - sleep 2 - screen -S ceilometer-api -p 0 -X stuff 'ceilometer-api --config-file /etc/ceilometer/ceilometer.conf -' - sleep 10 - check_running ceilometer-api + for service in ${ceilometer_packages_and_services[@]}; do + service ${service} restart + sleep 5 + if [ -z "$(service ${service} status | grep "start/running")" ]; then + cat /var/log/ceilometer/${service}.log + exit_on_error 1 "Service ${service} has failed to start" + fi + done repsonce=$(curl "http://localhost:8777" | grep "Authentication required") if [ -z "$repsonce" ]; then - echo -e "Ceilometer api doesn't work. No one process is listening on 8777 port" - RES=1 + exit_on_error 1 "Ceilometer api doesn't work.\n No one process is listening on 8777 port" fi - killall -15 ceilometer-api - - cat /var/log/ceilometer/$package.log - ;; - ceilometer-collector|openstack-ceilometer-collector|ceilometer-agent-notification|openstack-ceilometer-notification) - prepare_config - prepare_vm + for Command in ${list_commands[@]}; do + ceilometer ${ceilometer_auth_string} ${Command} + if [ "$?" -ne '0' ]; then + exit_on_error 1 "Command ${Command} has failed" + fi + done - if [[ `cat /etc/*-release | head -n 1 | awk '{print $1}'` =~ Ubuntu ]]; then - apt-get install ceilometer-collector ceilometer-agent-notification -y - else - yum install openstack-ceilometer-collector openstack-ceilometer-notification -y + # Keystone notifications + if [ -z "$(ceilometer ${ceilometer_auth_string} meter-list | grep identity)" ]; then + exit_on_error 1 "Keystone notifications don't work" fi - screen -dmS ceilometer-collector - screen -dmS ceilometer-agent-notification - sleep 2 - screen -S ceilometer-collector -p 0 -X stuff 'ceilometer-collector --config-file /etc/ceilometer/ceilometer.conf --log-file /var/log/ceilometer/ceilometer-collector.log -' - screen -S ceilometer-agent-notification -p 0 -X stuff 'ceilometer-agent-notification --config-file /etc/ceilometer/ceilometer.conf --log-file /var/log/ceilometer/ceilometer-anotification.log -' - sleep 10 - check_running ceilometer-collector - check_running ceilometer-agent-notification - send_fake_notification - sleep 2 - check_fake_notification - - killall -15 ceilometer-collector ceilometer-agent-notification - - cat /var/log/ceilometer/ceilometer-collector.log - cat /var/log/ceilometer/ceilometer-anotification.log - ;; - ceilometer-alarm-notifier|ceilometer-alarm-evaluator|openstack-ceilometer-alarm) - if [[ `cat /etc/*-release | head -n 1 | awk '{print $1}'` =~ Ubuntu ]]; then - # Testing alarm-notifier and alarm-evaluator together - apt-get install ceilometer-alarm-evaluator ceilometer-alarm-notifier -y --force-yes + # Instance notification + send_fake_instance_notification + resource_id=$(ceilometer ${ceilometer_auth_string} resource-list | grep fake) + if [ -z ${resource_id} ]; then + exit_on_error 1 "Notification is not received" fi - echo "Testing 'ceilometer-alarm-notifier'" - prepare_config - prepare_vm - - screen -dmS ceilometer-alarm-notifier - sleep 2 - screen -S ceilometer-alarm-notifier -p 0 -X stuff 'ceilometer-alarm-notifier --config-file /etc/ceilometer/ceilometer.conf --log-file /var/log/ceilometer/ceilometer-alarm-notifier.log -' - sleep 10 - check_running ceilometer-alarm-notifier - - if [ -z "$(cat /var/log/ceilometer/ceilometer-alarm-notifier.log | grep 'Connected to AMQP server on')" ]; then - echo -e "Start alarm-notifier process is failed" - RES=1 + # Events + if [ -z "$(ceilometer ${ceilometer_auth_string} event-list | grep fake)" ]; then + exit_on_error 1 "Events wasn't created" fi - killall -15 ceilometer-alarm-notifier + # Alarming + ceilometer -dv ${ceilometer_auth_string} alarm-threshold-create --name cpu_high --description 'instance running hot' \ + --meter-name cpu_util --threshold 70.0 --comparison-operator gt --statistic avg \ + --period 600 --evaluation-periods 3 --alarm-action 'log://' --query resource_id="${resource_id}" - cat /var/log/ceilometer/ceilometer-alarm-notifier.log - - echo "Testing 'ceilometer-alarm-evaluator'" - screen -dmS ceilometer-alarm-evaluator - sleep 2 - screen -S ceilometer-alarm-evaluator -p 0 -X stuff 'ceilometer-alarm-evaluator --config-file /etc/ceilometer/ceilometer.conf --log-file /var/log/ceilometer/ceilometer-alarm-evaluator.log -' - sleep 10 - check_running ceilometer-alarm-evaluator - - if [ -z "$(cat /var/log/ceilometer/ceilometer-alarm-evaluator.log | grep 'alarm evaluation cycle')" ]; then - echo -e "Start alarm-evalutor process is failed" - RES=1 + if [ "$?" -ne '0' -a -z "$(ceilometer ${ceilometer_auth_string} alarm-list | grep cpu_high)" ]; then + exit_on_error 1 "Alarm creation has failed" fi - killall -15 ceilometer-alarm-evaluator - - cat /var/log/ceilometer/ceilometer-alarm-evaluator.log - ;; - ceilometer-agent-compute|openstack-ceilometer-compute) - prepare_vm - prepare_config - - screen -dmS ceilometer-agent-compute - sleep 2 - screen -S ceilometer-agent-compute -p 0 -X stuff 'ceilometer-agent-compute --config-file /etc/ceilometer/ceilometer.conf -' - sleep 10 - check_running ceilometer-agent-compute - check_pollsters "cpu" "memory" "disk" + # Samples + ceilometer -dv ${ceilometer_auth_string} sample-create -m fake_sample --meter-type gauge --meter-unit '%' --sample-volume 100 -r "fake" - killall -15 ceilometer-agent-compute - - cat /var/log/ceilometer/$package.log - ;; - ceilometer-agent-central|openstack-ceilometer-central) - prepare_vm - prepare_config - - screen -dmS ceilometer-agent-central - sleep 2 - screen -S ceilometer-agent-central -p 0 -X stuff 'ceilometer-agent-central --config-file /etc/ceilometer/ceilometer.conf -' - sleep 10 - check_running ceilometer-agent-central - check_pollsters "network" "switch" "hardware" - - killall -15 ceilometer-agent-central - - cat /var/log/ceilometer/$package.log + if [ "$?" -ne '0' -a -z "$(ceilometer ${ceilometer_auth_string} sample-list | grep fake_sample)" ]; then + exit_on_error 1 "Sample creation has failed" + fi ;; - ceilometer-common|openstack-ceilometer-common) - if [ -z "$(cut -d: -f1 /etc/passwd | grep 'ceilometer')" ]; then - echo -e "User 'ceilometer' doesn't exist" - RES=1 + ceilometer-agent-ipmi|openstack-ceilometer-ipmi) + # Ceilometer-agent-ipmi is not included in common testing + # because it is not used in Fuel now + if [ ! -f "/usr/bin/ceilometer-agent-ipmi" ]; then + exit_on_error 1 "Ceilometer ipmi binary is missed" fi - config_files="ceilometer.conf policy.json pipeline.yaml api_paste.ini event_definitions.yaml" - for i in $config_files; do - if [ ! -f "/etc/ceilometer/$i" ]; then - RES=1 - echo "File /etc/ceilometer/$i doesn't exist" - fi - done ;; python-ceilometer) python -c 'import ceilometer' if [ $? -ne '0' ]; then - echo -e "Couldn't import module 'ceilometer'" - RES=1 + exit_on_error 1 "Couldn't import module 'ceilometer'" fi if [ -z "$(which ceilometer)" ]; then - RES=1 - echo -e "Can't find command 'ceilometer'" + exit_on_error 1 "Can't find command 'ceilometer'" fi ;; *) - echo "test not defined, skipping..." + if ! ${found}; then + echo "Test not defined. Please create test for package ${package_to_test}" + fi ;; esac -exit $RES +exit ${RES} diff --git a/debian/ceilometer-agent-central.init.in b/trusty/debian/ceilometer-agent-central.init.in similarity index 100% rename from debian/ceilometer-agent-central.init.in rename to trusty/debian/ceilometer-agent-central.init.in diff --git a/debian/ceilometer-agent-central.install b/trusty/debian/ceilometer-agent-central.install similarity index 100% rename from debian/ceilometer-agent-central.install rename to trusty/debian/ceilometer-agent-central.install diff --git a/debian/ceilometer-agent-central.postrm b/trusty/debian/ceilometer-agent-central.postrm similarity index 100% rename from debian/ceilometer-agent-central.postrm rename to trusty/debian/ceilometer-agent-central.postrm diff --git a/debian/ceilometer-agent-compute.init.in b/trusty/debian/ceilometer-agent-compute.init.in similarity index 100% rename from debian/ceilometer-agent-compute.init.in rename to trusty/debian/ceilometer-agent-compute.init.in diff --git a/debian/ceilometer-agent-compute.install b/trusty/debian/ceilometer-agent-compute.install similarity index 100% rename from debian/ceilometer-agent-compute.install rename to trusty/debian/ceilometer-agent-compute.install diff --git a/debian/ceilometer-agent-compute.postrm b/trusty/debian/ceilometer-agent-compute.postrm similarity index 100% rename from debian/ceilometer-agent-compute.postrm rename to trusty/debian/ceilometer-agent-compute.postrm diff --git a/debian/ceilometer-agent-ipmi.init.in b/trusty/debian/ceilometer-agent-ipmi.init.in similarity index 100% rename from debian/ceilometer-agent-ipmi.init.in rename to trusty/debian/ceilometer-agent-ipmi.init.in diff --git a/debian/ceilometer-agent-ipmi.install b/trusty/debian/ceilometer-agent-ipmi.install similarity index 100% rename from debian/ceilometer-agent-ipmi.install rename to trusty/debian/ceilometer-agent-ipmi.install diff --git a/debian/ceilometer-agent-ipmi.postrm b/trusty/debian/ceilometer-agent-ipmi.postrm similarity index 100% rename from debian/ceilometer-agent-ipmi.postrm rename to trusty/debian/ceilometer-agent-ipmi.postrm diff --git a/debian/ceilometer-agent-notification.init.in b/trusty/debian/ceilometer-agent-notification.init.in similarity index 100% rename from debian/ceilometer-agent-notification.init.in rename to trusty/debian/ceilometer-agent-notification.init.in diff --git a/debian/ceilometer-agent-notification.install b/trusty/debian/ceilometer-agent-notification.install similarity index 100% rename from debian/ceilometer-agent-notification.install rename to trusty/debian/ceilometer-agent-notification.install diff --git a/debian/ceilometer-agent-notification.postrm b/trusty/debian/ceilometer-agent-notification.postrm similarity index 100% rename from debian/ceilometer-agent-notification.postrm rename to trusty/debian/ceilometer-agent-notification.postrm diff --git a/debian/ceilometer-alarm-evaluator.init.in b/trusty/debian/ceilometer-alarm-evaluator.init.in similarity index 100% rename from debian/ceilometer-alarm-evaluator.init.in rename to trusty/debian/ceilometer-alarm-evaluator.init.in diff --git a/debian/ceilometer-alarm-evaluator.install b/trusty/debian/ceilometer-alarm-evaluator.install similarity index 100% rename from debian/ceilometer-alarm-evaluator.install rename to trusty/debian/ceilometer-alarm-evaluator.install diff --git a/debian/ceilometer-alarm-notifier.init.in b/trusty/debian/ceilometer-alarm-notifier.init.in similarity index 100% rename from debian/ceilometer-alarm-notifier.init.in rename to trusty/debian/ceilometer-alarm-notifier.init.in diff --git a/debian/ceilometer-alarm-notifier.install b/trusty/debian/ceilometer-alarm-notifier.install similarity index 100% rename from debian/ceilometer-alarm-notifier.install rename to trusty/debian/ceilometer-alarm-notifier.install diff --git a/debian/ceilometer-api.init.in b/trusty/debian/ceilometer-api.init.in similarity index 100% rename from debian/ceilometer-api.init.in rename to trusty/debian/ceilometer-api.init.in diff --git a/debian/ceilometer-api.install b/trusty/debian/ceilometer-api.install similarity index 100% rename from debian/ceilometer-api.install rename to trusty/debian/ceilometer-api.install diff --git a/debian/ceilometer-api.postrm b/trusty/debian/ceilometer-api.postrm similarity index 100% rename from debian/ceilometer-api.postrm rename to trusty/debian/ceilometer-api.postrm diff --git a/debian/ceilometer-collector.init.in b/trusty/debian/ceilometer-collector.init.in similarity index 100% rename from debian/ceilometer-collector.init.in rename to trusty/debian/ceilometer-collector.init.in diff --git a/debian/ceilometer-collector.install b/trusty/debian/ceilometer-collector.install similarity index 100% rename from debian/ceilometer-collector.install rename to trusty/debian/ceilometer-collector.install diff --git a/debian/ceilometer-collector.postrm b/trusty/debian/ceilometer-collector.postrm similarity index 100% rename from debian/ceilometer-collector.postrm rename to trusty/debian/ceilometer-collector.postrm diff --git a/debian/ceilometer-common.dirs b/trusty/debian/ceilometer-common.dirs similarity index 100% rename from debian/ceilometer-common.dirs rename to trusty/debian/ceilometer-common.dirs diff --git a/debian/ceilometer-common.install b/trusty/debian/ceilometer-common.install similarity index 73% rename from debian/ceilometer-common.install rename to trusty/debian/ceilometer-common.install index 7482746..e16dabf 100644 --- a/debian/ceilometer-common.install +++ b/trusty/debian/ceilometer-common.install @@ -1,6 +1,9 @@ etc/ceilometer/api_paste.ini etc/ceilometer etc/ceilometer/ceilometer.conf etc/ceilometer +etc/ceilometer/deprecated_pipeline.yaml etc/ceilometer/ etc/ceilometer/event_definitions.yaml etc/ceilometer +etc/ceilometer/event_pipeline.yaml etc/ceilometer/ +etc/ceilometer/gabbi_pipeline.yaml etc/ceilometer/ etc/ceilometer/pipeline.yaml etc/ceilometer etc/ceilometer/policy.json etc/ceilometer etc/ceilometer/rootwrap.conf etc/ceilometer diff --git a/debian/ceilometer-common.logrotate b/trusty/debian/ceilometer-common.logrotate similarity index 100% rename from debian/ceilometer-common.logrotate rename to trusty/debian/ceilometer-common.logrotate diff --git a/debian/ceilometer-common.postinst b/trusty/debian/ceilometer-common.postinst similarity index 100% rename from debian/ceilometer-common.postinst rename to trusty/debian/ceilometer-common.postinst diff --git a/debian/ceilometer-polling.init.in b/trusty/debian/ceilometer-polling.init.in similarity index 100% rename from debian/ceilometer-polling.init.in rename to trusty/debian/ceilometer-polling.init.in diff --git a/debian/ceilometer-polling.install b/trusty/debian/ceilometer-polling.install similarity index 100% rename from debian/ceilometer-polling.install rename to trusty/debian/ceilometer-polling.install diff --git a/debian/ceilometer-polling.postrm b/trusty/debian/ceilometer-polling.postrm similarity index 100% rename from debian/ceilometer-polling.postrm rename to trusty/debian/ceilometer-polling.postrm diff --git a/trusty/debian/changelog b/trusty/debian/changelog new file mode 100644 index 0000000..8768942 --- /dev/null +++ b/trusty/debian/changelog @@ -0,0 +1,9 @@ +ceilometer (2015.1.0-1~u14.04+mos1) mos7.0; urgency=medium + + * Build ceilometer 2015.1.0 (stable/kilo) + * Updating requirements according to: + https://github.com/openstack/ceilometer/blob/stable/kilo/requirements.txt + https://github.com/openstack/requirements/blob/stable/kilo/global-requirements.txt + * Sync debian sources with https://launchpad.net/ubuntu/+source/ceilometer/2015.1.0-0ubuntu1 + + -- Ivan Berezovskiy Wed, 13 May 2015 16:45:58 +0300 diff --git a/debian/compat b/trusty/debian/compat similarity index 100% rename from debian/compat rename to trusty/debian/compat diff --git a/debian/control b/trusty/debian/control similarity index 60% rename from debian/control rename to trusty/debian/control index 7ea2982..5fed467 100644 --- a/debian/control +++ b/trusty/debian/control @@ -1,139 +1,124 @@ Source: ceilometer Section: python Priority: optional -Maintainer: Chuck Short +Maintainer: MOS Ceilometer Team Build-Depends: - alembic (>= 0.6.4), - debhelper (>= 9~), + alembic (>= 0.7.2), + debhelper (>= 9), dh-systemd, - openstack-pkg-tools (>= 21~), - python-all (>= 2.6), + openstack-pkg-tools (>= 21), + pylint, + python-all (>= 2.7.1), python-anyjson (>= 0.3.3), - python-argparse, - python-babel (>= 1.3), - python-ceilometerclient (>= 1.0.6), - python-coverage (>= 3.6), + python-ceilometerclient (>= 1.0.13), python-croniter (>= 0.3.4), python-docutils, - python-eventlet (>= 0.15.2), - python-fixtures (>= 0.3.14), - python-glanceclient (>= 1:0.14.0), - python-hacking (>= 0.9.2), - python-happybase (>= 0.5), python-happybase (<< 0.7) | python-happybase (>> 0.7), - python-httplib2 (>= 0.7.5), + python-eventlet (>= 0.16.1), + python-glanceclient (>= 1:0.15.0), python-iso8601 (>= 0.1.9), - python-jsonpath-rw (>= 1.2.0), python-jsonpath-rw (<< 2.0), - python-jsonschema (>= 2.0.0), python-jsonschema (<< 3.0.0), - python-keystoneclient (>= 1:0.11.1), - python-keystonemiddleware (>= 1.0.0), - python-lockfile (>= 0.8), + python-jsonpath-rw (>=1.2.0), + python-jsonschema (>= 2.0.0), + python-keystoneclient (>= 1:1.1.0), + python-keystonemiddleware (>= 1.5.0), python-lxml (>= 2.3), - python-migrate (>= 0.9.1), python-migrate (<< 0.9.2) | python-migrate (>> 0.9.2), - python-mock (>= 1.0), - python-mox (>= 0.5.3), python-msgpack (>= 0.4.0), - python-mysqldb, - python-netaddr (>= 0.7.12), - python-neutronclient (>= 2.3.6), python-neutronclient (<< 1:3.0.0), + python-migrate (>= 0.9.5), + python-neutronclient (>= 1:2.3.11), python-nose, - python-nova, - python-novaclient (>= 1:2.18.0), - python-oslo.concurrency (>= 0.3.0), - python-oslo.config (>= 1:1.4.0), - python-oslo.db (>= 1.1.0), - python-oslo.i18n (>= 1.0.0), - python-oslo.messaging (>= 1.4.0), python-oslo.messaging (<< 1.5.0) | python-oslo.messaging (>> 1.5.0), - python-oslo.middleware (>= 0.1.0), - python-oslo.rootwrap (>= 1.3.0), - python-oslo.serialization (>= 1.0.0), - python-oslo.utils (>= 1.0.0), - python-oslo.vmware (>= 0.6.0), - python-oslosphinx (>= 2.2.0), - python-oslotest (>= 1.1.0), + python-novaclient (>= 1:2.22.0), + python-oslo-context (>= 0.2.0), + python-oslo-db (>= 1.7.0), + python-oslo-concurrency (>= 1.8.0), + python-oslo-config (>= 1:1.9.3), + python-oslo-i18n (>= 1.5.0), + python-oslo-messaging (>= 1.8.0), + python-oslo-middleware (>= 1.0.0), + python-oslo-policy (>= 0.3.1), + python-oslo-rootwrap (>= 1.6.0), + python-oslo-serialization (>= 1.4.0), + python-oslo-utils (>= 1.4.0), python-pastedeploy (>= 1.5.0), - python-pbr (>= 0.6), python-pbr (<< 0.7) | python-pbr (>> 0.7), python-pbr (<< 1.0), - python-pecan (>= 0.8.0), python-posix-ipc, - python-pymongo (>= 2.5), - python-pysnmp4 (>= 4.2.1), python-pysnmp4 (<< 5.0.0), - python-requests (>= 2.2.0), python-requests (<< 2.4.0) | python-requests (>> 2.4.0), - python-retrying (>= 1.2.2), python-retrying (<< 1.3.0) | python-retrying (>> 1.3.0), - python-six (>= 1.7.0), - python-sphinx (>= 1.1.2), - python-sqlalchemy (>= 0.8.4), python-sqlalchemy (<< 0.8.99) | python-sqlalchemy (>> 0.9.7), python-sqlalchemy (<= 0.9.99), - python-stevedore (>= 1.1.0), - python-subunit (>= 0.0.18), + python-pbr (>= 0.10), + python-pecan (>= 0.8.0), + python-psycopg2, + python-pymongo (>= 2.6.3), + python-pysnmp4 (>= 4.2.1), + python-requests (>= 2.2.0), + python-retrying (>= 1.2.3), + python-tz (>= 2013.6), + python-six (>= 1.9.0), + python-sqlalchemy (>= 0.9.7), + python-stevedore (>= 1.3.0), python-swiftclient (>= 1:2.2.0), - python-testrepository (>= 0.0.18), - python-testscenarios (>= 0.4), - python-testtools (>= 0.9.34), - python-tooz (>= 0.9), - python-tz (>= 2010h), + python-tooz (>= 0.13.1), + python-werkzeug (>= 0.7), python-webob (>= 1.2.3), python-wsme (>= 0.6), python-yaml (>= 3.1.0), subunit, testrepository (>= 0.0.18) Standards-Version: 3.9.6 -Vcs-Browser: http://bazaar.launchpad.net/~ubuntu-server-dev/ceilometer/kilo/files -Vcs-Bzr: https://code.launchpad.net/~ubuntu-server-dev/ceilometer/kilo Package: python-ceilometer Architecture: all Depends: - alembic (>= 0.6.4), + openstack-pkg-tools (>= 21), + python-all (>= 2.7.1), python-anyjson (>= 0.3.3), - python-argparse, - python-ceilometerclient (>= 1.0.6), + python-ceilometerclient (>= 1.0.13), python-croniter (>= 0.3.4), - python-eventlet (>= 0.15.2), - python-glanceclient (>= 1:0.14.0), - python-happybase (>= 0.5), python-happybase (<< 0.7) | python-happybase (>> 0.7), + python-eventlet (>= 0.16.1), + python-glanceclient (>= 1:0.15.0), python-iso8601 (>= 0.1.9), - python-jsonpath-rw (>= 1.2.0), python-jsonpath-rw (<< 2.0), - python-jsonschema (>= 2.0.0), python-jsonschema (<< 3.0.0), - python-keystoneclient (>= 1:0.11.1), - python-keystonemiddleware (>= 1.0.0), - python-lockfile (>= 0.8), + python-jsonpath-rw (>=1.2.0), + python-jsonschema (>= 2.0.0), + python-keystoneclient (>= 1:1.1.0), + python-keystonemiddleware (>= 1.5.0), python-lxml (>= 2.3), - python-migrate (>= 0.9.1), python-migrate (<< 0.9.2) | python-migrate (>> 0.9.2), python-msgpack (>= 0.4.0), - python-netaddr (>= 0.7.12), - python-neutronclient (>= 1:2.3.6), python-neutronclient (<< 1:3.0.0), - python-novaclient (>= 1:2.18.0), - python-oslo.concurrency (>= 0.3.0), - python-oslo.config (>= 1:1.4.0), - python-oslo.db (>= 1.1.0), - python-oslo.i18n (>= 1.0.0), - python-oslo.messaging (>= 1.4.0), python-oslo.messaging (<< 1.5.0) | python-oslo.messaging (>> 1.5.0), - python-oslo.middleware (>= 0.1.0), - python-oslo.rootwrap (>= 1.3.0), - python-oslo.serialization (>= 1.0.0), - python-oslo.utils (>= 1.0.0), - python-oslo.vmware (>= 0.6.0), + python-migrate (>= 0.9.5), + python-neutronclient (>= 1:2.3.11), + python-novaclient (>= 1:2.22.0), + python-oslo-context (>= 0.2.0), + python-oslo-db (>= 1.7.0), + python-oslo-concurrency (>= 1.8.0), + python-oslo-config (>= 1:1.9.3), + python-oslo-i18n (>= 1.5.0), + python-oslo-messaging (>= 1.8.0), + python-oslo-middleware (>= 1.0.0), + python-oslo-policy (>= 0.3.1), + python-oslo-rootwrap (>= 1.6.0), + python-oslo-serialization (>= 1.4.0), + python-oslo-utils (>= 1.4.0), python-pastedeploy (>= 1.5.0), - python-pbr (>= 0.6), python-pbr (<< 0.7) | python-pbr (>> 0.7), python-pbr (<< 1.0), - python-pecan (>= 0.8.0), python-posix-ipc, - python-pysnmp4 (>= 4.2.1), python-pysnmp4 (<< 5.0.0), - python-retrying (>= 1.2.2), python-retrying (<< 1.3.0) | python-retrying (>> 1.3.0), - python-requests (>= 2.2.0), python-requests (<< 2.4.0) | python-requests (>> 2.4.0), - python-six (>= 1.7.0), - python-sqlalchemy (>= 0.8.4), python-sqlalchemy (<< 0.8.99) | python-sqlalchemy (>> 0.9.7), python-sqlalchemy (<= 0.9.99), - python-stevedore (>= 1.1.0), + python-pbr (>= 0.10), + python-pecan (>= 0.8.0), + python-psycopg2, + python-pymongo (>= 2.6.3), + python-pysnmp4 (>= 4.2.1), + python-requests (>= 2.2.0), + python-retrying (>= 1.2.3), + python-tz (>= 2013.6), + python-six (>= 1.9.0), + python-sqlalchemy (>= 0.9.7), + python-stevedore (>= 1.3.0), python-swiftclient (>= 1:2.2.0), - python-tooz (>= 0.9), - python-tz (>= 2010h), + python-tooz (>= 0.13.1), + python-werkzeug (>= 0.7), python-webob (>= 1.2.3), python-wsme (>= 0.6), python-yaml (>= 3.1.0), + subunit, + testrepository (>= 0.0.18) ${misc:Depends}, ${python:Depends} Description: ceilometer python libraries Ceilometer aims to deliver a unique point of contact for billing systems to - aquire all counters they need to establish customer billing, across all + acquire 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 + be traceable and auditable, the counters must be easily extensible to support new projects, and agents doing data collections should be independent of the overall system. . @@ -154,7 +139,7 @@ Description: ceilometer common files 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 + be traceable and auditable, the counters must be easily extensible to support new projects, and agents doing data collections should be independent of the overall system. . @@ -173,7 +158,7 @@ Description: ceilometer collector service 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 + be traceable and auditable, the counters must be easily extensible to support new projects, and agents doing data collections should be independent of the overall system. . @@ -192,7 +177,7 @@ Description: ceilometer polling service 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 + be traceable and auditable, the counters must be easily extensible to support new projects, and agents doing data collections should be independent of the overall system. . @@ -211,7 +196,7 @@ Description: ceilometer api service 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 + be traceable and auditable, the counters must be easily extensible to support new projects, and agents doing data collections should be independent of the overall system. . @@ -227,7 +212,7 @@ Description: ceilometer compute agent 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 + be traceable and auditable, the counters must be easily extensible to support new projects, and agents doing data collections should be independent of the overall system. . @@ -245,7 +230,7 @@ Description: ceilometer central agent 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 + be traceable and auditable, the counters must be easily extensible to support new projects, and agents doing data collections should be independent of the overall system. . @@ -264,7 +249,7 @@ Description: ceilometer ipmi agent 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 + be traceable and auditable, the counters must be easily extensible to support new projects, and agents doing data collections should be independent of the overall system. . @@ -282,7 +267,7 @@ Description: ceilometer notification agent 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 + be traceable and auditable, the counters must be easily extensible to support new projects, and agents doing data collections should be independent of the overall system. . @@ -300,7 +285,7 @@ Description: Ceilometer alarm evaluator 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 + be traceable and auditable, the counters must be easily extensible to support new projects, and agents doing data collections should be independent of the overall system. . @@ -318,7 +303,7 @@ Description: Ceilometer notification agent 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 + be traceable and auditable, the counters must be easily extensible to support new projects, and agents doing data collections should be independent of the overall system. . diff --git a/debian/copyright b/trusty/debian/copyright similarity index 100% rename from debian/copyright rename to trusty/debian/copyright diff --git a/debian/docs b/trusty/debian/docs similarity index 100% rename from debian/docs rename to trusty/debian/docs diff --git a/trusty/debian/patches/disable-kafka.patch b/trusty/debian/patches/disable-kafka.patch new file mode 100644 index 0000000..1e0d4b2 --- /dev/null +++ b/trusty/debian/patches/disable-kafka.patch @@ -0,0 +1,39 @@ +--- a/ceilometer/tests/publisher/test_kafka_broker_publisher.py ++++ b/ceilometer/tests/publisher/test_kafka_broker_publisher.py +@@ -15,13 +15,17 @@ + """Tests for ceilometer/publisher/kafka_broker.py + """ + import datetime ++import testtools + import uuid + + import mock + from oslo_utils import netutils + + from ceilometer.event.storage import models as event +-from ceilometer.publisher.kafka_broker import KafkaBrokerPublisher ++try: ++ from ceilometer.publisher.kafka_broker import KafkaBrokerPublisher ++except ImportError: ++ kafka_publisher = None + from ceilometer import sample + from ceilometer.tests import base as tests_base + +@@ -93,6 +97,7 @@ + ), + ] + ++ @testtools.skipIf(kafka_publisher is None, "Kafka not avaliable, skipping") + def setUp(self): + super(TestKafkaPublisher, self).setUp() + +--- a/requirements.txt ++++ b/requirements.txt +@@ -9,7 +9,6 @@ + iso8601>=0.1.9 + jsonpath-rw>=1.2.0,<2.0 + jsonschema>=2.0.0,<3.0.0 +-kafka-python>=0.9.2 # Apache-2.0 + keystonemiddleware>=1.5.0,<1.6.0 + lxml>=2.3 + msgpack-python>=0.4.0 diff --git a/trusty/debian/patches/series b/trusty/debian/patches/series new file mode 100644 index 0000000..16fa7f5 --- /dev/null +++ b/trusty/debian/patches/series @@ -0,0 +1,4 @@ +skip-db-tests.patch +skip-test.patch +skip-gabbi.patch +disable-kafka.patch diff --git a/debian/patches/skip-db-tests.patch b/trusty/debian/patches/skip-db-tests.patch similarity index 100% rename from debian/patches/skip-db-tests.patch rename to trusty/debian/patches/skip-db-tests.patch diff --git a/trusty/debian/patches/skip-gabbi.patch b/trusty/debian/patches/skip-gabbi.patch new file mode 100644 index 0000000..b35d1bc --- /dev/null +++ b/trusty/debian/patches/skip-gabbi.patch @@ -0,0 +1,19 @@ +--- a/ceilometer/tests/gabbi/test_gabbi.py ++++ b/ceilometer/tests/gabbi/test_gabbi.py +@@ -20,10 +20,14 @@ For the sake of exploratory development. + + import os + +-from gabbi import driver ++try: ++ from gabbi import driver ++except ImportError: ++ driver = None + + from ceilometer.api import app +-from ceilometer.tests.gabbi import fixtures as fixture_module ++if driver: ++ from ceilometer.tests.gabbi import fixtures as fixture_module + + + TESTS_DIR = 'gabbits' diff --git a/trusty/debian/patches/skip-test.patch b/trusty/debian/patches/skip-test.patch new file mode 100644 index 0000000..1e69a66 --- /dev/null +++ b/trusty/debian/patches/skip-test.patch @@ -0,0 +1,14 @@ +--- a/ceilometer/tests/api/v2/test_event_scenarios.py ++++ b/ceilometer/tests/api/v2/test_event_scenarios.py +@@ -138,7 +138,10 @@ + # We expect to get native UTC generated time back + trait_time = self.s_time + for event in data: +- expected_generated = trait_time.isoformat() ++ try: ++ expected_generated = trait_time.isoformat() ++ except: ++ self.skipTest('Skipped by Ubuntu') + self.assertIn(event['event_type'], ['Foo', 'Bar', 'Zoo']) + self.assertEqual(4, len(event['traits'])) + self.assertEqual({'status': {'nested': 'started'}}, event['raw']), diff --git a/trusty/debian/pydist-overrides b/trusty/debian/pydist-overrides new file mode 100644 index 0000000..0efd297 --- /dev/null +++ b/trusty/debian/pydist-overrides @@ -0,0 +1,15 @@ +pymongo python-pymongo +pysnmp +oslo.context python-oslo-context +oslo.concurrency python-oslo-concurrency +oslo.config python-oslo-config +oslo.messaging python-oslo-messaging +oslo.vmware python-oslo-vmware +oslo.utils python-oslo-utils +oslo.serialization python-oslo-serialization +oslo.db python-oslo-db +oslo.i18n python-oslo-i18n +oslo.utils python-oslo-utils +oslo.rootwrap python-oslo-rootwrap +oslo.log python-oslo-log +oslo.middleware python-oslo-middleware diff --git a/debian/python-ceilometer.install b/trusty/debian/python-ceilometer.install similarity index 100% rename from debian/python-ceilometer.install rename to trusty/debian/python-ceilometer.install diff --git a/debian/rules b/trusty/debian/rules similarity index 88% rename from debian/rules rename to trusty/debian/rules index 8bb4684..a6047da 100755 --- a/debian/rules +++ b/trusty/debian/rules @@ -19,7 +19,7 @@ override_dh_auto_test: testr init && \ set -e && \ TEMP_REZ=`mktemp -t` && \ - testr run --subunit 'tests\.(?!.*test_bin.*)' | tee $$TEMP_REZ | subunit2pyunit; \ + testr run --subunit 'tests\.(?!.*test_bin.*)(?!.*test_gabbi.*)' | tee $$TEMP_REZ | subunit2pyunit; \ rm -f $$TEMP_REZ endif @@ -29,7 +29,6 @@ override_dh_install: --namespace oslo.db \ --namespace oslo.messaging \ --namespace keystonemiddleware.auth_token -# patch -p0 < debian/patches/default-config.patch cp etc/ceilometer/ceilometer.conf.sample etc/ceilometer/ceilometer.conf dh_install --fail-missing diff --git a/debian/source/format b/trusty/debian/source/format similarity index 100% rename from debian/source/format rename to trusty/debian/source/format diff --git a/debian/tests/control b/trusty/debian/tests/control similarity index 67% rename from debian/tests/control rename to trusty/debian/tests/control index e85991d..7a44a2c 100644 --- a/debian/tests/control +++ b/trusty/debian/tests/control @@ -1,2 +1,2 @@ Tests: test-daemons test-python-ceilometer -Depends: python-ceilometer, ceilometer-common, ceilometer-collector, ceilometer-api, ceilometer-agent-compute, ceilometer-agent-central, ceilometer-agent-ipmi, ceilometer-agent-notification +Depends: python-ceilometer, ceilometer-common, ceilometer-collector, ceilometer-api, ceilometer-agent-compute, ceilometer-agent-central, ceilometer-agent-ipmi, ceilometer-agent-notification, ceilometer-polling diff --git a/debian/tests/test-daemons b/trusty/debian/tests/test-daemons similarity index 78% rename from debian/tests/test-daemons rename to trusty/debian/tests/test-daemons index d8058bb..987b212 100644 --- a/debian/tests/test-daemons +++ b/trusty/debian/tests/test-daemons @@ -3,7 +3,7 @@ # Testing ceilometer-daemons #--------------------------- set -e -DAEMONS=('ceilometer-collector' 'ceilometer-api' 'ceilometer-agent-compute' 'ceilometer-agent-central', 'ceilometer-agent-ipmi', 'ceilometer-agent-notification') +DAEMONS=('ceilometer-collector' 'ceilometer-api' 'ceilometer-agent-compute' 'ceilometer-agent-ipmi' 'ceilometer-agent-notification' 'ceilometer-polling') for daemon in "${DAEMONS[@]}"; do if pidof -x $daemon > /dev/null; then diff --git a/debian/tests/test-python-ceilometer b/trusty/debian/tests/test-python-ceilometer similarity index 100% rename from debian/tests/test-python-ceilometer rename to trusty/debian/tests/test-python-ceilometer