Author: tomaz
Date: Wed Sep 21 08:45:19 2011
New Revision: 1173526
URL: http://svn.apache.org/viewvc?rev=1173526&view=rev
Log:
Add ex_delete_image method to Rackspace driver. Patch has been submitted by
David
Busby <d dot busby at saiweb dot co dot uk> and is part of GH-27.
Modified:
libcloud/trunk/libcloud/compute/drivers/openstack.py
libcloud/trunk/test/compute/test_openstack.py
Modified: libcloud/trunk/libcloud/compute/drivers/openstack.py
URL:
http://svn.apache.org/viewvc/libcloud/trunk/libcloud/compute/drivers/openstack.py?rev=1173526&r1=1173525&r2=1173526&view=diff
==============================================================================
--- libcloud/trunk/libcloud/compute/drivers/openstack.py (original)
+++ libcloud/trunk/libcloud/compute/drivers/openstack.py Wed Sep 21 08:45:19
2011
@@ -619,6 +619,16 @@ class OpenStack_1_0_NodeDriver(NodeDrive
method="POST",
data=ET.tostring(image_elm)).object)
+ def ex_delete_image(self, image):
+ """Delete an image for node.
+
+ @keyword image: the image to be deleted
+ @param image: L{NodeImage}
+ """
+ uri = '/images/%s' % image.id
+ resp = self.connection.request(uri, method='DELETE')
+ return resp.status == 204
+
def _to_shared_ip_group(self, el):
servers_el = self._findall(el, 'servers')
if servers_el:
Modified: libcloud/trunk/test/compute/test_openstack.py
URL:
http://svn.apache.org/viewvc/libcloud/trunk/test/compute/test_openstack.py?rev=1173526&r1=1173525&r2=1173526&view=diff
==============================================================================
--- libcloud/trunk/test/compute/test_openstack.py (original)
+++ libcloud/trunk/test/compute/test_openstack.py Wed Sep 21 08:45:19 2011
@@ -194,6 +194,12 @@ class OpenStackTests(unittest.TestCase,
self.assertEqual(image.name, "imgtest")
self.assertEqual(image.id, "12345")
+ def test_ex_delete_image(self):
+ image = NodeImage(id=333111, name='Ubuntu 8.10 (intrepid)',
+ driver=self.driver)
+ ret = self.driver.ex_delete_image(image)
+ self.assertTrue(ret)
+
def test_ex_list_ip_addresses(self):
ret = self.driver.ex_list_ip_addresses(node_id=72258)
self.assertEquals(2, len(ret.public_addresses))
@@ -329,6 +335,13 @@ class OpenStackMockHttp(MockHttpTestCase
body = self.fixtures.load('v1_slug_servers_detail_metadata.xml')
return (httplib.OK, body, XML_HEADERS, httplib.responses[httplib.OK])
+ def _v1_0_slug_images_333111(self, method, url, body, headers):
+ if method != "DELETE":
+ raise NotImplemented
+ # this is currently used for deletion of an image
+ # as such it should not accept GET/POST
+ return(httplib.NO_CONTENT,"","",httplib.responses[httplib.NO_CONTENT])
+
def _v1_0_slug_images(self, method, url, body, headers):
if method != "POST":
raise NotImplemented