Repository: libcloud
Updated Branches:
  refs/heads/trunk d608085e3 -> 4edca4b16


Add extra data from openstack volume to object

Closes #366

Signed-off-by: Tomaz Muraus <[email protected]>


Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/4edca4b1
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/4edca4b1
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/4edca4b1

Branch: refs/heads/trunk
Commit: 4edca4b16ad4e216431ace2a65da222b5b9679f3
Parents: d608085
Author: Gertjan Oude Lohuis <[email protected]>
Authored: Thu Sep 25 11:23:50 2014 +0200
Committer: Tomaz Muraus <[email protected]>
Committed: Sat Sep 27 18:45:45 2014 +0200

----------------------------------------------------------------------
 CHANGES.rst                             |  5 +++++
 libcloud/compute/drivers/openstack.py   |  5 +++++
 libcloud/test/compute/test_openstack.py | 30 +++++++++++++++++++++-------
 3 files changed, 33 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/4edca4b1/CHANGES.rst
----------------------------------------------------------------------
diff --git a/CHANGES.rst b/CHANGES.rst
index fba5f48..15454fd 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -126,6 +126,11 @@ Compute
   (GITHUB-363)
   [Jeroen de Korte]
 
+- Add additional attributes to the ``extra`` dictionary of OpenStack
+  StorageVolume object.
+  (GITHUB-366)
+  [Gertjan Oude Lohuis]
+
 Storage
 ~~~~~~~
 

http://git-wip-us.apache.org/repos/asf/libcloud/blob/4edca4b1/libcloud/compute/drivers/openstack.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/openstack.py 
b/libcloud/compute/drivers/openstack.py
index 01fadee..e7a89f8 100644
--- a/libcloud/compute/drivers/openstack.py
+++ b/libcloud/compute/drivers/openstack.py
@@ -2018,6 +2018,11 @@ class OpenStack_1_1_NodeDriver(OpenStackNodeDriver):
             extra={
                 'description': api_node['displayDescription'],
                 'attachments': [att for att in api_node['attachments'] if att],
+                'state': api_node.get('status', None),
+                'location': api_node.get('availabilityZone', None),
+                'volume_type': api_node.get('volumeType', None),
+                'metadata': api_node.get('metadata', None),
+                'created_at': api_node.get('createdAt', None)
             }
         )
 

http://git-wip-us.apache.org/repos/asf/libcloud/blob/4edca4b1/libcloud/test/compute/test_openstack.py
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/test_openstack.py 
b/libcloud/test/compute/test_openstack.py
index e52c6d9..1b0860d 100644
--- a/libcloud/test/compute/test_openstack.py
+++ b/libcloud/test/compute/test_openstack.py
@@ -794,18 +794,34 @@ class OpenStack_1_1_Tests(unittest.TestCase, 
TestCaseMixin):
         self.assertEqual('cd76a3a1-c4ce-40f6-9b9f-07a61508938d', volume.id)
         self.assertEqual('test_volume_2', volume.name)
         self.assertEqual(2, volume.size)
-
-        self.assertEqual(volume.extra['description'], '')
-        self.assertEqual(volume.extra['attachments'][0][
-                         'id'], 'cd76a3a1-c4ce-40f6-9b9f-07a61508938d')
+        self.assertEqual(volume.extra, {
+            'description': '',
+            'attachments': [{
+                'id': 'cd76a3a1-c4ce-40f6-9b9f-07a61508938d',
+                "device": "/dev/vdb",
+                "serverId": "12065",
+                "volumeId": "cd76a3a1-c4ce-40f6-9b9f-07a61508938d",
+            }],
+            'state': 'available',
+            'location': 'nova',
+            'volume_type': 'None',
+            'metadata': {},
+            'created_at': '2013-06-24T11:20:13.000000',
+        })
 
         volume = volumes[1]
         self.assertEqual('cfcec3bc-b736-4db5-9535-4c24112691b5', volume.id)
         self.assertEqual('test_volume', volume.name)
         self.assertEqual(50, volume.size)
-
-        self.assertEqual(volume.extra['description'], 'some description')
-        self.assertEqual(volume.extra['attachments'], [])
+        self.assertEqual(volume.extra, {
+            'description': 'some description',
+            'attachments': [],
+            'state': 'available',
+            'location': 'nova',
+            'volume_type': 'None',
+            'metadata': {},
+            'created_at': '2013-06-21T12:39:02.000000',
+        })
 
     def test_list_sizes(self):
         sizes = self.driver.list_sizes()

Reply via email to