X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fmanagers%2Fregistry_manager_pl.py;h=28f91986358b7b28650302516d9058d5d11eaa2b;hb=ba2aaa438f939a4b5c697052e37b1c3218901319;hp=f5f4b48fc8265c850f94551343fb84b83703a23d;hpb=eababa96fb603cdd552bc03091813544b099befd;p=sfa.git diff --git a/sfa/managers/registry_manager_pl.py b/sfa/managers/registry_manager_pl.py index f5f4b48f..28f91986 100644 --- a/sfa/managers/registry_manager_pl.py +++ b/sfa/managers/registry_manager_pl.py @@ -1,14 +1,16 @@ import types import time + +from sfa.util.faults import * from sfa.util.prefixTree import prefixTree from sfa.util.record import SfaRecord from sfa.util.table import SfaTable from sfa.util.record import SfaRecord from sfa.trust.gid import GID -from sfa.util.namespace import * -from sfa.trust.credential import * -from sfa.trust.certificate import * -from sfa.util.faults import * +from sfa.util.xrn import Xrn, get_leaf, get_authority, hrn_to_urn, urn_to_hrn +from sfa.util.plxrn import hrn_to_pl_login_base +from sfa.trust.credential import Credential +from sfa.trust.certificate import Certificate, Keypair from sfa.trust.gid import create_uuid def get_version(api): @@ -66,6 +68,8 @@ def get_credential(api, xrn, type, is_self=False): #new_cred.set_pubkey(object_gid.get_pubkey()) new_cred.set_privileges(rights) new_cred.get_privileges().delegate_all_privileges(True) + if 'expires' in record: + new_cred.set_expiration(int(record['expires'])) auth_kind = "authority,ma,sa" # Parent not necessary, verify with certs #new_cred.set_parent(api.auth.hierarchy.get_auth_cred(auth_hrn, kind=auth_kind)) @@ -155,10 +159,10 @@ def list(api, xrn, origin_hrn=None): records = [] if registry_hrn != api.hrn: credential = api.getCredential() - record_list = registries[registry_hrn].list(credential, xrn, origin_hrn) + record_list = registries[registry_hrn].List(xrn, credential) records = [SfaRecord(dict=record).as_dict() for record in record_list] - # if we still havnt found the record yet, try the local registry + # if we still have not found the record yet, try the local registry if not records: if not api.auth.hierarchy.auth_exists(hrn): raise MissingAuthority(hrn) @@ -364,20 +368,18 @@ def update(api, record_dict): return 1 -def remove(api, xrn, type, origin_hrn=None): - # convert xrn to hrn - if type: - hrn = urn_to_hrn(xrn)[0] - else: - hrn, type = urn_to_hrn(xrn) +# expecting an Xrn instance +def remove(api, xrn, origin_hrn=None): table = SfaTable() - filter = {'hrn': hrn} + filter = {'hrn': xrn.get_hrn()} + hrn=xrn.get_hrn() + type=xrn.get_type() if type and type not in ['all', '*']: filter['type'] = type + records = table.find(filter) - if not records: - raise RecordNotFound(hrn) + if not records: raise RecordNotFound(hrn) record = records[0] type = record['type']