From af2639ae4cc9d4e5dbb2e4f65209f9d8773137fd Mon Sep 17 00:00:00 2001 From: Vishvananda Ishaya Date: Wed, 13 Oct 2010 23:38:15 -0700 Subject: add scrub command to clean up networks and sec groups --- bin/nova-manage | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/bin/nova-manage b/bin/nova-manage index d36b0f53a..e52e007b0 100755 --- a/bin/nova-manage +++ b/bin/nova-manage @@ -67,6 +67,7 @@ possible_topdir = os.path.normpath(os.path.join(os.path.abspath(sys.argv[0]), if os.path.exists(os.path.join(possible_topdir, 'nova', '__init__.py')): sys.path.insert(0, possible_topdir) +from nova import context from nova import db from nova import exception from nova import flags @@ -338,6 +339,16 @@ class ProjectCommands(object): arguments: project user""" self.manager.remove_from_project(user, project) + def scrub(self, project): + """Deletes data associated with project + arguments: project""" + ctxt = context.get_admin_context() + network_ref = db.project_get_network(ctxt, project) + db.network_disassociate(ctxt, network_ref['id']) + groups = db.security_group_get_by_project(ctxt, project) + for group in groups: + db.security_group_destroy(ctxt, group['id']) + def zipfile(self, project_id, user_id, filename='nova.zip'): """Exports credentials for project to a zip file arguments: project_id user_id [filename='nova.zip]""" @@ -451,7 +462,7 @@ def main(): if FLAGS.verbose: logging.getLogger().setLevel(logging.DEBUG) - + script_name = argv.pop(0) if len(argv) < 1: print script_name + " category action []" -- cgit From 0b0d55c6cb6fb10a7bdd003ffa7763d9690ee23d Mon Sep 17 00:00:00 2001 From: Vishvananda Ishaya Date: Thu, 14 Oct 2010 00:43:19 -0700 Subject: call stuff project_id instead of project --- bin/nova-manage | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/bin/nova-manage b/bin/nova-manage index e52e007b0..2b2519526 100755 --- a/bin/nova-manage +++ b/bin/nova-manage @@ -293,10 +293,10 @@ class ProjectCommands(object): def __init__(self): self.manager = manager.AuthManager() - def add(self, project, user): + def add(self, project_id, user_id): """Adds user to project - arguments: project user""" - self.manager.add_to_project(user, project) + arguments: project_id user_id""" + self.manager.add_to_project(user_id, project_id) def create(self, name, project_manager, description=None): """Creates a new project @@ -334,18 +334,18 @@ class ProjectCommands(object): for key, value in project_quota.iteritems(): print '%s: %s' % (key, value) - def remove(self, project, user): + def remove(self, project_id, user_id): """Removes user from project - arguments: project user""" - self.manager.remove_from_project(user, project) + arguments: project_id user_id""" + self.manager.remove_from_project(user_id, project_id) - def scrub(self, project): + def scrub(self, project_id): """Deletes data associated with project - arguments: project""" + arguments: project_id""" ctxt = context.get_admin_context() - network_ref = db.project_get_network(ctxt, project) + network_ref = db.project_get_network(ctxt, project_id) db.network_disassociate(ctxt, network_ref['id']) - groups = db.security_group_get_by_project(ctxt, project) + groups = db.security_group_get_by_project(ctxt, project_id) for group in groups: db.security_group_destroy(ctxt, group['id']) -- cgit