summaryrefslogtreecommitdiff
path: root/openstackclient/tests/unit
diff options
context:
space:
mode:
authorMatt Riedemann <mriedem.os@gmail.com>2019-08-01 15:11:29 -0400
committerMatt Riedemann <mriedem.os@gmail.com>2019-08-09 16:44:46 +0000
commitb9d63105566c84db11a976846844ad7b3a0b331e (patch)
tree66e9aeee501de4c87a33aafd6c088b9f11b3c0f8 /openstackclient/tests/unit
parentc28ed25e3a6f2d9cf5fc349c544354a9d07aa957 (diff)
downloadpython-openstackclient-b9d63105566c84db11a976846844ad7b3a0b331e.tar.gz
Add openstack server create --boot-from-volume option
This adds a --boot-from-volume option to the server create command which is used with the --image or --image-property option and will create a volume-backed server from the specified image with the specified size. Similar to the --volume option, the created root volume will not be deleted when the server is deleted. The --boot-from-volume option is not allowed with the --volume option since they both create a block device mapping with boot_index=0. Change-Id: I88c590361cb232c1df7b5bb010dcea307080d34c Story: 2006302 Task: 36017
Diffstat (limited to 'openstackclient/tests/unit')
-rw-r--r--openstackclient/tests/unit/compute/v2/test_server.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/openstackclient/tests/unit/compute/v2/test_server.py b/openstackclient/tests/unit/compute/v2/test_server.py
index cd12db06..ae6b6e40 100644
--- a/openstackclient/tests/unit/compute/v2/test_server.py
+++ b/openstackclient/tests/unit/compute/v2/test_server.py
@@ -1698,6 +1698,33 @@ class TestServerCreate(TestServer):
self.cmd.take_action,
parsed_args)
+ def test_server_create_volume_boot_from_volume_conflict(self):
+ # Tests that specifying --volume and --boot-from-volume results in
+ # an error. Since --boot-from-volume requires --image or
+ # --image-property but those are in a mutex group with --volume, we
+ # only specify --volume and --boot-from-volume for this test since
+ # the validation is not handled with argparse.
+ arglist = [
+ '--flavor', self.flavor.id,
+ '--volume', 'volume1',
+ '--boot-from-volume', '1',
+ self.new_server.name,
+ ]
+ verifylist = [
+ ('flavor', self.flavor.id),
+ ('volume', 'volume1'),
+ ('boot_from_volume', 1),
+ ('config_drive', False),
+ ('server_name', self.new_server.name),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ ex = self.assertRaises(exceptions.CommandError,
+ self.cmd.take_action, parsed_args)
+ # Assert it is the error we expect.
+ self.assertIn('--volume is not allowed with --boot-from-volume',
+ six.text_type(ex))
+
def test_server_create_image_property(self):
arglist = [
'--image-property', 'hypervisor_type=qemu',