Skip to content

Commit 4b7e32c

Browse files
Zuulopenstack-gerrit
authored andcommitted
Merge "handle 'router create --flavor' option"
2 parents 1979c20 + 1f407af commit 4b7e32c

File tree

2 files changed

+60
-7
lines changed

2 files changed

+60
-7
lines changed

openstackclient/network/v2/router.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,9 @@ def _get_attrs(client_manager, parsed_args):
237237
if 'flavor_id' in parsed_args and parsed_args.flavor_id is not None:
238238
flavor = n_client.find_flavor(parsed_args.flavor_id)
239239
attrs['flavor_id'] = flavor.id
240+
elif 'flavor' in parsed_args and parsed_args.flavor is not None:
241+
flavor = n_client.find_flavor(parsed_args.flavor, ignore_missing=False)
242+
attrs['flavor_id'] = flavor.id
240243

241244
for attr in ('enable_default_route_bfd', 'enable_default_route_ecmp'):
242245
value = getattr(parsed_args, attr, None)

openstackclient/tests/unit/network/v2/test_router.py

Lines changed: 57 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -384,15 +384,14 @@ def test_create_with_tags(self):
384384
def test_create_with_no_tag(self):
385385
self._test_create_with_tag(add_tags=False)
386386

387-
def test_create_with_flavor_id_or_name(self):
387+
def test_create_with_flavor_id_id(self):
388388
_flavor = network_fakes.create_one_network_flavor()
389389
self.network_client.find_flavor = mock.Mock(return_value=_flavor)
390390
arglist = [
391391
self.new_router.name,
392392
'--flavor-id',
393393
_flavor.id,
394394
]
395-
arglist_with_name = [self.new_router.name, '--flavor-id', _flavor.name]
396395
verifylist = [
397396
('name', self.new_router.name),
398397
('enable', True),
@@ -412,18 +411,69 @@ def test_create_with_flavor_id_or_name(self):
412411
self.assertEqual(self.columns, columns)
413412
self.assertCountEqual(self.data, data)
414413

415-
self.network_client.create_router.reset_mock()
416-
verifylist_w_name = [
414+
def test_create_with_flavor_id_name(self):
415+
_flavor = network_fakes.create_one_network_flavor()
416+
self.network_client.find_flavor = mock.Mock(return_value=_flavor)
417+
arglist = [self.new_router.name, '--flavor-id', _flavor.name]
418+
verifylist = [
417419
('name', self.new_router.name),
418420
('enable', True),
419421
('distributed', False),
420422
('ha', False),
421423
('flavor_id', _flavor.name),
422424
]
423-
parsed_args_w_name = self.check_parser(
424-
self.cmd, arglist_with_name, verifylist_w_name
425+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
426+
columns, data = self.cmd.take_action(parsed_args)
427+
self.network_client.create_router.assert_called_once_with(
428+
**{
429+
'admin_state_up': True,
430+
'name': self.new_router.name,
431+
'flavor_id': _flavor.id,
432+
}
433+
)
434+
self.assertEqual(self.columns, columns)
435+
self.assertCountEqual(self.data, data)
436+
437+
def test_create_with_flavor_id(self):
438+
_flavor = network_fakes.create_one_network_flavor()
439+
self.network_client.find_flavor = mock.Mock(return_value=_flavor)
440+
arglist = [
441+
self.new_router.name,
442+
'--flavor',
443+
_flavor.id,
444+
]
445+
verifylist = [
446+
('name', self.new_router.name),
447+
('enable', True),
448+
('distributed', False),
449+
('ha', False),
450+
('flavor', _flavor.id),
451+
]
452+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
453+
columns, data = self.cmd.take_action(parsed_args)
454+
self.network_client.create_router.assert_called_once_with(
455+
**{
456+
'admin_state_up': True,
457+
'name': self.new_router.name,
458+
'flavor_id': _flavor.id,
459+
}
425460
)
426-
columns, data = self.cmd.take_action(parsed_args_w_name)
461+
self.assertEqual(self.columns, columns)
462+
self.assertCountEqual(self.data, data)
463+
464+
def test_create_with_flavor_name(self):
465+
_flavor = network_fakes.create_one_network_flavor()
466+
self.network_client.find_flavor = mock.Mock(return_value=_flavor)
467+
arglist = [self.new_router.name, '--flavor', _flavor.name]
468+
verifylist = [
469+
('name', self.new_router.name),
470+
('enable', True),
471+
('distributed', False),
472+
('ha', False),
473+
('flavor', _flavor.name),
474+
]
475+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
476+
columns, data = self.cmd.take_action(parsed_args)
427477
self.network_client.create_router.assert_called_once_with(
428478
**{
429479
'admin_state_up': True,

0 commit comments

Comments
 (0)