make gid.dump() look nice
[sfa.git] / sfa / trust / gid.py
index 678c1a3..b881a1f 100644 (file)
 # descendant of the certificate class.
 ##
 
-### $Id$
-### $URL$
 import xmlrpclib
 import uuid
 
-import sfa.util.sfalogging
+from sfa.util.sfalogging import logger 
 from sfa.trust.certificate import Certificate
-from sfa.util.namespace import *
+from sfa.util.xrn import hrn_to_urn, urn_to_hrn
 
 ##
 # Create a new uuid. Returns the UUID as a string.
@@ -82,7 +80,7 @@ class GID(Certificate):
         
         Certificate.__init__(self, create, subject, string, filename)
         if subject:
-            sfa.util.sfalogging.logger.debug("Creating GID for subject: %s" % subject)
+            logger.debug("Creating GID for subject: %s" % subject)
         if uuid:
             self.uuid = int(uuid)
         if hrn:
@@ -178,14 +176,21 @@ class GID(Certificate):
     # @param indent specifies a number of spaces to indent the output
     # @param dump_parents If true, also dump the parents of the GID
 
-    def dump(self, indent=0, dump_parents=False):
-        print " "*indent, " hrn:", self.get_hrn()
-        print " "*indent, " urn:", self.get_urn()
-        print " "*indent, "uuid:", self.get_uuid()
+    def dump(self, *args, **kwargs):
+        print self.dump_string(*args,**kwargs)
+
+    def dump_string(self, indent=0, dump_parents=False):
+        result=" "*(indent-2) + "GID\n"
+        result += " "*indent + "hrn:" + str(self.get_hrn()) +"\n"
+        result += " "*indent + "urn:" + str(self.get_urn()) +"\n"
+        result += " "*indent + "uuid:" + str(self.get_uuid()) + "\n"
+        filename=self.get_filename()
+        if filename: result += "Filename %s\n"%filename
 
         if self.parent and dump_parents:
-            print " "*indent, "parent:"
-            self.parent.dump(indent+4, dump_parents)
+            result += " "*indent + "parent:\n"
+            result += self.parent.dump_string(indent+4, dump_parents)
+        return result
 
     ##
     # Verify the chain of authenticity of the GID. First perform the checks
@@ -204,8 +209,7 @@ class GID(Certificate):
         if self.parent:
             # make sure the parent's hrn is a prefix of the child's hrn
             if not self.get_hrn().startswith(self.parent.get_hrn()):
-                #print self.get_hrn(), " ", self.parent.get_hrn()
-                raise GidParentHrn("This cert %s HRN doesnt start with parent HRN %s" % (self.get_hrn(), self.parent.get_hrn()))
+                raise GidParentHrn("This cert HRN %s doesnt start with parent HRN %s" % (self.get_hrn(), self.parent.get_hrn()))
         else:
             # make sure that the trusted root's hrn is a prefix of the child's
             trusted_gid = GID(string=trusted_root.save_to_string())