Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions libcloud/compute/drivers/openstack.py
Original file line number Diff line number Diff line change
Expand Up @@ -607,6 +607,16 @@ def ex_save_image(self, node, name):
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{Image}
"""
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:
Expand Down
14 changes: 14 additions & 0 deletions test/compute/test_openstack.py
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,13 @@ def test_ex_save_image(self):
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 is True)


def test_ex_list_ip_addresses(self):
ret = self.driver.ex_list_ip_addresses(node_id=72258)
self.assertEquals(2, len(ret.public_addresses))
Expand Down Expand Up @@ -329,6 +336,13 @@ def _v1_0_slug_servers_detail_METADATA(self, method, url, body, headers):
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
Expand Down