git://git.onelab.eu
/
plstackapi.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
9182b32
)
delete_tenant() deletes all instances associated with the specified tenant
author
Tony Mack
<tmack@paris.CS.Princeton.EDU>
Wed, 26 Jun 2013 15:28:57 +0000
(11:28 -0400)
committer
Tony Mack
<tmack@paris.CS.Princeton.EDU>
Wed, 26 Jun 2013 15:28:57 +0000
(11:28 -0400)
planetstack/openstack/driver.py
patch
|
blob
|
history
diff --git
a/planetstack/openstack/driver.py
b/planetstack/openstack/driver.py
index
4c0791e
..
b9faa97
100644
(file)
--- a/
planetstack/openstack/driver.py
+++ b/
planetstack/openstack/driver.py
@@
-51,8
+51,17
@@
class OpenStackDriver:
return self.shell.keystone.tenants.update(id, **kwds)
def delete_tenant(self, id):
return self.shell.keystone.tenants.update(id, **kwds)
def delete_tenant(self, id):
+ ctx = self.shell.nova_db.ctx
tenants = self.shell.keystone.tenants.findall(id=id)
for tenant in tenants:
tenants = self.shell.keystone.tenants.findall(id=id)
for tenant in tenants:
+ # nova does not automatically delete the tenant's instances
+ # so we manually delete instances before deleteing the tenant
+ instances = self.shell.nova_db.instance_get_all_by_filters(ctx,
+ {'project_id': tenant.id}, 'id', 'asc')
+ client = OpenStackClient(tenant=tenant)
+ driver = OpenStackDriver(client=client)
+ for instance in instances:
+ driver.destroy_instance(instance.id)
self.shell.keystone.tenants.delete(tenant)
return 1
self.shell.keystone.tenants.delete(tenant)
return 1