Author: tomaz
Date: Tue Dec 13 05:36:01 2011
New Revision: 1213566

URL: http://svn.apache.org/viewvc?rev=1213566&view=rev
Log:
Add implementation for ex_save_image method to the OpenStack 1.1 driver. This
patch has been contributed by Shawn Smith <shawnpsmith at gmail dot com> and
is part of LIBCLOUD-135.

Modified:
    libcloud/trunk/CHANGES
    libcloud/trunk/libcloud/compute/drivers/openstack.py
    libcloud/trunk/test/compute/test_openstack.py

Modified: libcloud/trunk/CHANGES
URL: 
http://svn.apache.org/viewvc/libcloud/trunk/CHANGES?rev=1213566&r1=1213565&r2=1213566&view=diff
==============================================================================
--- libcloud/trunk/CHANGES (original)
+++ libcloud/trunk/CHANGES Tue Dec 13 05:36:01 2011
@@ -9,6 +9,9 @@ Changes with Apache Libcloud in developm
        tests.
        [Hutson Betts]
 
+     - Add implementation for ex_save_image method to the OpenStack 1.1 driver.
+       [Shawn Smith]
+
   *) Load-balancer:
 
     - Add 'extra' attribute to the LoadBalancer object and retrieve all the

Modified: libcloud/trunk/libcloud/compute/drivers/openstack.py
URL: 
http://svn.apache.org/viewvc/libcloud/trunk/libcloud/compute/drivers/openstack.py?rev=1213566&r1=1213565&r2=1213566&view=diff
==============================================================================
--- libcloud/trunk/libcloud/compute/drivers/openstack.py (original)
+++ libcloud/trunk/libcloud/compute/drivers/openstack.py Tue Dec 13 05:36:01 
2011
@@ -929,16 +929,13 @@ class OpenStack_1_1_NodeDriver(OpenStack
         return resp.status == httplib.ACCEPTED
 
     def ex_save_image(self, node, name, metadata=None):
-        # This has not yet been implemented by OpenStack 1.1
-        raise NotImplementedError()
-
         optional_params = {}
         if metadata:
             optional_params['metadata'] = metadata
         resp = self._node_action(node, 'createImage', name=name,
                                  **optional_params)
         # TODO: concevt location header into NodeImage object
-        return resp.status == httplib.NO_CONTENT
+        return resp.status == httplib.ACCEPTED
 
     def ex_set_server_name(self, node, name):
         """

Modified: libcloud/trunk/test/compute/test_openstack.py
URL: 
http://svn.apache.org/viewvc/libcloud/trunk/test/compute/test_openstack.py?rev=1213566&r1=1213565&r2=1213566&view=diff
==============================================================================
--- libcloud/trunk/test/compute/test_openstack.py (original)
+++ libcloud/trunk/test/compute/test_openstack.py Tue Dec 13 05:36:01 2011
@@ -608,12 +608,8 @@ class OpenStack_1_1_Tests(unittest.TestC
             self.fail('An error was raised: ' + repr(e))
 
     def test_ex_save_image(self):
-        try:
-            self.driver.ex_save_image(self.node, 'new_image')
-        except NotImplementedError:
-            pass
-        else:
-            self.fail('An expected error was not raised')
+        result = self.driver.ex_save_image(self.node, 'new_image')
+        self.assertTrue(result)
 
     def test_ex_set_server_name(self):
         old_node = Node(


Reply via email to