def test_delete(self): if do_not_delete_instance(): report.log("TESTS_DO_NOT_DELETE_INSTANCE=True was specified, " "skipping delete...") raise SkipTest("TESTS_DO_NOT_DELETE_INSTANCE was specified.") global dbaas if not hasattr(instance_info, "initial_result"): raise SkipTest("Instance was never created, skipping test...") if WHITE_BOX: # Change this code to get the volume using the API. # That way we can keep it while keeping it black box. admin_context = context.get_admin_context() volumes = db.volume_get_all_by_instance(admin_context(), instance_info.local_id) instance_info.volume_id = volumes[0].id # Update the report so the logs inside the instance will be saved. report.update() dbaas.instances.delete(instance_info.id) attempts = 0 try: time.sleep(1) result = True while result is not None: attempts += 1 result = dbaas.instances.get(instance_info.id) assert_equal("SHUTDOWN", result.status) except nova_exceptions.NotFound: pass except Exception as ex: fail("A failure occured when trying to GET instance %s for the %d " "time: %s" % (str(instance_info.id), attempts, str(ex)))
def test_delete(self): if do_not_delete_instance(): raise SkipTest("TESTS_DO_NOT_DELETE_INSTANCE was specified.") global dbaas if not hasattr(instance_info, "initial_result"): raise SkipTest("Instance was never created, skipping test...") if test_config.values["reddwarf_can_have_volume"]: # Change this code to get the volume using the API. # That way we can keep it while keeping it black box. volumes = db.volume_get_all_by_instance(context.get_admin_context(), instance_info.local_id) instance_info.volume_id = volumes[0].id # Update the report so the logs inside the instance will be saved. report.update() dbaas.instances.delete(instance_info.id) attempts = 0 try: time.sleep(1) result = True while result is not None: attempts += 1 result = dbaas.instances.get(instance_info.id) assert_equal("SHUTDOWN", result.status) except nova_exceptions.NotFound: pass except Exception as ex: fail("A failure occured when trying to GET instance %s for the %d " "time: %s" % (str(instance_info.id), attempts, str(ex)))
def _volume_id_from_instance_name_and_mountpoint(self, instance_name, mountpoint): ctx = nova_context.get_admin_context() phy_host = self._get_phy_host_by_instance_name(instance_name) if not phy_host: return None for vol in db.volume_get_all_by_instance(ctx, phy_host.instance.id): if vol.mountpoint == mountpoint: return vol.id return None
def test_mgmt_data(self): # Test that the management API returns all the values we expect it to. info = instance_info ir = info.initial_result cid = ir.id instance_id = instance_info.local_id expected = { 'id': ir.id, 'name': ir.name, 'account_id': info.user.auth_user, # TODO(hub-cap): fix this since its a flavor object now #'flavorRef': info.dbaas_flavor_href, 'databases': [{ 'name': 'db2', 'character_set': 'utf8', 'collate': 'utf8_general_ci', }, { 'name': 'firstdb', 'character_set': 'latin2', 'collate': 'latin2_general_ci', }], } if WHITE_BOX: admin_context = context.get_admin_context() volumes = db.volume_get_all_by_instance(admin_context(), instance_id) assert_equal(len(volumes), 1) volume = volumes[0] expected['volume'] = { 'id': volume.id, 'name': volume.display_name, 'size': volume.size, 'description': volume.display_description, } expected_entry = info.expected_dns_entry() if expected_entry: expected['hostname'] = expected_entry.name assert_true(self.mgmt_details is not None) for (k, v) in expected.items(): msg = "Attr %r is missing." % k assert_true(hasattr(self.mgmt_details, k), msg) msg = ("Attr %r expected to be %r but was %r." % (k, v, getattr(self.mgmt_details, k))) assert_equal(getattr(self.mgmt_details, k), v, msg) print(self.mgmt_details.users) for user in self.mgmt_details.users: assert_true('name' in user, "'name' not in users element.")
def test_mgmt_data(self): # Test that the management API returns all the values we expect it to. info = instance_info ir = info.initial_result cid = ir.id instance_id = instance_info.local_id expected = { 'id': ir.id, 'name': ir.name, 'account_id': info.user.auth_user, # TODO(hub-cap): fix this since its a flavor object now #'flavorRef': info.dbaas_flavor_href, 'databases': [ { 'name': 'db2', 'character_set': 'utf8', 'collate': 'utf8_general_ci', }, { 'name': 'firstdb', 'character_set': 'latin2', 'collate': 'latin2_general_ci', }], } if WHITE_BOX: admin_context = context.get_admin_context() volumes = db.volume_get_all_by_instance(admin_context(), instance_id) assert_equal(len(volumes), 1) volume = volumes[0] expected['volume'] = { 'id': volume.id, 'name': volume.display_name, 'size': volume.size, 'description': volume.display_description, } expected_entry = info.expected_dns_entry() if expected_entry: expected['hostname'] = expected_entry.name assert_true(self.mgmt_details is not None) for (k, v) in expected.items(): msg = "Attr %r is missing." % k assert_true(hasattr(self.mgmt_details, k), msg) msg = ("Attr %r expected to be %r but was %r." % (k, v, getattr(self.mgmt_details, k))) assert_equal(getattr(self.mgmt_details, k), v, msg) print(self.mgmt_details.users) for user in self.mgmt_details.users: assert_true('name' in user, "'name' not in users element.")
def setUp(self): volumes = db.volume_get_all_by_instance(context.get_admin_context(), instance_info.local_id) instance_info.volume_id = volumes[0].id self.old_volume_size = int(volumes[0].size) self.new_volume_size = self.old_volume_size + 1 # Create some databases to check they still exist after the resize self.expected_dbs = ['salmon', 'halibut'] databases = [] for name in self.expected_dbs: databases.append({"name": name}) instance_info.dbaas.databases.create(instance_info.id, databases)
def test_delete(self): global dbaas if not hasattr(instance_info, "initial_result"): raise SkipTest("Instance was never created, skipping test...") volumes = db.volume_get_all_by_instance(context.get_admin_context(), instance_info.local_id) instance_info.volume_id = volumes[0].id # Update the report so the logs inside the instance will be saved. report.update() dbaas.instances.delete(instance_info.id) attempts = 0 try: time.sleep(1) result = True while result is not None: attempts += 1 result = dbaas.instances.get(instance_info.id) assert_equal(dbaas_mapping[power_state.SHUTDOWN], result.status) except nova_exceptions.NotFound: pass except Exception as ex: fail("A failure occured when trying to GET instance %s for the %d " "time: %s" % (str(instance_info.id), attempts, str(ex)))
def test_db_should_have_instance_to_volume_association(self): """The compute manager should associate a volume to the instance.""" volumes = db.volume_get_all_by_instance(context.get_admin_context(), instance_info.local_id) self.assertEqual(1, len(volumes))