Merge "Replace metadata joins with another query"
This commit is contained in:
@@ -65,6 +65,20 @@ class DbTestCase(test.TestCase):
|
|||||||
args.update(kwargs)
|
args.update(kwargs)
|
||||||
return db.instance_create(ctxt, args)
|
return db.instance_create(ctxt, args)
|
||||||
|
|
||||||
|
def fake_metadata(self, content):
|
||||||
|
meta = {}
|
||||||
|
for i in range(0, 10):
|
||||||
|
meta["foo%i" % i] = "this is %s item %i" % (content, i)
|
||||||
|
return meta
|
||||||
|
|
||||||
|
def create_metadata_for_instance(self, instance_uuid):
|
||||||
|
meta = self.fake_metadata('metadata')
|
||||||
|
db.instance_metadata_update(self.context, instance_uuid, meta, False)
|
||||||
|
sys_meta = self.fake_metadata('system_metadata')
|
||||||
|
db.instance_system_metadata_update(self.context, instance_uuid,
|
||||||
|
sys_meta, False)
|
||||||
|
return meta, sys_meta
|
||||||
|
|
||||||
|
|
||||||
class DbApiTestCase(DbTestCase):
|
class DbApiTestCase(DbTestCase):
|
||||||
def test_create_instance_unique_hostname(self):
|
def test_create_instance_unique_hostname(self):
|
||||||
@@ -132,6 +146,37 @@ class DbApiTestCase(DbTestCase):
|
|||||||
check_exc_format(db.get_ec2_instance_id_by_uuid)
|
check_exc_format(db.get_ec2_instance_id_by_uuid)
|
||||||
check_exc_format(db.get_instance_uuid_by_ec2_id)
|
check_exc_format(db.get_instance_uuid_by_ec2_id)
|
||||||
|
|
||||||
|
def test_instance_get_all_with_meta(self):
|
||||||
|
inst = self.create_instances_with_args()
|
||||||
|
fake_meta, fake_sys = self.create_metadata_for_instance(inst['uuid'])
|
||||||
|
result = db.instance_get_all(self.context)
|
||||||
|
for inst in result:
|
||||||
|
meta = utils.metadata_to_dict(inst['metadata'])
|
||||||
|
self.assertEqual(meta, fake_meta)
|
||||||
|
sys_meta = utils.metadata_to_dict(inst['system_metadata'])
|
||||||
|
self.assertEqual(sys_meta, fake_sys)
|
||||||
|
|
||||||
|
def test_instance_get_all_by_filters_with_meta(self):
|
||||||
|
inst = self.create_instances_with_args()
|
||||||
|
fake_meta, fake_sys = self.create_metadata_for_instance(inst['uuid'])
|
||||||
|
result = db.instance_get_all_by_filters(self.context, {})
|
||||||
|
for inst in result:
|
||||||
|
meta = utils.metadata_to_dict(inst['metadata'])
|
||||||
|
self.assertEqual(meta, fake_meta)
|
||||||
|
sys_meta = utils.metadata_to_dict(inst['system_metadata'])
|
||||||
|
self.assertEqual(sys_meta, fake_sys)
|
||||||
|
|
||||||
|
def test_instance_get_all_by_filters_without_meta(self):
|
||||||
|
inst = self.create_instances_with_args()
|
||||||
|
fake_meta, fake_sys = self.create_metadata_for_instance(inst['uuid'])
|
||||||
|
result = db.instance_get_all_by_filters(self.context, {},
|
||||||
|
columns_to_join=[])
|
||||||
|
for inst in result:
|
||||||
|
meta = utils.metadata_to_dict(inst['metadata'])
|
||||||
|
self.assertEqual(meta, {})
|
||||||
|
sys_meta = utils.metadata_to_dict(inst['system_metadata'])
|
||||||
|
self.assertEqual(sys_meta, {})
|
||||||
|
|
||||||
def test_instance_get_all_by_filters(self):
|
def test_instance_get_all_by_filters(self):
|
||||||
self.create_instances_with_args()
|
self.create_instances_with_args()
|
||||||
self.create_instances_with_args()
|
self.create_instances_with_args()
|
||||||
@@ -183,7 +228,8 @@ class DbApiTestCase(DbTestCase):
|
|||||||
self.assertEqual(1, len(instances))
|
self.assertEqual(1, len(instances))
|
||||||
instance = instances[0]
|
instance = instances[0]
|
||||||
self.assertEqual(expected['uuid'], instance['uuid'])
|
self.assertEqual(expected['uuid'], instance['uuid'])
|
||||||
self.assertFalse('system_metadata' in dict(instance))
|
sysmeta = dict(instance)['system_metadata']
|
||||||
|
self.assertEqual(len(sysmeta), 0)
|
||||||
|
|
||||||
def test_migration_get_unconfirmed_by_dest_compute(self):
|
def test_migration_get_unconfirmed_by_dest_compute(self):
|
||||||
ctxt = context.get_admin_context()
|
ctxt = context.get_admin_context()
|
||||||
|
|||||||
Reference in New Issue
Block a user