diff options
author | zhangbailin <zhangbailin@inspur.com> | 2019-05-23 08:18:00 +0800 |
---|---|---|
committer | zhangbailin <zhangbailin@inspur.com> | 2019-05-23 08:18:04 +0800 |
commit | 7b9d3000893aefa9c5efc77b50dc0fec5cab29be (patch) | |
tree | 36999cf4b97b87cd4dc7171deb9829d2b897e881 /novaclient | |
parent | dfb84228a2748bed82f9b83c1209d5e2e0557bfa (diff) | |
download | python-novaclient-7b9d3000893aefa9c5efc77b50dc0fec5cab29be.tar.gz |
Set the lower limit of api_version for volume_type
In boot server API, the volume_type is supported by microversion 2.67.
Therefore, the lower limit of the volume_type should be added to the CLI
command, otherwise an exception will occur.
Co-Authored-By: Eric Xie <eric_xiett@163.com>
Closes-Bug: #1829854
Change-Id: Ie909c16568b017ca0acc802194140da7bece76c5
Diffstat (limited to 'novaclient')
-rw-r--r-- | novaclient/tests/unit/v2/test_shell.py | 28 | ||||
-rw-r--r-- | novaclient/v2/shell.py | 2 |
2 files changed, 29 insertions, 1 deletions
diff --git a/novaclient/tests/unit/v2/test_shell.py b/novaclient/tests/unit/v2/test_shell.py index 4f2ee258..354475dc 100644 --- a/novaclient/tests/unit/v2/test_shell.py +++ b/novaclient/tests/unit/v2/test_shell.py @@ -624,6 +624,34 @@ class ShellTest(utils.TestCase): 'size=1,format=ext4,type=disk,shutdown=foobar ' 'some-server' % FAKE_UUID_1)) + def test_boot_from_volume_with_volume_type_latest_microversion(self): + self.run_command( + 'boot --flavor 1 --block-device id=%s,source=image,dest=volume,' + 'size=1,bootindex=0,shutdown=remove,tag=foo,volume_type=lvm ' + 'bfv-server' % FAKE_UUID_1, api_version='2.latest') + self.assert_called_anytime( + 'POST', '/servers', + {'server': { + 'flavorRef': '1', + 'name': 'bfv-server', + 'block_device_mapping_v2': [ + { + 'uuid': FAKE_UUID_1, + 'source_type': 'image', + 'destination_type': 'volume', + 'volume_size': '1', + 'delete_on_termination': True, + 'tag': 'foo', + 'boot_index': '0', + 'volume_type': 'lvm' + }, + ], + 'networks': 'auto', + 'imageRef': '', + 'min_count': 1, + 'max_count': 1, + }}) + def test_boot_from_volume_with_volume_type_old_microversion(self): ex = self.assertRaises( exceptions.CommandError, self.run_command, diff --git a/novaclient/v2/shell.py b/novaclient/v2/shell.py index 88ebf2d7..6653aa2f 100644 --- a/novaclient/v2/shell.py +++ b/novaclient/v2/shell.py @@ -145,7 +145,7 @@ def _parse_block_device_mapping_v2(cs, args, image): 'delete_on_termination': False} bdm.append(bdm_dict) - supports_volume_type = cs.api_version == api_versions.APIVersion('2.67') + supports_volume_type = cs.api_version >= api_versions.APIVersion('2.67') for device_spec in args.block_device: spec_dict = _parse_device_spec(device_spec) |