X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Ftrust%2Fhierarchy.py;h=5e76dbf3735e6e67271d5b3152b1ef2c2e4cd6b9;hb=a0ef6e7c91c3c8fa376943d28fec8c5c204a78cd;hp=cf330db28b9700550989018212c53c1ec1156ca9;hpb=97d09a321eff49c73c09f44a10d1ae0d7767d250;p=sfa.git diff --git a/sfa/trust/hierarchy.py b/sfa/trust/hierarchy.py index cf330db2..5e76dbf3 100644 --- a/sfa/trust/hierarchy.py +++ b/sfa/trust/hierarchy.py @@ -111,7 +111,11 @@ class Hierarchy: def get_auth_filenames(self, xrn): hrn, type = urn_to_hrn(xrn) - leaf = get_leaf(hrn) + if '\\' in hrn: + hrn = hrn.replace('\\', '') + leaf = hrn + else: + leaf = get_leaf(hrn) parent_hrn = get_authority(hrn) directory = os.path.join(self.basedir, hrn.replace(".", "/")) @@ -156,7 +160,8 @@ class Hierarchy: try: os.makedirs(directory) # if the path already exists then pass - except OSError, (errno, strerr): + except OSError as xxx_todo_changeme: + (errno, strerr) = xxx_todo_changeme.args if errno == 17: pass @@ -222,16 +227,16 @@ 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, force_parent=None): hrn, type = urn_to_hrn(xrn) if not type: type = 'authority' - parent_hrn = get_authority(hrn) + parent_hrn = force_parent if force_parent else get_authority(hrn) # Using hrn_to_urn() here to make sure the urn is in the right format # 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