From 95c8661f86e74c9d5217869a740da11350f1f0eb Mon Sep 17 00:00:00 2001 From: Nikita Gerasimov Date: Mon, 5 Dec 2016 20:47:40 +0300 Subject: Switch server create to block_device_mapping_v2 Current compute_client.servers.create() relies on block_device_mapping arg which is legacy[1]. "block_device_mapping" format require device_name which is leads to hard-coded hack in --volume key handler to KVM specific. "block_device_mapping_v2" format is more friendly to hypervisiors. Support of block_device_mapping_v2 appear in python-novaclient 2.16.0, openstackclient require at least 2.29.0 Makes options --volume and --block-device-mapping work simultaneously. Appends --block-device-mapping data even if --volume used. After bug 1383338 only --volume was taken when both are used. [1]http://docs.openstack.org/developer/nova/block_device_mapping.html NOTE(dtroyer): I moved the new test_boot_from_volume() functional test to Ie51b1c375c5940856ec76a5770df3c6bd18a3eba to test our previous behaviour. The only changes required to support the new behaviour should be that the empty_volume is now attached in that test. Change-Id: I7bac3d870dd9ca404093142f8bce22a62e49180d Closes-Bug: 1647406 Closes-Bug: 1497845 --- openstackclient/tests/functional/compute/v2/test_server.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'openstackclient/tests/functional/compute/v2') diff --git a/openstackclient/tests/functional/compute/v2/test_server.py b/openstackclient/tests/functional/compute/v2/test_server.py index b6ef8587..119ef05c 100644 --- a/openstackclient/tests/functional/compute/v2/test_server.py +++ b/openstackclient/tests/functional/compute/v2/test_server.py @@ -417,19 +417,23 @@ class ServerTests(base.TestCase): # NOTE(dtroyer): Prior to https://review.openstack.org/#/c/407111 # --block-device-mapping was ignored if --volume - # present on the command line, so this volume should - # not be attached. + # present on the command line. Now we should see the + # attachment. cmd_output = json.loads(self.openstack( 'volume show -f json ' + empty_volume_name )) attachments = cmd_output['attachments'] self.assertEqual( - 0, + 1, len(attachments), ) self.assertEqual( - "available", + server['id'], + attachments[0]['server_id'], + ) + self.assertEqual( + "in-use", cmd_output['status'], ) -- cgit v1.2.1