From: Tony Mack Date: Mon, 23 May 2011 16:41:49 +0000 (-0400) Subject: dont fail to resolve slice record if slice has no users or site has no PI X-Git-Tag: sfa-1.0-22~19 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=01631015ce42deff2e8331121c2962e0e607066b;p=sfa.git dont fail to resolve slice record if slice has no users or site has no PI --- diff --git a/sfa/plc/api.py b/sfa/plc/api.py index a5d5f2ae..59ad1cb6 100644 --- a/sfa/plc/api.py +++ b/sfa/plc/api.py @@ -386,7 +386,6 @@ class SfaAPI(BaseAPI): # convert ids to hrns for record in records: - # get all relevant data type = record['type'] pointer = record['pointer'] @@ -420,7 +419,7 @@ class SfaAPI(BaseAPI): if site_id in sites] site_hrns = [".".join([auth_hrn, lbase]) for lbase in login_bases] record['sites'] = site_hrns - + return records def fill_record_sfa_info(self, records): @@ -484,20 +483,21 @@ class SfaAPI(BaseAPI): type = record['type'] if (type == "slice"): # all slice users are researchers + record['geni_urn'] = hrn_to_urn(record['hrn'], 'slice') record['PI'] = [] record['researcher'] = [] - for person_id in record['person_ids']: + for person_id in record.get('person_ids', []): hrns = [person['hrn'] for person in persons[person_id]] record['researcher'].extend(hrns) # pis at the slice's site - pl_pis = site_pis[record['site_id']] - pi_ids = [pi['person_id'] for pi in pl_pis] - for person_id in pi_ids: - hrns = [person['hrn'] for person in persons[person_id]] - record['PI'].extend(hrns) - record['geni_urn'] = hrn_to_urn(record['hrn'], 'slice') - record['geni_creator'] = record['PI'] + if 'site_id' in record and record['site_id'] in site_pis: + pl_pis = site_pis[record['site_id']] + pi_ids = [pi['person_id'] for pi in pl_pis] + for person_id in pi_ids: + hrns = [person['hrn'] for person in persons[person_id]] + record['PI'].extend(hrns) + record['geni_creator'] = record['PI'] elif (type == "authority"): record['PI'] = []