From b69d3a0f1f70274aa55d6dae26866baa7e9d9bcd Mon Sep 17 00:00:00 2001 From: ZhiQiang Fan Date: Wed, 8 Apr 2015 10:29:16 +0800 Subject: [PATCH] pymongo 3.0 breaks ci gate we pass safe parameter to pymongo.MongoClient but this field is removed in 3.0. the default value is safe=True as of pymongo>=2.4[1]. this patch also cleans up residual ensure_index usage in tests which were leftover from when ttl was not native to mongodb[2] [1] http://emptysqua.re/blog/pymongos-new-default-safe-writes/ [2] I3d91fb08eb51ba6cfd5256abbeca43ed98321412 Closes-Bug: #1441393 Change-Id: I46f6ba28a4986c1f35b726c411d0804f3bb0cbda --- ceilometer/storage/mongo/utils.py | 3 +-- ceilometer/tests/storage/test_impl_mongodb.py | 11 +++++------ 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/ceilometer/storage/mongo/utils.py b/ceilometer/storage/mongo/utils.py index c14018b33b..efc090644c 100644 --- a/ceilometer/storage/mongo/utils.py +++ b/ceilometer/storage/mongo/utils.py @@ -257,8 +257,7 @@ class ConnectionPool(object): url, replicaSet=cfg.CONF.database.mongodb_replica_set)) else: - client = MongoProxy( - pymongo.MongoClient(url, safe=True)) + client = MongoProxy(pymongo.MongoClient(url)) return client except pymongo.errors.ConnectionFailure as e: LOG.warn(_('Unable to connect to the database server: ' diff --git a/ceilometer/tests/storage/test_impl_mongodb.py b/ceilometer/tests/storage/test_impl_mongodb.py index ffa099248f..28f6776cae 100644 --- a/ceilometer/tests/storage/test_impl_mongodb.py +++ b/ceilometer/tests/storage/test_impl_mongodb.py @@ -91,15 +91,15 @@ class IndexTest(tests_db.TestBase, # create a fake index and check it is deleted coll = getattr(conn.db, coll_name) index_name = '%s_ttl' % coll_name - coll.ensure_index('foo', name=index_name) self.CONF.set_override(ttl_opt, -1, group='database') conn.upgrade() - self.assertTrue(coll.ensure_index('foo', name=index_name)) - coll.drop_index(index_name) + self.assertNotIn(index_name, coll.index_information()) self.CONF.set_override(ttl_opt, 456789, group='database') conn.upgrade() - self.assertFalse(coll.ensure_index('foo', name=index_name)) + self.assertEqual(456789, + coll.index_information() + [index_name]['expireAfterSeconds']) def test_meter_ttl_index_absent(self): self._test_ttl_index_absent(self.conn, 'meter', @@ -114,14 +114,13 @@ class IndexTest(tests_db.TestBase, self.CONF.set_override(ttl_opt, 456789, group='database') conn.upgrade() index_name = '%s_ttl' % coll_name - self.assertFalse(coll.ensure_index('foo', name=index_name)) self.assertEqual(456789, coll.index_information() [index_name]['expireAfterSeconds']) self.CONF.set_override(ttl_opt, -1, group='database') conn.upgrade() - self.assertTrue(coll.ensure_index('foo', name=index_name)) + self.assertNotIn(index_name, coll.index_information()) def test_meter_ttl_index_present(self): self._test_ttl_index_present(self.conn, 'meter',