diff options
author | Zuul <zuul@review.opendev.org> | 2019-09-25 10:37:03 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2019-09-25 10:37:03 +0000 |
commit | d5b5a20de15a016d341c5e9d3092478f7a12c3e8 (patch) | |
tree | 0d6eadaf69e43fa9032a0f7bf37c218a4329fa96 /novaclient | |
parent | 5d236ce6ba2cadc982862ce0372a61423f7f5288 (diff) | |
parent | d1c5dc61d60b29428484a38703a0064933cc7c0e (diff) | |
download | python-novaclient-d5b5a20de15a016d341c5e9d3092478f7a12c3e8.tar.gz |
Merge "Add a check for --config-drive option on nova boot"
Diffstat (limited to 'novaclient')
-rw-r--r-- | novaclient/tests/unit/v2/test_shell.py | 35 | ||||
-rw-r--r-- | novaclient/v2/servers.py | 4 | ||||
-rw-r--r-- | novaclient/v2/shell.py | 6 |
3 files changed, 27 insertions, 18 deletions
diff --git a/novaclient/tests/unit/v2/test_shell.py b/novaclient/tests/unit/v2/test_shell.py index a57c3794..ad233c5e 100644 --- a/novaclient/tests/unit/v2/test_shell.py +++ b/novaclient/tests/unit/v2/test_shell.py @@ -240,42 +240,42 @@ class ShellTest(utils.TestCase): }}, ) - def test_boot_config_drive(self): + def test_boot_access_ip(self): self.run_command( - 'boot --flavor 1 --image %s --config-drive 1 some-server' % - FAKE_UUID_1) + 'boot --flavor 1 --image %s --access-ip-v4 10.10.10.10 ' + '--access-ip-v6 ::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, + 'accessIPv4': '10.10.10.10', + 'accessIPv6': '::1', 'max_count': 1, - 'config_drive': True + 'min_count': 1 }}, ) - def test_boot_access_ip(self): + def test_boot_config_drive(self): self.run_command( - 'boot --flavor 1 --image %s --access-ip-v4 10.10.10.10 ' - '--access-ip-v6 ::1 some-server' % FAKE_UUID_1) + '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, - 'accessIPv4': '10.10.10.10', - 'accessIPv6': '::1', + 'min_count': 1, 'max_count': 1, - 'min_count': 1 + 'config_drive': True }}, ) - def test_boot_config_drive_custom(self): + def test_boot_config_drive_false(self): self.run_command( - 'boot --flavor 1 --image %s --config-drive /dev/hda some-server' % + 'boot --flavor 1 --image %s --config-drive false some-server' % FAKE_UUID_1) self.assert_called_anytime( 'POST', '/servers', @@ -285,10 +285,17 @@ class ShellTest(utils.TestCase): 'imageRef': FAKE_UUID_1, 'min_count': 1, 'max_count': 1, - 'config_drive': '/dev/hda' }}, ) + 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') diff --git a/novaclient/v2/servers.py b/novaclient/v2/servers.py index 9870be0b..1351189b 100644 --- a/novaclient/v2/servers.py +++ b/novaclient/v2/servers.py @@ -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'. diff --git a/novaclient/v2/shell.py b/novaclient/v2/shell.py index 2dfd5c92..5aab35af 100644 --- a/novaclient/v2/shell.py +++ b/novaclient/v2/shell.py @@ -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', |