def os_id_to_ec2_id(context, kind, os_id, items_by_os_id=None, ids_by_os_id=None, project_id=None): if os_id is None: return None if ids_by_os_id is not None: item_id = ids_by_os_id.get(os_id) if item_id: return item_id if items_by_os_id is not None: item = items_by_os_id.get(os_id) if item: return item['id'] ids = db_api.get_items_ids(context, kind, item_os_ids=(os_id, )) if len(ids): item_id, _os_id = ids[0] else: item_id = db_api.add_item_id(context, kind, os_id, project_id=project_id) if ids_by_os_id is not None: ids_by_os_id[os_id] = item_id return item_id
def test_add_item_id(self): os_id = fakes.random_os_id() item_id = db_api.add_item_id(self.context, 'fake', os_id) self.assertTrue(validator.validate_ec2_id(item_id, '', ['fake'])) item = db_api.get_item_by_id(self.context, item_id) self.assertIsNone(item) item = db_api.add_item(self.context, 'fake', {'os_id': os_id}) self.assertThat(item, matchers.DictMatches({'id': item_id, 'os_id': os_id, 'vpc_id': None})) # NOTE(ft): add os_id when item exists item_id = db_api.add_item_id(self.context, 'fake', os_id) self.assertEqual(item_id, item['id']) # NOTE(ft): add os_id when id exists os_id = fakes.random_os_id() item_id1 = db_api.add_item_id(self.context, 'fake', os_id) item_id2 = db_api.add_item_id(self.context, 'fake', os_id) self.assertEqual(item_id1, item_id2)
def test_add_item_id(self): os_id = fakes.random_os_id() item_id = db_api.add_item_id(self.context, 'fake', os_id) self.assertTrue(validator.validate_ec2_id(item_id, '', ['fake'])) item = db_api.get_item_by_id(self.context, item_id) self.assertIsNone(item) item = db_api.add_item(self.context, 'fake', {'os_id': os_id}) self.assertThat( item, matchers.DictMatches({ 'id': item_id, 'os_id': os_id, 'vpc_id': None })) # NOTE(ft): add os_id when item exists item_id = db_api.add_item_id(self.context, 'fake', os_id) self.assertEqual(item_id, item['id']) # NOTE(ft): add os_id when id exists os_id = fakes.random_os_id() item_id1 = db_api.add_item_id(self.context, 'fake', os_id) item_id2 = db_api.add_item_id(self.context, 'fake', os_id) self.assertEqual(item_id1, item_id2)
def os_id_to_ec2_id(context, kind, os_id, items_by_os_id=None, ids_by_os_id=None, project_id=None): if os_id is None: return None if ids_by_os_id is not None: item_id = ids_by_os_id.get(os_id) if item_id: return item_id if items_by_os_id is not None: item = items_by_os_id.get(os_id) if item: return item['id'] ids = db_api.get_items_ids(context, kind, item_os_ids=(os_id,)) if len(ids): item_id, _os_id = ids[0] else: item_id = db_api.add_item_id(context, kind, os_id, project_id=project_id) if ids_by_os_id is not None: ids_by_os_id[os_id] = item_id return item_id