Merge branch 'syncsteps' of git://git.planet-lab.org/plstackapi
authorSapan Bhatia <gwsapan@gmail.com>
Mon, 2 Sep 2013 20:09:42 +0000 (16:09 -0400)
committerSapan Bhatia <gwsapan@gmail.com>
Mon, 2 Sep 2013 20:09:42 +0000 (16:09 -0400)
planetstack/openstack/driver.py

index 5bb1eb2..0e5fbf0 100644 (file)
@@ -385,11 +385,18 @@ class OpenStackDriver:
                                             availability_zone=availability_zone,
                                             nics=nics)
         return server
-          
+
     def destroy_instance(self, id):
-        servers = self.shell.nova.servers.findall(id=id)
+        if (self.shell.nova.tenant=="admin"):
+            # findall() is implemented as a list() followed by a python search of the
+            # list. Since findall() doesn't accept "all_tenants", we do this using
+            # list() ourselves. This allows us to delete an instance as admin.
+            servers = self.shell.nova.servers.list(search_opts={"all_tenants": True})
+        else:
+            servers = self.shell.nova.servers.list()
         for server in servers:
-            self.shell.nova.servers.delete(server)
+            if server.id == id:
+                result=self.shell.nova.servers.delete(server)
 
     def update_instance_metadata(self, id, metadata):
         servers = self.shell.nova.servers.findall(id=id)