Added support for vCloud 5.5 (from philip.kers...@stfc.ac.uk)

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

Branch: refs/heads/trunk
Commit: 724a91a86a6a5175957d5d53a596ea2d97377d9d
Parents: ab6a750
Author: Juan Font Alonso <juanfontalo...@gmail.com>
Authored: Thu Dec 10 10:36:53 2015 +0100
Committer: anthony-shaw <anthony.p.s...@gmail.com>
Committed: Mon Feb 15 09:44:49 2016 +1100

----------------------------------------------------------------------
 libcloud/compute/drivers/vcloud.py | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/libcloud/blob/724a91a8/libcloud/compute/drivers/vcloud.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/vcloud.py 
b/libcloud/compute/drivers/vcloud.py
index 0d0f208..499846b 100644
--- a/libcloud/compute/drivers/vcloud.py
+++ b/libcloud/compute/drivers/vcloud.py
@@ -387,6 +387,8 @@ class VCloudNodeDriver(NodeDriver):
                 cls = VCloud_1_5_NodeDriver
             elif api_version == '5.1':
                 cls = VCloud_5_1_NodeDriver
+            elif api_version == '5.5':
+                cls = VCloud_5_5_NodeDriver
             else:
                 raise NotImplementedError(
                     "No VCloudNodeDriver found for API version %s" %
@@ -864,6 +866,13 @@ class VCloud_1_5_Connection(VCloudConnection):
         return headers
 
 
+class VCloud_5_5_Connection(VCloud_1_5_Connection):
+    def add_default_headers(self, headers):
+        headers['Accept'] = 'application/*+xml;version=5.5'
+        headers['x-vcloud-authorization'] = self.token
+        return headers
+
+
 class Instantiate_1_5_VAppXML(object):
 
     def __init__(self, name, template, network, vm_network=None,
@@ -2086,3 +2095,10 @@ class VCloud_5_1_NodeDriver(VCloud_1_5_NodeDriver):
             # MB
             raise ValueError(
                 '%s is not a valid vApp VM memory value' % (vm_memory))
+
+
+class VCloud_5_5_NodeDriver(VCloud_5_1_NodeDriver):
+    '''Use 5.5 Connection class to explicitly set 5.5 for the version in
+    Accept headers
+    '''
+    connectionCls = VCloud_5_5_Connection

Reply via email to