From: Salvatore Orlando Date: Mon, 15 Aug 2011 23:23:46 +0000 (+0100) Subject: Partial commit X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=a8def0e9fbeb053b6e36f0b0d7d00d66f2731ec3;p=openstack-build%2Fneutron-build.git Partial commit --- diff --git a/quantum/cli.py b/quantum/cli.py index df4b71cd2..fa326d9d4 100644 --- a/quantum/cli.py +++ b/quantum/cli.py @@ -116,33 +116,35 @@ def api_delete_net(client, *args): def detail_net(manager, *args): tid, nid = args iface_list = manager.get_network_details(tid, nid) + output = prepare_output("detail_net", tenant_id, + dict(network=iface_list)) + #TODO(salvatore-orlando): delete here print "Remote Interfaces on Virtual Network:%s\n" % nid for iface in iface_list: print "\tRemote interface:%s" % iface def api_detail_net(client, *args): - tid, nid = args + tenant_id, network_id = args try: - res = client.list_network_details(nid)["networks"]["network"] + res = client.list_network_details(network_id)["networks"]["network"] except Exception, e: LOG.error("Failed to get network details: %s" % e) return - try: - ports = client.list_ports(nid) + ports = client.list_ports(network_id) except Exception, e: LOG.error("Failed to list ports: %s" % e) return - print "Network %s (%s)" % (res['name'], res['id']) - print "Remote Interfaces on Virtual Network:%s\n" % nid + res['ports'] = ports for port in ports["ports"]: - pid = port["id"] - res = client.list_port_attachments(nid, pid) - LOG.debug(res) - remote_iface = res["attachment"] - print "\tRemote interface:%s" % remote_iface + att_data = client.list_port_attachments(network_id, port['id']) + port['attachment'] = att_data["attachment"] + + output = prepare_output("detail_net", tenant_id, + dict(network=res)) + print output def rename_net(manager, *args): diff --git a/quantum/cli_output.template b/quantum/cli_output.template index 2bbeb8721..0c9084010 100644 --- a/quantum/cli_output.template +++ b/quantum/cli_output.template @@ -8,5 +8,11 @@ Virtual Networks on Tenant $tenant_id Created a new Virtual Network with ID: $network_id for Tenant $tenant_id #elif $cmd == 'delete_net' Deleted Virtual Network with ID: $network_id for Tenant $tenant_id +#elif $cmd == 'detail_net' +Network $network.name ($network.id) +Remote Interfaces on Virtual Network +#for $port in $network.port +Port $port.id: $port.attachment +#end for #end if diff --git a/tests/unit/test_cli.py b/tests/unit/test_cli.py index 5b26debe5..47b7d97a0 100644 --- a/tests/unit/test_cli.py +++ b/tests/unit/test_cli.py @@ -84,6 +84,18 @@ class CLITest(unittest.TestCase): # Verify! # Must add newline at the end to match effect of print call self.assertEquals(self.fake_stdout.make_string(), output + '\n') + + def _verify_delete_network(self, network_id): + # Verification - get raw result from db + nw_list = db.network_list(self.tenant_id) + if len(nw_list) != 0: + self.fail("DB should not contain any network") + # Fill CLI template + output = cli.prepare_output('delete_net', self.tenant_id, + dict(network_id=network_id)) + # Verify! + # Must add newline at the end to match effect of print call + self.assertEquals(self.fake_stdout.make_string(), output + '\n') def test_list_networks(self): try: @@ -123,7 +135,6 @@ class CLITest(unittest.TestCase): except: LOG.exception("Exception caught: %s", sys.exc_info()) self.fail("test_create_network failed due to an exception") - def test_create_network_api(self): try: @@ -134,3 +145,40 @@ class CLITest(unittest.TestCase): except: LOG.exception("Exception caught: %s", sys.exc_info()) self.fail("test_create_network_api failed due to an exception") + + def _prepare_test_delete_network(self): + # Pre-populate data for testing using db api + db.network_create(self.tenant_id, self.network_name_1) + net_id = db.network_list(self.tenant_id)[0]['uuid'] + return net_id + + def test_delete_network(self): + try: + network_id = self._prepare_test_delete_network() + cli.delete_net(self.manager, self.tenant_id, network_id) + LOG.debug("Operation completed. Verifying result") + LOG.debug(self.fake_stdout.content) + self._verify_delete_network(network_id) + except: + LOG.exception("Exception caught: %s", sys.exc_info()) + self.fail("test_delete_network failed due to an exception") + + + def test_delete_network_api(self): + try: + network_id = self._prepare_test_delete_network() + cli.api_delete_net(self.client, self.tenant_id, network_id) + LOG.debug("Operation completed. Verifying result") + LOG.debug(self.fake_stdout.content) + self._verify_delete_network(network_id) + except: + LOG.exception("Exception caught: %s", sys.exc_info()) + self.fail("test_delete_network_api failed due to an exception") + + def test_detail_network_api(self): + # Load some data into the datbase + net = db.network_create(self.tenant_id, self.network_name_1) + db.port_create(net['uuid']) + port = db.port_create(net['uuid']) + cli.api_detail_net(self.client, self.tenant_id, net['uuid']) + db.port_set_attachment(port['uuid'], net['uuid'], "test_iface_id") \ No newline at end of file