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():
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