Merge "Error out if nic auto or none are not alone"
This commit is contained in:
commit
c45bb4dfc7
novaclient
@ -650,6 +650,30 @@ class ShellTest(utils.TestCase):
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def test_boot_nic_auto_not_alone_after(self):
|
||||||
|
cmd = ('boot --image %s --flavor 1 '
|
||||||
|
'--nic auto,tag=foo some-server' %
|
||||||
|
FAKE_UUID_1)
|
||||||
|
self.assertRaises(exceptions.CommandError, self.run_command, cmd)
|
||||||
|
|
||||||
|
def test_boot_nic_auto_not_alone_before(self):
|
||||||
|
cmd = ('boot --image %s --flavor 1 '
|
||||||
|
'--nic tag=foo,auto some-server' %
|
||||||
|
FAKE_UUID_1)
|
||||||
|
self.assertRaises(exceptions.CommandError, self.run_command, cmd)
|
||||||
|
|
||||||
|
def test_boot_nic_none_not_alone_before(self):
|
||||||
|
cmd = ('boot --image %s --flavor 1 '
|
||||||
|
'--nic none,tag=foo some-server' %
|
||||||
|
FAKE_UUID_1)
|
||||||
|
self.assertRaises(exceptions.CommandError, self.run_command, cmd)
|
||||||
|
|
||||||
|
def test_boot_nic_none_not_alone_after(self):
|
||||||
|
cmd = ('boot --image %s --flavor 1 '
|
||||||
|
'--nic tag=foo,none some-server' %
|
||||||
|
FAKE_UUID_1)
|
||||||
|
self.assertRaises(exceptions.CommandError, self.run_command, cmd)
|
||||||
|
|
||||||
def test_boot_nics(self):
|
def test_boot_nics(self):
|
||||||
cmd = ('boot --image %s --flavor 1 '
|
cmd = ('boot --image %s --flavor 1 '
|
||||||
'--nic net-id=a=c,v4-fixed-ip=10.0.0.1 some-server' %
|
'--nic net-id=a=c,v4-fixed-ip=10.0.0.1 some-server' %
|
||||||
|
@ -310,12 +310,30 @@ def _parse_nics(cs, args):
|
|||||||
auto_or_none = False
|
auto_or_none = False
|
||||||
nics = []
|
nics = []
|
||||||
for nic_str in args.nics:
|
for nic_str in args.nics:
|
||||||
|
nic_info_set = False
|
||||||
for kv_str in nic_str.split(","):
|
for kv_str in nic_str.split(","):
|
||||||
|
if auto_or_none:
|
||||||
|
# Since we start with auto_or_none being False, it being true
|
||||||
|
# means we've parsed an auto or none argument, then continued
|
||||||
|
# after the comma to another key=value pair. Since auto or none
|
||||||
|
# can only be given by themselves, raise.
|
||||||
|
raise exceptions.CommandError(_("'auto' or 'none' cannot be "
|
||||||
|
"used with any other nic "
|
||||||
|
"arguments"))
|
||||||
try:
|
try:
|
||||||
# handle the special auto/none cases
|
# handle the special auto/none cases
|
||||||
if kv_str in ('auto', 'none'):
|
if kv_str in ('auto', 'none'):
|
||||||
if not supports_auto_alloc:
|
if not supports_auto_alloc:
|
||||||
raise exceptions.CommandError(err_msg % nic_str)
|
raise exceptions.CommandError(err_msg % nic_str)
|
||||||
|
if nic_info_set:
|
||||||
|
# Since we start with nic_info_set being False, it
|
||||||
|
# being true means we've parsed a key=value pair, then
|
||||||
|
# landed on a auto or none argument after the comma.
|
||||||
|
# Since auto or none can only be given by themselves,
|
||||||
|
# raise.
|
||||||
|
raise exceptions.CommandError(
|
||||||
|
_("'auto' or 'none' cannot be used with any "
|
||||||
|
"other nic arguments"))
|
||||||
nics.append(kv_str)
|
nics.append(kv_str)
|
||||||
auto_or_none = True
|
auto_or_none = True
|
||||||
continue
|
continue
|
||||||
@ -332,6 +350,7 @@ def _parse_nics(cs, args):
|
|||||||
if nic_info[k]:
|
if nic_info[k]:
|
||||||
raise exceptions.CommandError(err_msg % nic_str)
|
raise exceptions.CommandError(err_msg % nic_str)
|
||||||
nic_info[k] = v
|
nic_info[k] = v
|
||||||
|
nic_info_set = True
|
||||||
else:
|
else:
|
||||||
raise exceptions.CommandError(err_msg % nic_str)
|
raise exceptions.CommandError(err_msg % nic_str)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user