From d222171f8b212c9804840d06c051c12a04e4eac2 Mon Sep 17 00:00:00 2001 From: Scott Baker Date: Wed, 3 Jun 2009 23:48:26 +0000 Subject: [PATCH] added --extractgids, --dumpparents --- cmdline/genidump.py | 36 ++++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/cmdline/genidump.py b/cmdline/genidump.py index 03fb71d9..6e02f941 100644 --- a/cmdline/genidump.py +++ b/cmdline/genidump.py @@ -33,10 +33,40 @@ def determine_geni_filekind(fn): return "unknown" +def save_gid(gid): + hrn = gid.get_hrn() + lastpart = hrn.split(".")[-1] + filename = lastpart + ".gid" + + if os.path.exists(filename): + print filename, ": already exists... skipping" + return + + print filename, ": extracting gid of", hrn + + gid.save_to_file(filename, save_parents = True) + +def extract_gids(cred, extract_parents): + gidCaller = cred.get_gid_caller() + if gidCaller: + save_gid(gidCaller) + + gidObject = cred.get_gid_object() + if gidObject and ((gidCaller == None) or (gidCaller.get_hrn() != gidObject.get_hrn())): + save_gid(gidObject) + + if extract_parents: + parent = cred.get_parent() + if parent: + extract_gids(parent, extract_parents) + def create_parser(): # Generate command line parser parser = OptionParser(usage="genidump [options] filename") + parser.add_option("-e", "--extractgids", action="store_true", dest="extract_gids", default=False, help="Extract GIDs from credentials") + parser.add_option("-p", "--dumpparents", action="store_true", dest="dump_parents", default=False, help="Show parents") + return parser def main(): @@ -52,10 +82,12 @@ def main(): if kind=="credential": cred = Credential(filename = filename) - cred.dump(dump_parents = True) + cred.dump(dump_parents = options.dump_parents) + if options.extract_gids: + extract_gids(cred, extract_parents = options.dump_parents) elif kind=="gid": gid = Gid(filename = filename) - gid.dump(dump_parents = True) + gid.dump(dump_parents = options.dump_parents) else: print "unknown filekind", kind -- 2.43.0