Skip to content

Commit 088f244

Browse files
Jenkinsopenstack-gerrit
authored andcommitted
Merge "Support "network show" command in nova network"
2 parents 36b2146 + d9d1809 commit 088f244

4 files changed

Lines changed: 153 additions & 5 deletions

File tree

openstackclient/network/v2/network.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,7 @@ def take_action(self, parsed_args):
316316
return
317317

318318

319-
class ShowNetwork(command.ShowOne):
319+
class ShowNetwork(common.NetworkAndComputeShowOne):
320320
"""Show network details"""
321321

322322
def get_parser(self, prog_name):
@@ -328,9 +328,17 @@ def get_parser(self, prog_name):
328328
)
329329
return parser
330330

331-
def take_action(self, parsed_args):
332-
client = self.app.client_manager.network
331+
def take_action_network(self, client, parsed_args):
333332
obj = client.find_network(parsed_args.network, ignore_missing=False)
334333
columns = _get_columns(obj)
335334
data = utils.get_item_properties(obj, columns, formatters=_formatters)
336335
return (columns, data)
336+
337+
def take_action_compute(self, client, parsed_args):
338+
network = utils.find_resource(
339+
client.networks,
340+
parsed_args.network,
341+
)
342+
columns = sorted(network._info.keys())
343+
data = utils.get_dict_properties(network._info, columns)
344+
return (columns, data)

openstackclient/tests/compute/v2/fakes.py

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -601,13 +601,42 @@ def create_one_network(attrs={}, methods={}):
601601
:param Dictionary methods:
602602
A dictionary with all methods
603603
:return:
604-
A FakeResource object, with id, label, cidr
604+
A FakeResource object, with id, label, cidr and so on
605605
"""
606606
# Set default attributes.
607607
network_attrs = {
608+
'bridge': 'br100',
609+
'bridge_interface': None,
610+
'broadcast': '10.0.0.255',
611+
'cidr': '10.0.0.0/24',
612+
'cidr_v6': None,
613+
'created_at': '2016-02-11T11:17:37.000000',
614+
'deleted': False,
615+
'deleted_at': None,
616+
'dhcp_server': '10.0.0.1',
617+
'dhcp_start': '10.0.0.2',
618+
'dns1': '8.8.4.4',
619+
'dns2': None,
620+
'enable_dhcp': True,
621+
'gateway': '10.0.0.1',
622+
'gateway_v6': None,
623+
'host': None,
608624
'id': 'network-id-' + uuid.uuid4().hex,
625+
'injected': False,
609626
'label': 'network-label-' + uuid.uuid4().hex,
610-
'cidr': '10.0.0.0/24',
627+
'mtu': None,
628+
'multi_host': False,
629+
'netmask': '255.255.255.0',
630+
'netmask_v6': None,
631+
'priority': None,
632+
'project_id': 'project-id-' + uuid.uuid4().hex,
633+
'rxtx_base': None,
634+
'share_address': False,
635+
'updated_at': None,
636+
'vlan': None,
637+
'vpn_private_address': None,
638+
'vpn_public_address': None,
639+
'vpn_public_port': None,
611640
}
612641

613642
# Overwrite default attributes.

openstackclient/tests/network/v2/test_network.py

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -654,3 +654,112 @@ def test_network_list_no_options(self):
654654
self.compute.networks.list.assert_called_with()
655655
self.assertEqual(self.columns, columns)
656656
self.assertEqual(self.data, list(data))
657+
658+
659+
class TestShowNetworkCompute(TestNetworkCompute):
660+
661+
# The network to show.
662+
_network = compute_fakes.FakeNetwork.create_one_network()
663+
664+
columns = (
665+
'bridge',
666+
'bridge_interface',
667+
'broadcast',
668+
'cidr',
669+
'cidr_v6',
670+
'created_at',
671+
'deleted',
672+
'deleted_at',
673+
'dhcp_server',
674+
'dhcp_start',
675+
'dns1',
676+
'dns2',
677+
'enable_dhcp',
678+
'gateway',
679+
'gateway_v6',
680+
'host',
681+
'id',
682+
'injected',
683+
'label',
684+
'mtu',
685+
'multi_host',
686+
'netmask',
687+
'netmask_v6',
688+
'priority',
689+
'project_id',
690+
'rxtx_base',
691+
'share_address',
692+
'updated_at',
693+
'vlan',
694+
'vpn_private_address',
695+
'vpn_public_address',
696+
'vpn_public_port',
697+
)
698+
699+
data = (
700+
_network.bridge,
701+
_network.bridge_interface,
702+
_network.broadcast,
703+
_network.cidr,
704+
_network.cidr_v6,
705+
_network.created_at,
706+
_network.deleted,
707+
_network.deleted_at,
708+
_network.dhcp_server,
709+
_network.dhcp_start,
710+
_network.dns1,
711+
_network.dns2,
712+
_network.enable_dhcp,
713+
_network.gateway,
714+
_network.gateway_v6,
715+
_network.host,
716+
_network.id,
717+
_network.injected,
718+
_network.label,
719+
_network.mtu,
720+
_network.multi_host,
721+
_network.netmask,
722+
_network.netmask_v6,
723+
_network.priority,
724+
_network.project_id,
725+
_network.rxtx_base,
726+
_network.share_address,
727+
_network.updated_at,
728+
_network.vlan,
729+
_network.vpn_private_address,
730+
_network.vpn_public_address,
731+
_network.vpn_public_port,
732+
)
733+
734+
def setUp(self):
735+
super(TestShowNetworkCompute, self).setUp()
736+
737+
self.app.client_manager.network_endpoint_enabled = False
738+
739+
# Return value of utils.find_resource()
740+
self.compute.networks.get.return_value = self._network
741+
742+
# Get the command object to test
743+
self.cmd = network.ShowNetwork(self.app, None)
744+
745+
def test_show_no_options(self):
746+
arglist = []
747+
verifylist = []
748+
749+
# Missing required args should bail here
750+
self.assertRaises(tests_utils.ParserException, self.check_parser,
751+
self.cmd, arglist, verifylist)
752+
753+
def test_show_all_options(self):
754+
arglist = [
755+
self._network.label,
756+
]
757+
verifylist = [
758+
('network', self._network.label),
759+
]
760+
761+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
762+
columns, data = self.cmd.take_action(parsed_args)
763+
764+
self.assertEqual(self.columns, tuple(columns))
765+
self.assertEqual(self.data, data)

releasenotes/notes/bug-1543672-bad2fc4c6c8f3125.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,5 @@ features:
44
[Bug `1543672 <https://bugs.launchpad.net/python-openstackclient/+bug/1543672>`_]
55
- Command ``network list`` is now available for nova network.
66
[Bug `1543672 <https://bugs.launchpad.net/python-openstackclient/+bug/1543672>`_]
7+
- Command ``network show`` is now available for nova network.
8+
[Bug `1543672 <https://bugs.launchpad.net/python-openstackclient/+bug/1543672>`_]

0 commit comments

Comments
 (0)