X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Ftrust%2Fhierarchy.py;h=4cf2fb90bd29d83e4f0009feb7b5a089cdc6b0f8;hb=510763490e86632a50496f611aa3dbc1a2eae924;hp=598ba561378b7e1bfc716bc989212293c90ec596;hpb=78467ecd9b02ec60d9572178995ed347fc917f59;p=sfa.git diff --git a/sfa/trust/hierarchy.py b/sfa/trust/hierarchy.py index 598ba561..4cf2fb90 100644 --- a/sfa/trust/hierarchy.py +++ b/sfa/trust/hierarchy.py @@ -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