From 534744fe3855c28c0705654bff4d20e0b3a37041 Mon Sep 17 00:00:00 2001 From: gigimon Date: Wed, 29 Jan 2014 16:57:26 +0200 Subject: [PATCH] * add to node['extra']['block_device_mapping'] volume_id\n* fix in volume['extra'] parameter device (was incorrect xpath)\n* fix tests for coverage this --- libcloud/compute/drivers/ec2.py | 7 +++++-- libcloud/test/compute/test_ec2.py | 4 ++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/libcloud/compute/drivers/ec2.py b/libcloud/compute/drivers/ec2.py index 1eef018..f138f3d 100644 --- a/libcloud/compute/drivers/ec2.py +++ b/libcloud/compute/drivers/ec2.py @@ -527,6 +527,10 @@ RESOURCE_EXTRA_ATTRIBUTES_MAP = { 'xpath': 'ebs/snapshotId', 'transform_func': str }, + 'volume_id': { + 'xpath': 'ebs/volumeId', + 'transform_func': str + }, 'volume_size': { 'xpath': 'ebs/volumeSize', 'transform_func': int @@ -908,7 +912,7 @@ RESOURCE_EXTRA_ATTRIBUTES_MAP = { }, 'volume': { 'device': { - 'xpath': 'device', + 'xpath': 'attachmentSet/item/device', 'transform_func': str }, 'iops': { @@ -3519,7 +3523,6 @@ class BaseEC2NodeDriver(NodeDriver): value = findattr(element=element, xpath=values['xpath'], namespace=NAMESPACE) - if value is not None: extra[attribute] = transform_func(value) else: diff --git a/libcloud/test/compute/test_ec2.py b/libcloud/test/compute/test_ec2.py index 1dbd809..4d28faa 100644 --- a/libcloud/test/compute/test_ec2.py +++ b/libcloud/test/compute/test_ec2.py @@ -183,6 +183,9 @@ class EC2Tests(LibcloudTestCase, TestCaseMixin): self.assertEqual(node.extra['image_id'], 'ami-3215fe5a') self.assertEqual(len(node.extra['groups']), 2) self.assertEqual(len(node.extra['block_device_mapping']), 1) + self.assertEqual(node.extra['block_device_mapping'][0]['device_name'], '/dev/sda1') + self.assertEqual(node.extra['block_device_mapping'][0]['ebs']['volume_id'], 'vol-5e312311') + self.assertTrue(node.extra['block_device_mapping'][0]['ebs']['delete']) self.assertEqual(public_ips[0], '1.2.3.4') @@ -741,6 +744,7 @@ class EC2Tests(LibcloudTestCase, TestCaseMixin): self.assertEqual(8, volumes[2].size) self.assertEqual('in-use', volumes[2].extra['state']) self.assertEqual('i-d334b4b3', volumes[2].extra['instance_id']) + self.assertEqual('/dev/sda1', volumes[2].extra['device']) def test_create_volume(self): location = self.driver.list_locations()[0] -- 1.8.3.4 (Apple Git-47)