def test_disassociate_post_with_exception(self): floating_ip = self.floating_ips.first() server = self.servers.first() self.mox.StubOutWithMock(api.nova, 'keypair_list') self.mox.StubOutWithMock(api, 'security_group_list') self.mox.StubOutWithMock(api, 'tenant_floating_ip_list') self.mox.StubOutWithMock(api, 'tenant_floating_ip_get') self.mox.StubOutWithMock(api, 'server_remove_floating_ip') self.mox.StubOutWithMock(api.nova, 'server_list') api.nova.server_list(IsA(http.HttpRequest), all_tenants=True).AndReturn(self.servers.list()) api.nova.keypair_list(IsA(http.HttpRequest)) \ .AndReturn(self.keypairs.list()) api.security_group_list(IsA(http.HttpRequest)) \ .AndReturn(self.security_groups.list()) api.tenant_floating_ip_list(IsA(http.HttpRequest)) \ .AndReturn(self.floating_ips.list()) api.server_remove_floating_ip(IsA(http.HttpRequest), server.id, floating_ip.id) \ .AndRaise(self.exceptions.nova) self.mox.ReplayAll() action = "floating_ips__disassociate__%s" % floating_ip.id res = self.client.post(INDEX_URL, {"action": action}) self.assertRedirectsNoFollow(res, INDEX_URL)
def single(self, table, request, obj_id): try: fip = table.get_object_by_id(int(obj_id)) api.server_remove_floating_ip(request, fip.instance_id, fip.id) LOG.info('Disassociating Floating IP "%s".' % obj_id) messages.success( request, _('Successfully disassociated Floating IP: %s') % fip.ip) except: exceptions.handle(request, _('Unable to disassociate floating IP.')) return shortcuts.redirect('horizon:project:access_and_security:index')
def single(self, table, request, obj_id): try: fip = table.get_object_by_id(get_int_or_uuid(obj_id)) api.server_remove_floating_ip(request, fip.instance_id, fip.id) LOG.info('Disassociating Floating IP "%s".' % obj_id) messages.success(request, _('Successfully disassociated Floating IP: %s') % fip.ip) except: exceptions.handle(request, _('Unable to disassociate floating IP.')) return shortcuts.redirect('horizon:project:access_and_security:index')
def handle(self, request, data): try: fip = api.tenant_floating_ip_get(request, data['floating_ip_id']) api.server_remove_floating_ip(request, fip.instance_id, fip.id) LOG.info('Disassociating Floating IP "%s"' % data['floating_ip_id']) messages.info(request, 'Successfully disassociated Floating IP: %s' % data['floating_ip_id']) except novaclient_exceptions.ClientException, e: LOG.error("ClientException in FloatingIpAssociate", exc_info=True) messages.error(request, 'Error disassociating Floating IP: %s' % e.message)
def test_server_remove_floating_ip(self): server = api.nova.Server(self.servers.first(), self.request) floating_ip = self.floating_ips.first() novaclient = self.stub_novaclient() novaclient.servers = self.mox.CreateMockAnything() novaclient.floating_ips = self.mox.CreateMockAnything() novaclient.servers.get(server.id).AndReturn(server) novaclient.floating_ips.get(floating_ip.id).AndReturn(floating_ip) novaclient.servers.remove_floating_ip(server.id, floating_ip.ip) \ .AndReturn(server) self.mox.ReplayAll() server = api.server_remove_floating_ip(self.request, server.id, floating_ip.id) self.assertIsInstance(server, api.nova.Server)