def _remove_associated_networks(self): """Delete associated Nova networks from tenants.""" # NOTE(rmk): Ugly hack to deal with the fact that Nova Network # networks can only be disassociated in an admin context. Discussed # with boris-42 before taking this approach [LP-Bug #1350517]. clients = osclients.Clients(self.endpoint) if consts.Service.NOVA not in clients.services().values(): return nova_admin = clients.nova() if not utils.check_service_status(nova_admin, "nova-network"): return for network in nova_admin.networks.list(): network_tenant_id = nova_admin.networks.get(network).project_id if network_tenant_id in self.context["tenants"]: try: nova_admin.networks.disassociate(network) except Exception as ex: LOG.warning("Failed disassociate net: %(tenant_id)s. " "Exception: %(ex)s" % { "tenant_id": network_tenant_id, "ex": ex })
def _remove_associated_networks(self): """Delete associated Nova networks from tenants.""" # NOTE(rmk): Ugly hack to deal with the fact that Nova Network # networks can only be disassociated in an admin context. Discussed # with boris-42 before taking this approach [LP-Bug #1350517]. # NeCTAR Hack due to cells return clients = osclients.Clients(self.endpoint) if consts.Service.NOVA not in clients.services().values(): return nova_admin = clients.nova() if not utils.check_service_status(nova_admin, "nova-network"): return for net in nova_admin.networks.list(): network_tenant_id = nova_admin.networks.get(net).project_id if network_tenant_id in self.context["tenants"]: try: nova_admin.networks.disassociate(net) except Exception as ex: LOG.warning("Failed disassociate net: %(tenant_id)s. " "Exception: %(ex)s" % {"tenant_id": network_tenant_id, "ex": ex})
def test_check_service_status_fail(self): class service(): def __init__(self, name): self.status = "enabled" self.state = "down" self.name = name def __str__(self): return self.name client = mock.MagicMock() client.services.list.return_value = [service("nova-compute"), service("nova-network"), service("glance-api")] ret = utils.check_service_status(client, "nova-network") self.assertFalse(ret) self.assertTrue(client.services.list.called)
def test_check_service_status(self): class service(): def __init__(self, name): self.status = "enabled" self.state = "up" self.name = name def __str__(self): return self.name client = mock.MagicMock() client.services.list.return_value = [service('nova-compute'), service('nova-network'), service('glance-api')] ret = utils.check_service_status(client, 'nova-network') self.assertTrue(ret) self.assertTrue(client.services.list.called)
def test_check_service_status_fail(self): class service(): def __init__(self, name): self.status = "enabled" self.state = "down" self.name = name def __str__(self): return self.name client = mock.MagicMock() client.services.list.return_value = [ service("nova-compute"), service("nova-network"), service("glance-api") ] ret = utils.check_service_status(client, "nova-network") self.assertFalse(ret) self.assertTrue(client.services.list.called)
def test_check_service_status(self): class service(): def __init__(self, name): self.status = "enabled" self.state = "up" self.name = name def __str__(self): return self.name client = mock.MagicMock() client.services.list.return_value = [ service('nova-compute'), service('nova-network'), service('glance-api') ] ret = utils.check_service_status(client, 'nova-network') self.assertTrue(ret) self.assertTrue(client.services.list.called)