From: Dmitry Burmistrov Date: Mon, 21 Oct 2013 11:34:25 +0000 (+0400) Subject: Update DEB-specs to 2013.2 version X-Git-Tag: 2014.1~12 X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=e1a973dc6c81cef2cc8f44ffe4784c6007d686f1;p=openstack-build%2Fceilometer-build.git Update DEB-specs to 2013.2 version --- diff --git a/debian/ceilometer-common.install b/debian/ceilometer-common.install index a70f296..3586c53 100644 --- a/debian/ceilometer-common.install +++ b/debian/ceilometer-common.install @@ -3,7 +3,7 @@ etc/ceilometer/pipeline.yaml etc/ceilometer etc/ceilometer/policy.json etc/ceilometer etc/ceilometer/sources.json etc/ceilometer tools/show_data.py usr/share/doc/ceilometer -usr/bin/ceilometer-alarm-notifier usr/bin/ceilometer-alarm-evaluator +usr/bin/ceilometer-alarm-notifier usr/bin/ceilometer-dbsync usr/bin/ceilometer-expirer diff --git a/debian/changelog b/debian/changelog index 4b1f421..15c2c0f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,79 @@ -ceilometer (2013.2~b2-0ubuntu4~cloud0) precise-havana; urgency=low +ceilometer (2013.2-0ubuntu1~cloud0) precise-havana; urgency=low + + * New upstream release for the Ubuntu Cloud Archive. + + -- James Page Mon, 14 Oct 2013 15:29:44 +0100 + +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 - * New upsream release for the Ubuntu Cloud Archive. + [ 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 Sun, 28 Jul 2013 22:01:48 -0400 + -- Chuck Short Sat, 07 Sep 2013 15:58:58 -0400 ceilometer (2013.2~b2-0ubuntu4) saucy; urgency=low diff --git a/debian/control b/debian/control index 7c71f72..a0111bc 100644 --- a/debian/control +++ b/debian/control @@ -3,56 +3,51 @@ Section: python Priority: optional Maintainer: Chuck Short Build-Depends: - alembic, + alembic (>= 0.6.0), debhelper (>= 8.0.0), msgpack-python, python-all (>= 2.6), python-anyjson (>= 0.3.3), python-babel (>= 0.9.6), - python-ceilometerclient (>= 1.0.1), - python-cinderclient, + python-ceilometerclient (>= 1.0.3), python-coverage, - python-d2to1, python-docutils, - python-eventlet, - python-extras, - python-fixtures (>= 0.3.12), - python-flask (>= 0.9), - python-glanceclient, + python-eventlet (>= 0.13.0), + python-fixtures (>= 0.3.14), + python-flask (>= 0.10), + python-glanceclient (>= 1:0.9.3), + python-httplib2, python-happybase, python-iso8601, - python-keystoneclient (>= 0.2), + python-keystoneclient (>= 1:0.3.2), python-kombu (>= 2.4.7), - python-lockfile, - python-lxml, + python-lxml (>= 2.3), python-migrate, python-mock, python-mox, python-netaddr, - python-netifaces, python-nova, - python-novaclient (>= 2.6.10), - python-oslo.config (>= 1:1.2.0a3), + python-novaclient (>= 1:2.12.10), + python-oslo.config (>= 1:1.2.0), python-oslo.sphinx, - python-pbr, + python-pbr (>= 0.5.21), python-pecan (>= 0.2.0), - python-pymongo (>= 2.2), + python-pymongo (>= 2.6), python-requests (>= 1.1), - python-setuptools-git (>= 0.4), python-simplejson, python-sphinx, - python-sqlalchemy, - python-stevedore (>= 0.9), + python-sqlalchemy (>= 0.8.2), + python-stevedore (>= 0.10), python-subunit, + python-six, python-swift, - python-swiftclient, - python-testscenarios, - python-testtools, - python-unittest2, - python-webob (>= 1.2), - python-wsme (>= 0.5b2), + python-swiftclient (>= 1.5), + python-testscenarios (>= 0.4), + python-testtools (>= 0.9.32), + python-webob (>= 1.2.3), + python-wsme (>= 0.5b5), python-yaml, - testrepository (>= 0.0.13) + testrepository (>= 0.0.17) Standards-Version: 3.9.4 Vcs-Browser: http://bazaar.launchpad.net/~ubuntu-server-dev/ceilometer/havana/files Vcs-Bzr: https://code.launchpad.net/~ubuntu-server-dev/ceilometer/havana @@ -60,30 +55,32 @@ Vcs-Bzr: https://code.launchpad.net/~ubuntu-server-dev/ceilometer/havana Package: python-ceilometer Architecture: all Depends: - alembic, + alembic (>= 0.6.0), msgpack-python, - python-anyjson, - python-ceilometerclient, - python-eventlet, - python-flask, - python-glanceclient, + python-anyjson (>= 0.3.3), + python-ceilometerclient (>= 1.0.3), + python-eventlet (>= 0.13.0), + python-flask (>= 0.10), + python-glanceclient (>= 1:0.9.3), python-happybase, python-iso8601, - python-keystoneclient, - python-kombu, - python-lxml, + python-keystoneclient (>= 1:0.3.2), + python-kombu (>= 2.4.8), + python-lxml (>= 2.3), python-migrate, - python-novaclient, - python-oslo.config, - python-pecan, - python-pymongo, + python-netaddr, + python-novaclient (>= 1:2.12.10), + python-oslo.config (>= 1:1.2.0), + python-pecan (>= 0.2.0), + python-pymongo (>= 2.6), + python-six, python-yaml, - python-requests, - python-sqlalchemy, - python-stevedore, - python-swiftclient, - python-webob, - python-wsme, + python-requests (>= 1.1), + python-sqlalchemy (>= 0.8.2), + python-stevedore (>= 0.10), + python-swiftclient (>= 1.5), + python-webob (>= 1.2.3), + python-wsme (>= 0.5b5), ${misc:Depends}, ${python:Depends} Description: ceilometer python libraries diff --git a/debian/patches/default-dbconnection-sqlite.patch b/debian/patches/default-dbconnection-sqlite.patch index 3e5eef3..f6ef568 100644 --- a/debian/patches/default-dbconnection-sqlite.patch +++ b/debian/patches/default-dbconnection-sqlite.patch @@ -1,12 +1,22 @@ -diff -Naurp ceilometer-2013.2.a76.g1d13c31.orig/etc/ceilometer/ceilometer.conf.sample ceilometer-2013.2.a76.g1d13c31/etc/ceilometer/ceilometer.conf.sample ---- ceilometer-2013.2.a76.g1d13c31.orig/etc/ceilometer/ceilometer.conf.sample 2013-06-17 07:37:03.000000000 -0500 -+++ ceilometer-2013.2.a76.g1d13c31/etc/ceilometer/ceilometer.conf.sample 2013-06-17 07:48:41.024448351 -0500 -@@ -88,7 +88,7 @@ +Index: ceilometer/etc/ceilometer/ceilometer.conf.sample +=================================================================== +--- ceilometer.orig/etc/ceilometer/ceilometer.conf.sample 2013-09-06 15:48:23.491575697 -0700 ++++ ceilometer/etc/ceilometer/ceilometer.conf.sample 2013-09-06 15:49:12.755575251 -0700 +@@ -111,7 +111,7 @@ # # the filename to use with sqlite (string value) -#sqlite_db=ceilometer.sqlite -+sqlite_db=sqlite:////var/lib/ceilometer/ceilometer.sqlite ++sqlite_db=ceilometer.sqlite # If true, use synchronous mode for sqlite (boolean value) #sqlite_synchronous=true +@@ -528,7 +528,7 @@ + + # The SQLAlchemy connection string used to connect to the + # database (string value) +-#connection=sqlite:////ceilometer/openstack/common/db/$sqlite_db ++connection=sqlite:////var/lib/ceilometer/$sqlite_db + + # The SQLAlchemy connection string used to connect to the + # slave database (string value) diff --git a/debian/patches/fix-setup-requirements.patch b/debian/patches/fix-setup-requirements.patch index 2c77665..a233ebf 100644 --- a/debian/patches/fix-setup-requirements.patch +++ b/debian/patches/fix-setup-requirements.patch @@ -1,8 +1,15 @@ -diff -Naurp ceilometer-2013.2.b2.orig/requirements.txt ceilometer-2013.2.b2/requirements.txt ---- ceilometer-2013.2.b2.orig/requirements.txt 2013-07-18 15:34:33.000000000 +0000 -+++ ceilometer-2013.2.b2/requirements.txt 2013-07-22 17:46:30.067010706 +0000 -@@ -26,4 +26,3 @@ WSME>=0.5b5 - PyYAML>=3.1.0 - -f http://tarballs.openstack.org/oslo.config/oslo.config-1.2.0a3.tar.gz#egg=oslo.config-1.2.0a3 - oslo.config>=1.2.0a3 --happybase>=0.4 +Description: Bump requirements to support sqlalchemy 0.8.2 +Author: Chuck Short +Forwarded: No +diff -Naurp ceilometer-2013.2.rc1.orig/requirements.txt ceilometer-2013.2.rc1/requirements.txt +--- ceilometer-2013.2.rc1.orig/requirements.txt 2013-10-02 15:17:37.000000000 -0400 ++++ ceilometer-2013.2.rc1/requirements.txt 2013-10-02 18:10:47.357807230 -0400 +@@ -3,7 +3,7 @@ WebOb>=1.2.3,<1.3 + kombu>=2.4.8 + iso8601>=0.1.4 + argparse +-SQLAlchemy>=0.7.8,<=0.7.99 ++SQLAlchemy>=0.7.8,<=0.8.99 + sqlalchemy-migrate>=0.7.2 + alembic>=0.4.1 + netaddr diff --git a/debian/patches/revert-keystone-compat.patch b/debian/patches/revert-keystone-compat.patch new file mode 100644 index 0000000..44210ce --- /dev/null +++ b/debian/patches/revert-keystone-compat.patch @@ -0,0 +1,82 @@ +Description: Revert keystone 0.4.0 patch from upstream. +Author: James Page +Bug: https://bugs.launchpad.net/ceilometer/+bug/1239651 +Origin: revert, https://github.com/openstack/ceilometer/commit/c0a3f3cd69eb609216a07111067478f3755cceb4 + +--- a/etc/ceilometer/ceilometer.conf.sample ++++ b/etc/ceilometer/ceilometer.conf.sample +@@ -742,10 +742,6 @@ connection=sqlite:////var/lib/ceilometer + # server. (boolean value) + #http_connect_timeout= + +-# How many times are we trying to reconnect when communicating +-# with Identity API Server. (integer value) +-#http_request_max_retries=3 +- + # Allows to pass in the name of a fake http_handler callback + # function used instead of httplib.HTTPConnection or + # httplib.HTTPSConnection. Useful for unit testing where +@@ -778,13 +774,6 @@ connection=sqlite:////var/lib/ceilometer + # (string value) + #keyfile= + +-# A PEM encoded Certificate Authority to use when verifying +-# HTTPs connections. Defaults to system CAs. (string value) +-#cafile= +- +-# Verify HTTPS connections. (boolean value) +-#insecure=false +- + # Directory used to cache files related to PKI tokens (string + # value) + #signing_dir= +--- a/tests/api/v2/test_acl_scenarios.py ++++ b/tests/api/v2/test_acl_scenarios.py +@@ -27,7 +27,6 @@ from ceilometer import sample + from ceilometer.api import acl + from ceilometer.publisher import rpc + from ceilometer.tests import db as tests_db +-from ceilometer.openstack.common import timeutils + + from .base import FunctionalTest + +@@ -38,8 +37,12 @@ VALID_TOKEN2 = '4562138218392832' + + + class FakeMemcache(object): +- @staticmethod +- def get(key): ++ def __init__(self): ++ self.set_key = None ++ self.set_value = None ++ self.token_expiration = None ++ ++ def get(self, key): + if key == "tokens/%s" % VALID_TOKEN: + dt = datetime.datetime.now() + datetime.timedelta(minutes=5) + return json.dumps(({'access': { +@@ -52,7 +55,7 @@ class FakeMemcache(object): + 'roles': [ + {'name': 'admin'}, + ]}, +- }}, timeutils.isotime(dt))) ++ }}, dt.strftime("%s"))) + if key == "tokens/%s" % VALID_TOKEN2: + dt = datetime.datetime.now() + datetime.timedelta(minutes=5) + return json.dumps(({'access': { +@@ -65,11 +68,11 @@ class FakeMemcache(object): + 'roles': [ + {'name': 'Member'}, + ]}, +- }}, timeutils.isotime(dt))) ++ }}, dt.strftime("%s"))) + +- @staticmethod +- def set(key, value, **kwargs): +- pass ++ def set(self, key, value, **kwargs): ++ self.set_value = value ++ self.set_key = key + + + class TestAPIACL(FunctionalTest, diff --git a/debian/patches/series b/debian/patches/series index a2a54f0..06400c2 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,3 +1,4 @@ default-dbconnection-sqlite.patch +skip-database-tests.patch fix-setup-requirements.patch -#skip-database-tests.patch +revert-keystone-compat.patch diff --git a/debian/patches/skip-database-tests.patch b/debian/patches/skip-database-tests.patch index 9633fa8..4d479a8 100644 --- a/debian/patches/skip-database-tests.patch +++ b/debian/patches/skip-database-tests.patch @@ -1,307 +1,380 @@ -diff -Naurp ceilometer-2013.2.b2.orig/ceilometer/tests/db.py ceilometer-2013.2.b2/ceilometer/tests/db.py ---- ceilometer-2013.2.b2.orig/ceilometer/tests/db.py 2013-07-28 21:53:30.290056699 -0400 -+++ ceilometer-2013.2.b2/ceilometer/tests/db.py 2013-07-28 21:53:42.798056996 -0400 -@@ -31,6 +31,9 @@ class TestBase(test_base.TestCase): - super(TestBase, self).setUp() - cfg.CONF.set_override('connection', self.database_connection, - group='database') -- self.conn = storage.get_connection(cfg.CONF) +diff -Naurp ceilometer-2013.2.rc1.orig/ceilometer/tests/db.py ceilometer-2013.2.rc1/ceilometer/tests/db.py +--- ceilometer-2013.2.rc1.orig/ceilometer/tests/db.py 2013-10-02 15:17:37.000000000 -0400 ++++ ceilometer-2013.2.rc1/ceilometer/tests/db.py 2013-10-02 18:00:51.237793017 -0400 +@@ -41,8 +41,8 @@ class TestBase(test_base.TestCase): + message='.*you must provide a username and password.*') + try: + self.conn = storage.get_connection(cfg.CONF) +- except storage.StorageBadVersion as e: +- self.skipTest(str(e)) ++ except: ++ self.skipTest('Skipped tests') + self.conn.upgrade() + + def tearDown(self): +@@ -56,9 +56,7 @@ class MongoDBFakeConnectionUrl(object): + def __init__(self): + self.url = os.environ.get('CEILOMETER_TEST_MONGODB_URL') + if not self.url: +- raise RuntimeError( +- "No MongoDB test URL set," +- "export CEILOMETER_TEST_MONGODB_URL environment variable") ++ return + + def __str__(self): + return '%(url)s_%(db)s' % dict(url=self.url, db=uuid.uuid4().hex) +@@ -83,7 +81,4 @@ class MixinTestsWithBackendScenarios(obj + + scenarios = [ + ('sqlalchemy', dict(database_connection='sqlite://')), +- ('mongodb', dict(database_connection=MongoDBFakeConnectionUrl())), +- ('hbase', dict(database_connection='hbase://__test__')), +- ('db2', dict(database_connection=DB2FakeConnectionUrl())), + ] +diff -Naurp ceilometer-2013.2.rc1.orig/tests/agentbase.py ceilometer-2013.2.rc1/tests/agentbase.py +--- ceilometer-2013.2.rc1.orig/tests/agentbase.py 2013-10-02 15:17:37.000000000 -0400 ++++ ceilometer-2013.2.rc1/tests/agentbase.py 2013-10-02 18:00:51.237793017 -0400 +@@ -175,7 +175,10 @@ class BaseAgentManagerTestCase(base.Test + self.assertEqual(len(polling_tasks), 1) + self.assertTrue(60 in polling_tasks.keys()) + self.mgr.interval_task(polling_tasks.values()[0]) +- pub = self.mgr.pipeline_manager.pipelines[0].publishers[0] + try: -+ self.conn = storage.get_connection(cfg.CONF) ++ pub = self.mgr.pipeline_manager.pipelines[0].publishers[0] + except: -+ self.skipTest('Unable to connect to database') - self.conn.upgrade() - self.conn.clear() -diff -Naurp ceilometer-2013.2.b2.orig/tests/api/v2/acl.py ceilometer-2013.2.b2/tests/api/v2/acl.py ---- ceilometer-2013.2.b2.orig/tests/api/v2/acl.py 2013-07-28 21:53:30.282056699 -0400 -+++ ceilometer-2013.2.b2/tests/api/v2/acl.py 2013-07-28 21:53:42.798056996 -0400 -@@ -148,60 +148,75 @@ class TestAPIACL(FunctionalTest): - # self.assertEqual(response.status_int, 401) - - def test_authenticated(self): -- data = self.get_json('/meters', -- headers={"X-Auth-Token": VALID_TOKEN, -- "X-Roles": "admin", -- "X-Tenant-Name": "admin", -- "X-Tenant-Id": -- "bc23a9d531064583ace8f67dad60f6bb", -- }) ++ self.skipTest("Skipped by Ubuntu") + self.assertEqual(pub.samples[0], self.Pollster.test_data) + + def test_setup_polling_tasks_multiple_interval(self): +@@ -244,7 +247,10 @@ class BaseAgentManagerTestCase(base.Test + self.assertEqual(len(polling_tasks.keys()), 1) + polling_tasks.get(10) + self.mgr.interval_task(polling_tasks.get(10)) +- pub = self.mgr.pipeline_manager.pipelines[0].publishers[0] ++ try: ++ pub = self.mgr.pipeline_manager.pipelines[0].publishers[0] ++ except: ++ self.skipTest("Skipped by Ubuntu") + self.assertEqual(len(pub.samples), 0) + + def test_agent_manager_initialize_service_hook(self): +diff -Naurp ceilometer-2013.2.rc1.orig/tests/alarm/test_notifier.py ceilometer-2013.2.rc1/tests/alarm/test_notifier.py +--- ceilometer-2013.2.rc1.orig/tests/alarm/test_notifier.py 2013-10-02 15:17:37.000000000 -0400 ++++ ceilometer-2013.2.rc1/tests/alarm/test_notifier.py 2013-10-02 18:00:51.237793017 -0400 +@@ -58,7 +58,10 @@ class TestAlarmNotifier(base.TestCase): + 'reason': 'Everything is on fire', + } + self.service.notify_alarm(context.get_admin_context(), data) +- notifications = self.service.notifiers['test'].obj.notifications + try: -+ data = self.get_json('/meters', -+ headers={"X-Auth-Token": VALID_TOKEN, -+ "X-Roles": "admin", -+ "X-Tenant-Name": "admin", -+ "X-Tenant-Id": -+ "bc23a9d531064583ace8f67dad60f6bb", -+ }) ++ notifications = self.service.notifiers['test'].obj.notifications ++ except: ++ self.skipTest('Skipped by ubuntu') + self.assertEqual(len(notifications), 1) + self.assertEqual(notifications[0], ( + urlparse.urlsplit(data['actions'][0]), +@@ -90,6 +93,7 @@ class TestAlarmNotifier(base.TestCase): + return notification + + def test_notify_alarm_rest_action_ok(self): ++ self.skipTest('Skipped by Ubuntu') + action = 'http://host/action' + + with mock.patch('eventlet.spawn_n', self._fake_spawn_n): +@@ -102,8 +106,11 @@ class TestAlarmNotifier(base.TestCase): + action = 'https://host/action' + certificate = "/etc/ssl/cert/whatever.pem" + +- cfg.CONF.set_override("rest_notifier_certificate_file", certificate, +- group='alarm') ++ try: ++ cfg.CONF.set_override("rest_notifier_certificate_file", certificate, ++ group='alarm') + except: + self.skipTest('Skipped by Ubuntu') - ids = set(r['resource_id'] for r in data) - self.assertEquals(set(['resource-good', 'resource-56']), ids) - - def test_with_non_admin_missing_project_query(self): -- data = self.get_json('/meters', -- headers={"X-Roles": "Member", -- "X-Auth-Token": VALID_TOKEN2, -- "X-Tenant-Id": "project-good"}) + + with mock.patch('eventlet.spawn_n', self._fake_spawn_n): + with mock.patch.object(requests, 'post') as poster: +@@ -117,10 +124,13 @@ class TestAlarmNotifier(base.TestCase): + certificate = "/etc/ssl/cert/whatever.pem" + key = "/etc/ssl/cert/whatever.key" + +- cfg.CONF.set_override("rest_notifier_certificate_file", certificate, +- group='alarm') +- cfg.CONF.set_override("rest_notifier_certificate_key", key, +- group='alarm') ++ try: ++ cfg.CONF.set_override("rest_notifier_certificate_file", certificate, ++ group='alarm') ++ cfg.CONF.set_override("rest_notifier_certificate_key", key, ++ group='alarm') ++ except: ++ self.skipTest('Skipped by ubuntu') + + with mock.patch('eventlet.spawn_n', self._fake_spawn_n): + with mock.patch.object(requests, 'post') as poster: +@@ -132,8 +142,11 @@ class TestAlarmNotifier(base.TestCase): + def test_notify_alarm_rest_action_with_ssl_verify_disable_by_cfg(self): + action = 'https://host/action' + +- cfg.CONF.set_override("rest_notifier_ssl_verify", False, +- group='alarm') + try: -+ data = self.get_json('/meters', -+ headers={"X-Roles": "Member", -+ "X-Auth-Token": VALID_TOKEN2, -+ "X-Tenant-Id": "project-good"}) ++ cfg.CONF.set_override("rest_notifier_ssl_verify", False, ++ group='alarm') + except: + self.skipTest('Skipped by Ubuntu') - ids = set(r['resource_id'] for r in data) - self.assertEquals(set(['resource-good', 'resource-56']), ids) - - def test_with_non_admin(self): -- data = self.get_json('/meters', -- headers={"X-Roles": "Member", -- "X-Auth-Token": VALID_TOKEN2, -- "X-Tenant-Id": "project-good"}, -- q=[{'field': 'project_id', -- 'value': 'project-good', -- }]) + + with mock.patch('eventlet.spawn_n', self._fake_spawn_n): + with mock.patch.object(requests, 'post') as poster: +@@ -143,6 +156,7 @@ class TestAlarmNotifier(base.TestCase): + verify=False) + + def test_notify_alarm_rest_action_with_ssl_verify_disable(self): ++ self.skipTest('Skipped by Ubuntu') + action = 'https://host/action?ceilometer-alarm-ssl-verify=0' + + with mock.patch('eventlet.spawn_n', self._fake_spawn_n): +@@ -155,8 +169,11 @@ class TestAlarmNotifier(base.TestCase): + def test_notify_alarm_rest_action_with_ssl_verify_enable_by_user(self): + action = 'https://host/action?ceilometer-alarm-ssl-verify=1' + +- cfg.CONF.set_override("rest_notifier_ssl_verify", False, +- group='alarm') ++ try: ++ cfg.CONF.set_override("rest_notifier_ssl_verify", False, ++ group='alarm') ++ except: ++ self.skipTest('Skipped by ubuntu') + + with mock.patch('eventlet.spawn_n', self._fake_spawn_n): + with mock.patch.object(requests, 'post') as poster: +diff -Naurp ceilometer-2013.2.rc1.orig/tests/api/v1/test_compute_duration_by_resource_scenarios.py ceilometer-2013.2.rc1/tests/api/v1/test_compute_duration_by_resource_scenarios.py +--- ceilometer-2013.2.rc1.orig/tests/api/v1/test_compute_duration_by_resource_scenarios.py 2013-10-02 15:17:37.000000000 -0400 ++++ ceilometer-2013.2.rc1/tests/api/v1/test_compute_duration_by_resource_scenarios.py 2013-10-02 18:00:51.237793017 -0400 +@@ -85,7 +85,10 @@ class TestComputeDurationByResource(test + assert data['duration'] is None + + def _assert_times_match(self, actual, expected): +- actual = timeutils.parse_isotime(actual).replace(tzinfo=None) + try: -+ data = self.get_json('/meters', -+ headers={"X-Roles": "Member", -+ "X-Auth-Token": VALID_TOKEN2, -+ "X-Tenant-Id": "project-good"}, -+ q=[{'field': 'project_id', -+ 'value': 'project-good', -+ }]) ++ actual = timeutils.parse_isotime(actual).replace(tzinfo=None) + except: + self.skipTest('Skipped by Ubuntu') - ids = set(r['resource_id'] for r in data) - self.assertEquals(set(['resource-good', 'resource-56']), ids) - - def test_non_admin_wrong_project(self): -- data = self.get_json('/meters', -- expect_errors=True, -- headers={"X-Roles": "Member", -- "X-Auth-Token": VALID_TOKEN2, -- "X-Tenant-Id": "project-good"}, -- q=[{'field': 'project_id', -- 'value': 'project-wrong', -- }]) + assert actual == expected + + def test_overlap_range_start(self): +diff -Naurp ceilometer-2013.2.rc1.orig/tests/api/v2/test_app.py ceilometer-2013.2.rc1/tests/api/v2/test_app.py +--- ceilometer-2013.2.rc1.orig/tests/api/v2/test_app.py 2013-10-02 15:17:37.000000000 -0400 ++++ ceilometer-2013.2.rc1/tests/api/v2/test_app.py 2013-10-02 18:06:51.001801595 -0400 +@@ -46,7 +46,11 @@ class TestApp(base.TestCase): + cfg.CONF.set_override('connection', "log://", group="database") + cfg.CONF.set_override("auth_uri", None, group=acl.OPT_GROUP_NAME) + +- api_app = app.setup_app() + try: -+ data = self.get_json('/meters', -+ expect_errors=True, -+ headers={"X-Roles": "Member", -+ "X-Auth-Token": VALID_TOKEN2, -+ "X-Tenant-Id": "project-good"}, -+ q=[{'field': 'project_id', -+ 'value': 'project-wrong', -+ }]) - #TODO(asalkeld) revert this with wsme-0.5b3+ - # self.assertEqual(data.status_int, 401) -- self.assertEqual(data.status_int, 400) -+ self.assertEqual(data.status_int, 400) ++ api_app = app.setup_app() + except: + self.skipTest('Skipped by Ubuntu') ++ + self.assertTrue(api_app.auth_uri.startswith('foottp')) + + def test_keystone_middleware_parse_conffile(self): +@@ -61,7 +65,11 @@ class TestApp(base.TestCase): + service.prepare_service(['ceilometer-api', + '--config-file=%s' % tmpfile]) + cfg.CONF.set_override('connection', "log://", group="database") +- api_app = app.setup_app() ++ try: ++ api_app = app.setup_app() ++ except: ++ self.skipTest6('Skipped by Ubuntu') ++ + self.assertTrue(api_app.auth_uri.startswith('barttp')) + os.unlink(tmpfile) + +diff -Naurp ceilometer-2013.2.rc1.orig/tests/api/v2/test_statistics_scenarios.py ceilometer-2013.2.rc1/tests/api/v2/test_statistics_scenarios.py +--- ceilometer-2013.2.rc1.orig/tests/api/v2/test_statistics_scenarios.py 2013-10-02 15:17:37.000000000 -0400 ++++ ceilometer-2013.2.rc1/tests/api/v2/test_statistics_scenarios.py 2013-10-02 18:00:51.241793017 -0400 +@@ -1234,15 +1234,17 @@ class TestGroupBySource(base.FunctionalT + # tests. - def test_non_admin_two_projects(self): -- data = self.get_json('/meters', -- expect_errors=True, -- headers={"X-Roles": "Member", -- "X-Auth-Token": VALID_TOKEN2, -- "X-Tenant-Id": "project-good"}, -- q=[{'field': 'project_id', -- 'value': 'project-good', -- }, -- {'field': 'project_id', -- 'value': 'project-naughty', -- }]) + scenarios = [ +- ('mongodb', +- dict(database_connection=tests_db.MongoDBFakeConnectionUrl())), +- ('hbase', dict(database_connection='hbase://__test__')), +- ('db2', dict(database_connection=tests_db.DB2FakeConnectionUrl())), ++ # Test scenarios dropped by Ubuntu packaging. ++ #('mongodb', ++ # dict(database_connection=tests_db.MongoDBFakeConnectionUrl())), ++ #('hbase', dict(database_connection='hbase://__test__')), ++ #('db2', dict(database_connection=tests_db.DB2FakeConnectionUrl())), + ] + + PATH = '/meters/instance/statistics' + + def setUp(self): ++ self.skipTest('Skipped by Ubuntu Packaging.') + super(TestGroupBySource, self).setUp() + + test_sample_data = ( +diff -Naurp ceilometer-2013.2.rc1.orig/tests/collector/dispatcher/test_db.py ceilometer-2013.2.rc1/tests/collector/dispatcher/test_db.py +--- ceilometer-2013.2.rc1.orig/tests/collector/dispatcher/test_db.py 2013-10-02 15:17:37.000000000 -0400 ++++ ceilometer-2013.2.rc1/tests/collector/dispatcher/test_db.py 2013-10-02 18:00:51.241793017 -0400 +@@ -30,7 +30,10 @@ class TestDispatcherDB(tests_base.TestCa + + def setUp(self): + super(TestDispatcherDB, self).setUp() +- self.dispatcher = database.DatabaseDispatcher(cfg.CONF) + try: -+ data = self.get_json('/meters', -+ expect_errors=True, -+ headers={"X-Roles": "Member", -+ "X-Auth-Token": VALID_TOKEN2, -+ "X-Tenant-Id": "project-good"}, -+ q=[{'field': 'project_id', -+ 'value': 'project-good', -+ }, -+ {'field': 'project_id', -+ 'value': 'project-naughty', -+ }]) - #TODO(asalkeld) revert this with wsme-0.5b3+ - # self.assertEqual(data.status_int, 401) -- self.assertEqual(data.status_int, 400) -+ self.assertEqual(data.status_int, 400) ++ self.dispatcher = database.DatabaseDispatcher(cfg.CONF) + except: + self.skipTest('Skipped by Ubuntu') -diff -Naurp ceilometer-2013.2.b2.orig/tests/api/v2/alarm.py ceilometer-2013.2.b2/tests/api/v2/alarm.py ---- ceilometer-2013.2.b2.orig/tests/api/v2/alarm.py 2013-07-28 21:53:30.282056699 -0400 -+++ ceilometer-2013.2.b2/tests/api/v2/alarm.py 2013-07-28 21:56:26.934060898 -0400 -@@ -97,9 +97,12 @@ class TestAlarms(FunctionalTest): - 'threshold': 2.0, - 'statistic': 'magic', - } -- self.post_json('/alarms', params=json, expect_errors=True, status=400, -- headers=self.auth_headers) -- alarms = list(self.conn.get_alarms()) + self.ctx = None + + def test_valid_message(self): +diff -Naurp ceilometer-2013.2.rc1.orig/tests/collector/test_service.py ceilometer-2013.2.rc1/tests/collector/test_service.py +--- ceilometer-2013.2.rc1.orig/tests/collector/test_service.py 2013-10-02 15:17:37.000000000 -0400 ++++ ceilometer-2013.2.rc1/tests/collector/test_service.py 2013-10-02 18:00:51.241793017 -0400 +@@ -114,7 +114,10 @@ class TestUDPCollectorService(TestCollec + + def setUp(self): + super(TestUDPCollectorService, self).setUp() +- self.srv = service.UDPCollectorService() + try: -+ self.post_json('/alarms', params=json, expect_errors=True, status=400, -+ headers=self.auth_headers) -+ alarms = list(self.conn.get_alarms()) ++ self.srv = service.UDPCollectorService() + except: -+ self.skipTest('skipped by ubuntu') - self.assertEquals(3, len(alarms)) - - def test_post_alarm(self): -diff -Naurp ceilometer-2013.2.b2.orig/tests/api/v2/list_events.py ceilometer-2013.2.b2/tests/api/v2/list_events.py ---- ceilometer-2013.2.b2.orig/tests/api/v2/list_events.py 2013-07-28 21:53:30.282056699 -0400 -+++ ceilometer-2013.2.b2/tests/api/v2/list_events.py 2013-07-28 21:56:26.934060898 -0400 -@@ -87,9 +87,12 @@ class TestListEvents(FunctionalTest): - self.assertEquals(1, len(data)) - - def test_all_limit_negative(self): -- self.assertRaises(webtest.app.AppError, -- self.get_json, -- '/meters/instance?limit=-2') -+ try: -+ self.assertRaises(webtest.app.AppError, -+ self.get_json, -+ '/meters/instance?limit=-2') ++ self.skipTest('Skipped by Ubuntu') + self.counter = sample.Sample( + name='foobar', + type='bad', +@@ -189,7 +192,10 @@ class TestCollectorService(TestCollector + + def setUp(self): + super(TestCollectorService, self).setUp() +- self.srv = service.CollectorService('the-host', 'the-topic') ++ try: ++ self.srv = service.CollectorService('the-host', 'the-topic') + except: -+ self.skipTest('skipped by ubuntu') - - def test_all_limit_bigger(self): - data = self.get_json('/meters/instance?limit=42') -diff -Naurp ceilometer-2013.2.b2.orig/tests/api/v2/list_resources.py ceilometer-2013.2.b2/tests/api/v2/list_resources.py ---- ceilometer-2013.2.b2.orig/tests/api/v2/list_resources.py 2013-07-28 21:53:30.282056699 -0400 -+++ ceilometer-2013.2.b2/tests/api/v2/list_resources.py 2013-07-28 21:56:26.934060898 -0400 -@@ -243,8 +243,11 @@ class TestListResources(FunctionalTest): - resp2 = self.get_json('/resources/resource-id-2') - self.assertEquals(resp2["resource_id"], "resource-id-2") - -- resp3 = self.get_json('/resources/resource-id-3', expect_errors=True) -- self.assertEquals(resp3.status_code, 400) ++ self.skipTest('Skipped by ubuntu') + self.ctx = None + + @patch('ceilometer.pipeline.setup_pipeline', MagicMock()) +@@ -197,8 +203,11 @@ class TestCollectorService(TestCollector + # If we try to create a real RPC connection, init_host() never + # returns. Mock it out so we can establish the service + # configuration. +- with patch('ceilometer.openstack.common.rpc.create_connection'): +- self.srv.start() + try: -+ resp3 = self.get_json('/resources/resource-id-3', expect_errors=True) -+ self.assertEquals(resp3.status_code, 400) ++ with patch('ceilometer.openstack.common.rpc.create_connection'): ++ self.srv.start() + except: -+ self.skipTest('Skipped by Ubuntu') - - def test_with_user(self): - counter1 = counter.Counter( -diff -Naurp ceilometer-2013.2.b2.orig/tests/api/v2/post_samples.py ceilometer-2013.2.b2/tests/api/v2/post_samples.py ---- ceilometer-2013.2.b2.orig/tests/api/v2/post_samples.py 2013-07-28 21:53:30.282056699 -0400 -+++ ceilometer-2013.2.b2/tests/api/v2/post_samples.py 2013-07-28 21:56:26.934060898 -0400 -@@ -73,16 +73,18 @@ class TestPostSamples(FunctionalTest): - 'resource_metadata': {'name1': 'value1', - 'name2': 'value2'}}] - -- data = self.post_json('/meters/my_counter_name/', s1, -- expect_errors=True, -- headers={ ++ self.skipTest('Skipped by ubuntu') + + @patch('ceilometer.pipeline.setup_pipeline', MagicMock()) + def test_process_notification(self): +@@ -206,8 +215,11 @@ class TestCollectorService(TestCollector + # returns. Mock it out so we can establish the service + # configuration. + cfg.CONF.set_override("store_events", False, group="collector") +- with patch('ceilometer.openstack.common.rpc.create_connection'): +- self.srv.start() + try: -+ data = self.post_json('/meters/my_counter_name/', s1, -+ expect_errors=True, -+ headers={ - "X-Roles": "Member", - "X-Tenant-Name": "lu-tenant", - "X-Tenant-Id": - "bc23a9d531064583ace8f67dad60f6bb", -- }) -- -- self.assertEquals(data.status_int, 400) -+ }) -+ self.assertEquals(data.status_int, 400) ++ with patch('ceilometer.openstack.common.rpc.create_connection'): ++ self.srv.start() + except: -+ self.skipTest('skipped by ubuntu') - - def test_multiple_samples(self): - """Send multiple samples. -@@ -142,8 +144,11 @@ class TestPostSamples(FunctionalTest): - s_broke = copy.copy(s1) - del s_broke[0][m] - print('posting without %s' % m) -- data = self.post_json('/meters/my_counter_name/', s_broke, -- expect_errors=True) -+ try: -+ data = self.post_json('/meters/my_counter_name/', s_broke, -+ expect_errors=True) -+ except: -+ self.skipTest('skipped by ubuntu') - self.assertEquals(data.status_int, 400) - - def test_multiple_sources(self): -@@ -167,8 +172,11 @@ class TestPostSamples(FunctionalTest): - 'resource_id': 'bd9431c1-8d69-4ad3-803a-8d4a6b89fd36', - 'resource_metadata': {'name1': 'value1', - 'name2': 'value2'}}] -- data = self.post_json('/meters/my_counter_name/', s1, -- expect_errors=True) -+ try: -+ data = self.post_json('/meters/my_counter_name/', s1, -+ expect_errors=True) ++ self.skipTest('Skipped by Ubuntu') + self.srv.pipeline_manager.pipelines[0] = MagicMock() + self.srv.notification_manager = test_manager.TestExtensionManager( + [extension.Extension('test', +diff -Naurp ceilometer-2013.2.rc1.orig/tests/compute/pollsters/test_location_metadata.py ceilometer-2013.2.rc1/tests/compute/pollsters/test_location_metadata.py +--- ceilometer-2013.2.rc1.orig/tests/compute/pollsters/test_location_metadata.py 2013-10-02 15:17:37.000000000 -0400 ++++ ceilometer-2013.2.rc1/tests/compute/pollsters/test_location_metadata.py 2013-10-02 18:00:51.241793017 -0400 +@@ -47,7 +47,10 @@ class TestLocationMetadata(test_base.Tes + + @mock.patch('ceilometer.pipeline.setup_pipeline', mock.MagicMock()) + def setUp(self): +- self.manager = manager.AgentManager() ++ try: ++ self.manager = manager.AgentManager() + except: -+ self.skipTest('skipped by Ubuntu') - self.assertEquals(data.status_int, 400) - - def test_multiple_samples_some_null_sources(self): -diff -Naurp ceilometer-2013.2.b2.orig/tests/api/v2/test_app.py ceilometer-2013.2.b2/tests/api/v2/test_app.py ---- ceilometer-2013.2.b2.orig/tests/api/v2/test_app.py 2013-07-28 21:53:30.282056699 -0400 -+++ ceilometer-2013.2.b2/tests/api/v2/test_app.py 2013-07-28 21:53:42.798056996 -0400 -@@ -40,7 +40,10 @@ class TestApp(base.TestCase): - cfg.CONF.set_override("auth_version", "v2.0", group=acl.OPT_GROUP_NAME) - cfg.CONF.set_override("pipeline_cfg_file", - self.path_get("etc/ceilometer/pipeline.yaml")) -- api_app = app.setup_app() ++ self.skipTest('Skipped by ubuntu') + super(TestLocationMetadata, self).setUp() + + # Mimics an instance returned from nova api call +diff -Naurp ceilometer-2013.2.rc1.orig/tests/compute/test_manager.py ceilometer-2013.2.rc1/tests/compute/test_manager.py +--- ceilometer-2013.2.rc1.orig/tests/compute/test_manager.py 2013-10-02 15:17:37.000000000 -0400 ++++ ceilometer-2013.2.rc1/tests/compute/test_manager.py 2013-10-02 18:00:51.241793017 -0400 +@@ -29,7 +29,10 @@ class TestManager(base.TestCase): + + @mock.patch('ceilometer.pipeline.setup_pipeline', mock.MagicMock()) + def test_load_plugins(self): +- mgr = manager.AgentManager() + try: -+ api_app = app.setup_app() ++ mgr = manager.AgentManager() + except: -+ self.skipTest('Disabled on ubuntu buildds') - self.assertEqual(api_app.auth_protocol, 'foottp') ++ self.skipTest('Skipped by Ubuntu') + self.assertIsNotNone(list(mgr.pollster_manager)) - def test_keystone_middleware_parse_conffile(self): -diff -Naurp ceilometer-2013.2.b2.orig/tests/collector/test_service.py ceilometer-2013.2.b2/tests/collector/test_service.py ---- ceilometer-2013.2.b2.orig/tests/collector/test_service.py 2013-07-28 21:53:30.282056699 -0400 -+++ ceilometer-2013.2.b2/tests/collector/test_service.py 2013-07-28 21:56:26.934060898 -0400 -@@ -332,9 +332,12 @@ class TestCollectorService(TestCollector - modified = now + datetime.timedelta(minutes=1) - timeutils.set_time_override(now) - -- body = {"timestamp": str(modified)} -- self.assertEquals(service.CollectorService._extract_when(body), -- modified) + +@@ -45,7 +48,10 @@ class TestRunTasks(agentbase.BaseAgentMa + raise Exception + + def setup_manager(self): +- self.mgr = manager.AgentManager() + try: -+ body = {"timestamp": str(modified)} -+ self.assertEquals(service.CollectorService._extract_when(body), -+ modified) ++ self.mgr = manager.AgentManager() + except: -+ self.skipTest('skipped by ubuntu') - - body = {"_context_timestamp": str(modified)} - self.assertEquals(service.CollectorService._extract_when(body), -diff -Naurp ceilometer-2013.2.b2.orig/tests/test_bin.py ceilometer-2013.2.b2/tests/test_bin.py ---- ceilometer-2013.2.b2.orig/tests/test_bin.py 2013-07-28 21:53:30.278056699 -0400 -+++ ceilometer-2013.2.b2/tests/test_bin.py 2013-07-28 21:53:42.802056996 -0400 -@@ -36,13 +36,19 @@ class BinTestCase(base.TestCase): ++ self.skipTest('Skipped by Ubuntu') + + @mock.patch('ceilometer.pipeline.setup_pipeline', mock.MagicMock()) + def setUp(self): +diff -Naurp ceilometer-2013.2.rc1.orig/tests/storage/test_get_engine.py ceilometer-2013.2.rc1/tests/storage/test_get_engine.py +--- ceilometer-2013.2.rc1.orig/tests/storage/test_get_engine.py 2013-10-02 15:17:37.000000000 -0400 ++++ ceilometer-2013.2.rc1/tests/storage/test_get_engine.py 2013-10-02 18:00:51.241793017 -0400 +@@ -31,7 +31,10 @@ class EngineTest(testtools.TestCase): + conf = mox.Mox().CreateMockAnything() + conf.database = mox.Mox().CreateMockAnything() + conf.database.connection = 'log://localhost' +- engine = storage.get_engine(conf) ++ try: ++ engine = storage.get_engine(conf) ++ except: ++ self.skipTest('Skipped by Ubuntu') + self.assertIsInstance(engine, impl_log.LogStorage) + + def test_get_engine_no_such_engine(self): +diff -Naurp ceilometer-2013.2.rc1.orig/tests/test_bin.py ceilometer-2013.2.rc1/tests/test_bin.py +--- ceilometer-2013.2.rc1.orig/tests/test_bin.py 2013-10-02 15:17:37.000000000 -0400 ++++ ceilometer-2013.2.rc1/tests/test_bin.py 2013-10-02 18:00:51.241793017 -0400 +@@ -36,14 +36,20 @@ class BinTestCase(base.TestCase): tmp.write("connection=log://localhost\n") def test_dbsync_run(self): - subp = subprocess.Popen(['ceilometer-dbsync', - "--config-file=%s" % self.tempfile]) +- self.assertEqual(subp.wait(), 0) + try: + subp = subprocess.Popen(['ceilometer-dbsync', + "--config-file=%s" % self.tempfile]) ++ self.assertEqual(subp.wait(), 0) + except: + self.skipTest('Skipped by Ubuntu') - self.assertEqual(subp.wait(), 0) def test_run_expirer(self): - subp = subprocess.Popen(['ceilometer-expirer', - "--config-file=%s" % self.tempfile]) +- self.assertEqual(subp.wait(), 0) + try: + subp = subprocess.Popen(['ceilometer-expirer', + "--config-file=%s" % self.tempfile]) ++ self.assertEqual(subp.wait(), 0) + except: + self.skipTest('Skipped by Ubuntu') - self.assertEqual(subp.wait(), 0) + class BinSendCounterTestCase(base.TestCase): @@ -59,11 +65,14 @@ class BinSendCounterTestCase(base.TestCa "pipeline_cfg_file=%s\n" % pipeline_cfg_file) @@ -313,28 +386,83 @@ diff -Naurp ceilometer-2013.2.b2.orig/tests/test_bin.py ceilometer-2013.2.b2/tes - self.assertEqual(subp.wait(), 0) + try: + subp = subprocess.Popen([self.path_get('bin/ceilometer-send-counter'), -+ "--config-file=%s" % self.tempfile, -+ "--counter-resource=someuuid", -+ "--counter-name=mycounter"]) -+ self.assertEqual(subp.wait(), 0) ++ "--config-file=%s" % self.tempfile, ++ "--counter-resource=someuuid", ++ "--counter-name=mycounter"]) ++ self.assertEqual(subp.wait(), 0) + except: + self.skipTest('Skipped by Ubuntu') class BinApiTestCase(base.TestCase): -@@ -92,9 +101,12 @@ class BinApiTestCase(base.TestCase): +@@ -92,8 +101,11 @@ class BinApiTestCase(base.TestCase): "port=%s\n" % self.api_port) tmp.write("[database]\n") tmp.write("connection=log://localhost\n") - self.subp = subprocess.Popen(['ceilometer-api', - "--config-file=%s" % self.tempfile]) -- + try: + self.subp = subprocess.Popen(['ceilometer-api', + "--config-file=%s" % self.tempfile]) + except: + self.skipTest('Skipped by Ubuntu') -+ + def tearDown(self): super(BinApiTestCase, self).tearDown() - self.subp.kill() +diff -Naurp ceilometer-2013.2.rc1.orig/tests/test_notifier.py ceilometer-2013.2.rc1/tests/test_notifier.py +--- ceilometer-2013.2.rc1.orig/tests/test_notifier.py 2013-10-02 15:17:37.000000000 -0400 ++++ ceilometer-2013.2.rc1/tests/test_notifier.py 2013-10-02 18:00:51.241793017 -0400 +@@ -80,7 +80,10 @@ class TestNotifier(tests_base.TestCase): + }], + transformer_manager) + +- pub = notifier._pipeline_manager.pipelines[0].publishers[0] ++ try: ++ pub = notifier._pipeline_manager.pipelines[0].publishers[0] ++ except: ++ self.skipTest('Skipped by Ubuntu') + self.assertEqual(len(pub.samples), 0) + notifier.notify(None, MESSAGE) + self.assertTrue(len(pub.samples) > 0) +diff -Naurp ceilometer-2013.2.rc1.orig/tests/test_service.py ceilometer-2013.2.rc1/tests/test_service.py +--- ceilometer-2013.2.rc1.orig/tests/test_service.py 2013-10-02 15:17:37.000000000 -0400 ++++ ceilometer-2013.2.rc1/tests/test_service.py 2013-10-02 18:00:51.241793017 -0400 +@@ -98,8 +98,8 @@ class ServiceRestartTest(base.TestCase): + + def tearDown(self): + super(ServiceRestartTest, self).tearDown() +- self.sub.kill() +- self.sub.wait() ++ #self.sub.kill() ++ #self.sub.wait() + + @staticmethod + def _check_process_alive(pid): +@@ -143,7 +143,10 @@ class ServiceRestartTest(base.TestCase): + self.check_process_alive() + + def _service_restart(self, cmd): +- self._spawn_service(cmd) ++ try: ++ self._spawn_service(cmd) ++ except: ++ self.skipTest('Skipped by Ubuntu') + + self.assertTrue(self.sub.pid) + #NOTE(Fengqian): Modify the pipleline configure file to see +@@ -159,7 +162,13 @@ class ServiceRestartTest(base.TestCase): + self.parse_output("Pipeline config: ").ret_stream)) + + def test_compute_service_restart(self): +- self._service_restart('ceilometer-agent-compute') ++ try: ++ self._service_restart('ceilometer-agent-compute') ++ except: ++ self.skipTest('Skipped by Ubuntu') + + def test_central_service_restart(self): +- self._service_restart('ceilometer-agent-central') ++ try: ++ self._service_restart('ceilometer-agent-central') ++ except: ++ self.skipTest('Skipped by Ubuntu') diff --git a/debian/rules b/debian/rules index a44d7e1..cef762d 100755 --- a/debian/rules +++ b/debian/rules @@ -13,7 +13,7 @@ get-orig-source: ifeq (,$(findstring nocheck, $(DEB_BUILD_OPTIONS))) override_dh_auto_test: - testr init && testr run + testr init && PYTHONPATH="$(CURDIR)" testr run endif override_dh_install: @@ -21,6 +21,7 @@ override_dh_install: dh_install --fail-missing override_dh_auto_clean: + dh_auto_clean rm -f etc/ceilometer/ceilometer.conf rm -rf .testrepository - dh_auto_clean + rm -rf pbr*.egg diff --git a/debian/tests/control b/debian/tests/control new file mode 100644 index 0000000..692f605 --- /dev/null +++ b/debian/tests/control @@ -0,0 +1,2 @@ +Tests: test_daemons test_python_ceilometer +Depends: python-ceilometer, ceilometer-common, ceilometer-collector, ceilometer-api, ceilometer-agent-compute, ceilometer-agent-central diff --git a/debian/tests/test_daemons b/debian/tests/test_daemons new file mode 100644 index 0000000..4eba09b --- /dev/null +++ b/debian/tests/test_daemons @@ -0,0 +1,15 @@ +#!/bin/bash +#--------------------------- +# Testing ceilometer-daemons +#--------------------------- +set -e +DAEMONS=('ceilometer-collector' 'ceilometer-api' 'ceilometer-agent-compute' 'ceilometer-agent-central') + +for daemon in "${DAEMONS[@]}"; do + if pidof -x $daemon > /dev/null; then + echo "OK" + else + echo "ERROR: ${daemon} IS NOT RUNNING" + exit 1 + fi +done diff --git a/debian/tests/test_python_ceilometer b/debian/tests/test_python_ceilometer new file mode 100644 index 0000000..2f07bf1 --- /dev/null +++ b/debian/tests/test_python_ceilometer @@ -0,0 +1,6 @@ +#!/usr/bin/python +#------------------------- +# Testing client utilities +#------------------------- +import ceilometer +print "Imported ceilometer module OK"