summaryrefslogtreecommitdiff
path: root/openstackclient/tests/unit/compute/v2
diff options
context:
space:
mode:
authorStephen Finucane <sfinucan@redhat.com>2021-01-20 15:34:25 +0000
committerStephen Finucane <sfinucan@redhat.com>2021-01-21 11:01:15 +0000
commit074e045c6938189c77fd13ce4dd9fccf69d3a12a (patch)
treeeaa7048ffc65195e5818dec1dfdf9b770df05750 /openstackclient/tests/unit/compute/v2
parenta52beacaa6fcc11d48f5b742c73aa2c0f87634ce (diff)
downloadpython-openstackclient-074e045c6938189c77fd13ce4dd9fccf69d3a12a.tar.gz
compute: Improve 'server create --block-device-mapping' option parsing
Once again, custom actions to the rescue. Change-Id: I6b4f80882dbbeb6a2a7e877f63becae7211b7f9a Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Diffstat (limited to 'openstackclient/tests/unit/compute/v2')
-rw-r--r--openstackclient/tests/unit/compute/v2/test_server.py105
1 files changed, 76 insertions, 29 deletions
diff --git a/openstackclient/tests/unit/compute/v2/test_server.py b/openstackclient/tests/unit/compute/v2/test_server.py
index ce04ea4c..58daf531 100644
--- a/openstackclient/tests/unit/compute/v2/test_server.py
+++ b/openstackclient/tests/unit/compute/v2/test_server.py
@@ -1935,7 +1935,15 @@ class TestServerCreate(TestServer):
verifylist = [
('image', 'image1'),
('flavor', self.flavor.id),
- ('block_device_mapping', {'vda': self.volume.name + ':::false'}),
+ ('block_device_mapping', [
+ {
+ 'device_name': 'vda',
+ 'uuid': self.volume.name,
+ 'source_type': 'volume',
+ 'destination_type': 'volume',
+ 'delete_on_termination': 'false',
+ }
+ ]),
('config_drive', False),
('server_name', self.new_server.name),
]
@@ -1988,7 +1996,14 @@ class TestServerCreate(TestServer):
verifylist = [
('image', 'image1'),
('flavor', self.flavor.id),
- ('block_device_mapping', {'vdf': self.volume.name}),
+ ('block_device_mapping', [
+ {
+ 'device_name': 'vdf',
+ 'uuid': self.volume.name,
+ 'source_type': 'volume',
+ 'destination_type': 'volume',
+ }
+ ]),
('config_drive', False),
('server_name', self.new_server.name),
]
@@ -2040,7 +2055,14 @@ class TestServerCreate(TestServer):
verifylist = [
('image', 'image1'),
('flavor', self.flavor.id),
- ('block_device_mapping', {'vdf': self.volume.name + ':::'}),
+ ('block_device_mapping', [
+ {
+ 'device_name': 'vdf',
+ 'uuid': self.volume.name,
+ 'source_type': 'volume',
+ 'destination_type': 'volume',
+ }
+ ]),
('config_drive', False),
('server_name', self.new_server.name),
]
@@ -2093,8 +2115,16 @@ class TestServerCreate(TestServer):
verifylist = [
('image', 'image1'),
('flavor', self.flavor.id),
- ('block_device_mapping',
- {'vde': self.volume.name + ':volume:3:true'}),
+ ('block_device_mapping', [
+ {
+ 'device_name': 'vde',
+ 'uuid': self.volume.name,
+ 'source_type': 'volume',
+ 'destination_type': 'volume',
+ 'volume_size': '3',
+ 'delete_on_termination': 'true',
+ }
+ ]),
('config_drive', False),
('server_name', self.new_server.name),
]
@@ -2149,8 +2179,16 @@ class TestServerCreate(TestServer):
verifylist = [
('image', 'image1'),
('flavor', self.flavor.id),
- ('block_device_mapping',
- {'vds': self.volume.name + ':snapshot:5:true'}),
+ ('block_device_mapping', [
+ {
+ 'device_name': 'vds',
+ 'uuid': self.volume.name,
+ 'source_type': 'snapshot',
+ 'volume_size': '5',
+ 'destination_type': 'volume',
+ 'delete_on_termination': 'true',
+ }
+ ]),
('config_drive', False),
('server_name', self.new_server.name),
]
@@ -2205,8 +2243,22 @@ class TestServerCreate(TestServer):
verifylist = [
('image', 'image1'),
('flavor', self.flavor.id),
- ('block_device_mapping', {'vdb': self.volume.name + ':::false',
- 'vdc': self.volume.name + ':::true'}),
+ ('block_device_mapping', [
+ {
+ 'device_name': 'vdb',
+ 'uuid': self.volume.name,
+ 'source_type': 'volume',
+ 'destination_type': 'volume',
+ 'delete_on_termination': 'false',
+ },
+ {
+ 'device_name': 'vdc',
+ 'uuid': self.volume.name,
+ 'source_type': 'volume',
+ 'destination_type': 'volume',
+ 'delete_on_termination': 'true',
+ },
+ ]),
('config_drive', False),
('server_name', self.new_server.name),
]
@@ -2259,26 +2311,29 @@ class TestServerCreate(TestServer):
self.assertEqual(self.datalist(), data)
def test_server_create_with_block_device_mapping_invalid_format(self):
- # 1. block device mapping don't contain equal sign "="
+ # block device mapping don't contain equal sign "="
arglist = [
'--image', 'image1',
'--flavor', self.flavor.id,
'--block-device-mapping', 'not_contain_equal_sign',
self.new_server.name,
]
- self.assertRaises(argparse.ArgumentTypeError,
- self.check_parser,
- self.cmd, arglist, [])
- # 2. block device mapping don't contain device name "=uuid:::true"
+ self.assertRaises(
+ argparse.ArgumentTypeError,
+ self.check_parser,
+ self.cmd, arglist, [])
+
+ # block device mapping don't contain device name "=uuid:::true"
arglist = [
'--image', 'image1',
'--flavor', self.flavor.id,
'--block-device-mapping', '=uuid:::true',
self.new_server.name,
]
- self.assertRaises(argparse.ArgumentTypeError,
- self.check_parser,
- self.cmd, arglist, [])
+ self.assertRaises(
+ argparse.ArgumentTypeError,
+ self.check_parser,
+ self.cmd, arglist, [])
def test_server_create_with_block_device_mapping_no_uuid(self):
arglist = [
@@ -2287,18 +2342,10 @@ class TestServerCreate(TestServer):
'--block-device-mapping', 'vdb=',
self.new_server.name,
]
- verifylist = [
- ('image', 'image1'),
- ('flavor', self.flavor.id),
- ('block_device_mapping', {'vdb': ''}),
- ('config_drive', False),
- ('server_name', self.new_server.name),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- self.assertRaises(exceptions.CommandError,
- self.cmd.take_action,
- parsed_args)
+ self.assertRaises(
+ argparse.ArgumentTypeError,
+ self.check_parser,
+ self.cmd, arglist, [])
def test_server_create_volume_boot_from_volume_conflict(self):
# Tests that specifying --volume and --boot-from-volume results in