Skip to content

Commit 7663549

Browse files
Jenkinsopenstack-gerrit
authored andcommitted
Merge "Migrate "network show" command to use SDK."
2 parents 45a330c + 2a2cb4f commit 7663549

3 files changed

Lines changed: 57 additions & 45 deletions

File tree

functional/tests/network/v2/test_network.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,9 @@ def test_network_list(self):
4040

4141
def test_network_set(self):
4242
raw_output = self.openstack('network set --disable ' + self.NAME)
43-
opts = self.get_show_opts(['name', 'state'])
43+
opts = self.get_show_opts(['name', 'admin_state_up'])
4444
raw_output = self.openstack('network show ' + self.NAME + opts)
45-
self.assertEqual(self.NAME + "\nDOWN\n", raw_output)
45+
self.assertEqual("DOWN\n" + self.NAME + "\n", raw_output)
4646

4747
def test_network_show(self):
4848
opts = self.get_show_opts(self.FIELDS)

openstackclient/network/v2/network.py

Lines changed: 6 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
"""Network action implementations"""
1515

1616
import logging
17-
import six
1817

1918
from cliff import command
2019
from cliff import lister
@@ -48,22 +47,6 @@ def _make_client_sdk(instance):
4847
return conn.network
4948

5049

51-
def _prep_network_detail(net):
52-
"""Prepare network object for output"""
53-
if 'subnets' in net:
54-
net['subnets'] = utils.format_list(net['subnets'])
55-
if 'admin_state_up' in net:
56-
net['state'] = 'UP' if net['admin_state_up'] else 'DOWN'
57-
net.pop('admin_state_up')
58-
if 'router:external' in net:
59-
net['router_type'] = 'External' if net['router:external'] \
60-
else 'Internal'
61-
net.pop('router:external')
62-
if 'tenant_id' in net:
63-
net['project_id'] = net.pop('tenant_id')
64-
return net
65-
66-
6750
class CreateNetwork(show.ShowOne):
6851
"""Create new network"""
6952

@@ -323,10 +306,10 @@ def get_parser(self, prog_name):
323306

324307
def take_action(self, parsed_args):
325308
self.log.debug('take_action(%s)' % parsed_args)
309+
self.app.client_manager.network = \
310+
_make_client_sdk(self.app.client_manager)
326311
client = self.app.client_manager.network
327-
net = client.api.find_attr(
328-
'networks',
329-
parsed_args.identifier,
330-
)
331-
data = _prep_network_detail(net)
332-
return zip(*sorted(six.iteritems(data)))
312+
obj = client.find_network(parsed_args.identifier, ignore_missing=False)
313+
columns = sorted(obj.keys())
314+
data = utils.get_item_properties(obj, columns, formatters=_formatters)
315+
return (tuple(columns), data)

openstackclient/tests/network/v2/test_network.py

Lines changed: 49 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
from openstackclient.tests.identity.v2_0 import fakes as identity_fakes_v2
2222
from openstackclient.tests.identity.v3 import fakes as identity_fakes_v3
2323
from openstackclient.tests.network.v2 import fakes as network_fakes
24+
from openstackclient.tests import utils as tests_utils
2425

2526
RESOURCE = 'network'
2627
RESOURCES = 'networks'
@@ -533,39 +534,67 @@ def test_set_nothing(self, _make_client_sdk):
533534
parsed_args)
534535

535536

536-
@mock.patch(
537-
'openstackclient.api.network_v2.APIv2.find_attr'
538-
)
537+
@mock.patch('openstackclient.network.v2.network._make_client_sdk')
539538
class TestShowNetwork(TestNetwork):
540539

540+
# The network to set.
541+
_network = network_fakes.FakeNetwork.create_one_network()
542+
543+
columns = (
544+
'admin_state_up',
545+
'id',
546+
'name',
547+
'router_external',
548+
'status',
549+
'subnets',
550+
'tenant_id',
551+
)
552+
553+
data = (
554+
network._format_admin_state(_network.admin_state_up),
555+
_network.id,
556+
_network.name,
557+
network._format_router_external(_network.router_external),
558+
_network.status,
559+
utils.format_list(_network.subnets),
560+
_network.tenant_id,
561+
)
562+
541563
def setUp(self):
542564
super(TestShowNetwork, self).setUp()
543565

566+
self.network.find_network = mock.Mock(return_value=self._network)
567+
544568
# Get the command object to test
545569
self.cmd = network.ShowNetwork(self.app, self.namespace)
546570

547-
def test_show_no_options(self, find_attr):
571+
def test_show_no_options(self, _make_client_sdk):
572+
_make_client_sdk.return_value = self.app.client_manager.network
573+
574+
arglist = []
575+
verifylist = []
576+
577+
try:
578+
# Missing required args should bail here
579+
self.check_parser(self.cmd, arglist, verifylist)
580+
except tests_utils.ParserException:
581+
pass
582+
583+
def test_show_all_options(self, _make_client_sdk):
584+
_make_client_sdk.return_value = self.app.client_manager.network
585+
548586
arglist = [
549-
FAKE_NAME,
587+
self._network.name,
550588
]
551589
verifylist = [
552-
('identifier', FAKE_NAME),
590+
('identifier', self._network.name),
553591
]
554-
find_attr.return_value = copy.deepcopy(RECORD)
555592

556593
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
557-
result = list(self.cmd.take_action(parsed_args))
558-
559-
find_attr.assert_called_with('networks', FAKE_NAME)
560-
self.assertEqual(FILTERED, result)
561-
562-
def test_show_all_options(self, find_attr):
563-
arglist = [FAKE_NAME]
564-
verifylist = [('identifier', FAKE_NAME)]
565-
find_attr.return_value = copy.deepcopy(RECORD)
594+
columns, data = self.cmd.take_action(parsed_args)
566595

567-
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
568-
result = list(self.cmd.take_action(parsed_args))
596+
self.network.find_network.assert_called_with(self._network.name,
597+
ignore_missing=False)
569598

570-
find_attr.assert_called_with('networks', FAKE_NAME)
571-
self.assertEqual(FILTERED, result)
599+
self.assertEqual(tuple(self.columns), columns)
600+
self.assertEqual(list(self.data), list(data))

0 commit comments

Comments
 (0)