Skip to content

Commit 45a330c

Browse files
Jenkinsopenstack-gerrit
authored andcommitted
Merge "Migrate "network set" command to use SDK."
2 parents f9c7baa + 45c644d commit 45a330c

2 files changed

Lines changed: 40 additions & 31 deletions

File tree

openstackclient/network/v2/network.py

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
from openstackclient.common import exceptions
2626
from openstackclient.common import utils
2727
from openstackclient.identity import common as identity_common
28-
from openstackclient.network import common
2928

3029

3130
def _format_admin_state(item):
@@ -288,21 +287,23 @@ def get_parser(self, prog_name):
288287

289288
def take_action(self, parsed_args):
290289
self.log.debug('take_action(%s)' % parsed_args)
290+
self.app.client_manager.network = \
291+
_make_client_sdk(self.app.client_manager)
291292
client = self.app.client_manager.network
292-
_id = common.find(client, 'network', 'networks',
293-
parsed_args.identifier)
294-
body = {}
293+
obj = client.find_network(parsed_args.identifier, ignore_missing=False)
294+
295295
if parsed_args.name is not None:
296-
body['name'] = str(parsed_args.name)
296+
obj.name = str(parsed_args.name)
297297
if parsed_args.admin_state is not None:
298-
body['admin_state_up'] = parsed_args.admin_state
298+
obj.admin_state_up = parsed_args.admin_state
299299
if parsed_args.shared is not None:
300-
body['shared'] = parsed_args.shared
301-
if body == {}:
300+
obj.shared = parsed_args.shared
301+
302+
if not obj.is_dirty:
302303
msg = "Nothing specified to be set"
303304
raise exceptions.CommandError(msg)
304-
update_method = getattr(client, "update_network")
305-
update_method(_id, {'network': body})
305+
306+
client.update_network(obj)
306307
return
307308

308309

openstackclient/tests/network/v2/test_network.py

Lines changed: 29 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -458,31 +458,35 @@ def test_network_list_long(self, _make_client_sdk):
458458
self.assertEqual(self.data_long, list(data))
459459

460460

461+
@mock.patch('openstackclient.network.v2.network._make_client_sdk')
461462
class TestSetNetwork(TestNetwork):
462463

464+
# The network to set.
465+
_network = network_fakes.FakeNetwork.create_one_network()
466+
463467
def setUp(self):
464468
super(TestSetNetwork, self).setUp()
465469

466-
self.network.update_network = mock.Mock(
467-
return_value=None
468-
)
470+
self.network.update_network = mock.Mock(return_value=None)
469471

470-
self.network.list_networks = mock.Mock(
471-
return_value={RESOURCES: [copy.deepcopy(RECORD)]}
472-
)
472+
self.network.find_network = mock.Mock(return_value=self._network)
473473

474474
# Get the command object to test
475475
self.cmd = network.SetNetwork(self.app, self.namespace)
476476

477-
def test_set_this(self):
477+
def test_set_this(self, _make_client_sdk):
478+
_make_client_sdk.return_value = self.app.client_manager.network
479+
480+
self._network.is_dirty = True
481+
478482
arglist = [
479-
FAKE_NAME,
483+
self._network.name,
480484
'--enable',
481485
'--name', 'noob',
482486
'--share',
483487
]
484488
verifylist = [
485-
('identifier', FAKE_NAME),
489+
('identifier', self._network.name),
486490
('admin_state', True),
487491
('name', 'noob'),
488492
('shared', True),
@@ -491,34 +495,38 @@ def test_set_this(self):
491495
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
492496
result = self.cmd.take_action(parsed_args)
493497

494-
exp = {'admin_state_up': True, 'name': 'noob', 'shared': True}
495-
exp_record = {RESOURCE: exp}
496-
self.network.update_network.assert_called_with(FAKE_ID, exp_record)
498+
self.network.update_network.assert_called_with(self._network)
497499
self.assertEqual(None, result)
498500

499-
def test_set_that(self):
501+
def test_set_that(self, _make_client_sdk):
502+
_make_client_sdk.return_value = self.app.client_manager.network
503+
504+
self._network.is_dirty = True
505+
500506
arglist = [
501-
FAKE_NAME,
507+
self._network.name,
502508
'--disable',
503509
'--no-share',
504510
]
505511
verifylist = [
506-
('identifier', FAKE_NAME),
512+
('identifier', self._network.name),
507513
('admin_state', False),
508514
('shared', False),
509515
]
510516

511517
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
512518
result = self.cmd.take_action(parsed_args)
513519

514-
exp = {'admin_state_up': False, 'shared': False}
515-
exp_record = {RESOURCE: exp}
516-
self.network.update_network.assert_called_with(FAKE_ID, exp_record)
520+
self.network.update_network.assert_called_with(self._network)
517521
self.assertEqual(None, result)
518522

519-
def test_set_nothing(self):
520-
arglist = [FAKE_NAME, ]
521-
verifylist = [('identifier', FAKE_NAME), ]
523+
def test_set_nothing(self, _make_client_sdk):
524+
_make_client_sdk.return_value = self.app.client_manager.network
525+
526+
self._network.is_dirty = False
527+
528+
arglist = [self._network.name, ]
529+
verifylist = [('identifier', self._network.name), ]
522530

523531
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
524532
self.assertRaises(exceptions.CommandError, self.cmd.take_action,

0 commit comments

Comments
 (0)