Add a check for --config-drive option on nova boot
A value of the '--config-drive' option must be a boolean value on the 'nova boot' command because nova accepts a boolean value only for the 'config_drive' parameter. So add a check for the '--config-drive' option on the 'nova boot' command. Fix a description for 'config_drive' parameter in the 'create' method of the novaclient.v2.ServerManager class. Change-Id: Ic6e65139302fbb662fb6ba60e73633dad8ffb72e Closes-Bug: #1825061
This commit is contained in:
parent
730bc2c47e
commit
d1c5dc61d6
@ -1089,7 +1089,8 @@ quality of service support, microversion ``2.72`` is required.
|
||||
versions '2.42' - '2.latest')
|
||||
|
||||
``--config-drive <value>``
|
||||
Enable config drive.
|
||||
Enable config drive. The value must be a
|
||||
boolean value.
|
||||
|
||||
``--poll``
|
||||
Report the new server boot progress until it
|
||||
|
@ -240,22 +240,6 @@ class ShellTest(utils.TestCase):
|
||||
}},
|
||||
)
|
||||
|
||||
def test_boot_config_drive(self):
|
||||
self.run_command(
|
||||
'boot --flavor 1 --image %s --config-drive 1 some-server' %
|
||||
FAKE_UUID_1)
|
||||
self.assert_called_anytime(
|
||||
'POST', '/servers',
|
||||
{'server': {
|
||||
'flavorRef': '1',
|
||||
'name': 'some-server',
|
||||
'imageRef': FAKE_UUID_1,
|
||||
'min_count': 1,
|
||||
'max_count': 1,
|
||||
'config_drive': True
|
||||
}},
|
||||
)
|
||||
|
||||
def test_boot_access_ip(self):
|
||||
self.run_command(
|
||||
'boot --flavor 1 --image %s --access-ip-v4 10.10.10.10 '
|
||||
@ -273,9 +257,9 @@ class ShellTest(utils.TestCase):
|
||||
}},
|
||||
)
|
||||
|
||||
def test_boot_config_drive_custom(self):
|
||||
def test_boot_config_drive(self):
|
||||
self.run_command(
|
||||
'boot --flavor 1 --image %s --config-drive /dev/hda some-server' %
|
||||
'boot --flavor 1 --image %s --config-drive 1 some-server' %
|
||||
FAKE_UUID_1)
|
||||
self.assert_called_anytime(
|
||||
'POST', '/servers',
|
||||
@ -285,10 +269,33 @@ class ShellTest(utils.TestCase):
|
||||
'imageRef': FAKE_UUID_1,
|
||||
'min_count': 1,
|
||||
'max_count': 1,
|
||||
'config_drive': '/dev/hda'
|
||||
'config_drive': True
|
||||
}},
|
||||
)
|
||||
|
||||
def test_boot_config_drive_false(self):
|
||||
self.run_command(
|
||||
'boot --flavor 1 --image %s --config-drive false some-server' %
|
||||
FAKE_UUID_1)
|
||||
self.assert_called_anytime(
|
||||
'POST', '/servers',
|
||||
{'server': {
|
||||
'flavorRef': '1',
|
||||
'name': 'some-server',
|
||||
'imageRef': FAKE_UUID_1,
|
||||
'min_count': 1,
|
||||
'max_count': 1,
|
||||
}},
|
||||
)
|
||||
|
||||
def test_boot_config_drive_invalid_value(self):
|
||||
ex = self.assertRaises(
|
||||
exceptions.CommandError, self.run_command,
|
||||
'boot --flavor 1 --image %s --config-drive /dev/hda some-server' %
|
||||
FAKE_UUID_1)
|
||||
self.assertIn("The value of the '--config-drive' option must be "
|
||||
"a boolean value.", six.text_type(ex))
|
||||
|
||||
def test_boot_invalid_user_data(self):
|
||||
invalid_file = os.path.join(os.path.dirname(__file__),
|
||||
'no_such_file')
|
||||
|
@ -1375,8 +1375,8 @@ class ServerManager(base.BootingManagerWithFind):
|
||||
any networking for the server.
|
||||
:param scheduler_hints: (optional extension) arbitrary key-value pairs
|
||||
specified by the client to help boot an instance
|
||||
:param config_drive: (optional extension) value for config drive
|
||||
either boolean, or volume-id
|
||||
:param config_drive: (optional extension) a boolean value to enable
|
||||
config drive
|
||||
:param disk_config: (optional extension) control how the disk is
|
||||
partitioned when the server is created. possible
|
||||
values are 'AUTO' or 'MANUAL'.
|
||||
|
@ -506,7 +506,9 @@ def _boot(cs, args):
|
||||
elif str(args.config_drive).lower() in ("false", "0", "", "none"):
|
||||
config_drive = None
|
||||
else:
|
||||
config_drive = args.config_drive
|
||||
raise exceptions.CommandError(
|
||||
_("The value of the '--config-drive' option must be "
|
||||
"a boolean value."))
|
||||
|
||||
boot_kwargs = dict(
|
||||
meta=meta,
|
||||
@ -906,7 +908,7 @@ def _boot(cs, args):
|
||||
metavar="<value>",
|
||||
dest='config_drive',
|
||||
default=False,
|
||||
help=_("Enable config drive."))
|
||||
help=_("Enable config drive. The value must be a boolean value."))
|
||||
@utils.arg(
|
||||
'--poll',
|
||||
dest='poll',
|
||||
|
5
releasenotes/notes/bug-1825061-2beb95db4d6df0cb.yaml
Normal file
5
releasenotes/notes/bug-1825061-2beb95db4d6df0cb.yaml
Normal file
@ -0,0 +1,5 @@
|
||||
---
|
||||
fixes:
|
||||
- |
|
||||
A check for a value of the '--config-drive' option has been added on the
|
||||
``nova boot`` command. A boolean value is only allowed in the option now.
|
Loading…
Reference in New Issue
Block a user