correctly include email in subjectAltName section of user certificates/gids
[sfa.git] / sfa / trust / hierarchy.py
index 598ba56..4cf2fb9 100644 (file)
@@ -141,7 +141,7 @@ class Hierarchy:
     # @param create_parents if true, also create the parents if they do not exist
 
     def create_auth(self, xrn, create_parents=False):
-        hrn, type = urn_to_hrn(xrn)
+        hrn, type = urn_to_hrn(str(xrn))
         logger.debug("Hierarchy: creating authority: %s"% hrn)
 
         # create the parent authority if necessary
@@ -174,18 +174,9 @@ class Hierarchy:
         """
         Create top level records (includes root and sub authorities (local/remote)
         """
-        if not hrn:
-            hrn = self.config.SFA_INTERFACE_HRN
-        # make sure parent exists
-        parent_hrn = get_authority(hrn)
-        if not parent_hrn:
-            parent_hrn = hrn
-        if not parent_hrn == hrn:
-            self.create_top_level_auth(parent_hrn)
-       
         # create the authority if it doesnt alrady exist
         if not self.auth_exists(hrn):
-            self.create_auth(hrn)
+            self.create_auth(hrn, create_parents=True)
             
         
     def get_interface_auth_info(self, create=True):
@@ -231,7 +222,7 @@ class Hierarchy:
     # @param uuid the unique identifier to store in the GID
     # @param pkey the public key to store in the GID
 
-    def create_gid(self, xrn, uuid, pkey, CA=False):
+    def create_gid(self, xrn, uuid, pkey, CA=False, email=None):
         hrn, type = urn_to_hrn(xrn)
         if not type:
             type = 'authority'
@@ -240,7 +231,8 @@ class Hierarchy:
         # If xrn was a hrn instead of a urn, then the gid's urn will be
         # of type None 
         urn = hrn_to_urn(hrn, type)
-        gid = GID(subject=hrn, uuid=uuid, hrn=hrn, urn=urn)
+        gid = GID(subject=hrn, uuid=uuid, hrn=hrn, urn=urn, email=email)
+        
         # is this a CA cert
         if hrn == self.config.SFA_INTERFACE_HRN or not parent_hrn:
             # root or sub authority