From 06d76dbb3c38b9702b62d5ffac03d39a0fcf1fa9 Mon Sep 17 00:00:00 2001 From: Thierry Parmentelat Date: Wed, 3 Jun 2015 12:12:44 +0200 Subject: [PATCH] no change - use format instead of % in plimporter pldriver plslices --- sfa/importer/plimporter.py | 68 ++++++++++++++++++++++---------------- sfa/planetlab/pldriver.py | 41 +++++++++++------------ sfa/planetlab/plslices.py | 14 ++++---- 3 files changed, 67 insertions(+), 56 deletions(-) diff --git a/sfa/importer/plimporter.py b/sfa/importer/plimporter.py index aa1110d5..7f1732af 100644 --- a/sfa/importer/plimporter.py +++ b/sfa/importer/plimporter.py @@ -59,7 +59,7 @@ class PlImporter: def remember_record_by_hrn (self, record): tuple = (record.type, record.hrn) if tuple in self.records_by_type_hrn: - self.logger.warning ("PlImporter.remember_record_by_hrn: duplicate (%s,%s)"%tuple) + self.logger.warning ("PlImporter.remember_record_by_hrn: duplicate {}".format(tuple)) return self.records_by_type_hrn [ tuple ] = record @@ -70,7 +70,7 @@ class PlImporter: return tuple = (record.type, record.pointer) if tuple in self.records_by_type_pointer: - self.logger.warning ("PlImporter.remember_record_by_pointer: duplicate (%s,%s)"%tuple) + self.logger.warning ("PlImporter.remember_record_by_pointer: duplicate {}".format(tuple)) return self.records_by_type_pointer [ ( record.type, record.pointer,) ] = record @@ -119,7 +119,7 @@ class PlImporter: auth_record.just_created() global_dbsession.add(auth_record) global_dbsession.commit() - self.logger.info("PlImporter: Imported authority (vini site) %s"%auth_record) + self.logger.info("PlImporter: Imported authority (vini site) {}".format(auth_record)) self.remember_record ( site_record ) def run (self, options): @@ -178,7 +178,7 @@ class PlImporter: key = keys_by_id[key_id] pubkeys.append(key) except: - self.logger.warning("Could not spot key %d - probably non-ssh"%key_id) + self.logger.warning("Could not spot key {} - probably non-ssh".format(key_id)) keys_by_person_id[person['person_id']] = pubkeys # Get all plc nodes nodes = shell.GetNodes( {'peer_id': None}, ['node_id', 'hostname', 'site_id']) @@ -223,12 +223,13 @@ class PlImporter: site_record.just_created() global_dbsession.add(site_record) global_dbsession.commit() - self.logger.info("PlImporter: imported authority (site) : %s" % site_record) - self.remember_record (site_record) + self.logger.info("PlImporter: imported authority (site) : {}".format(site_record)) + self.remember_record(site_record) except: # if the site import fails then there is no point in trying to import the # site's child records (node, slices, persons), so skip them. - self.logger.log_exc("PlImporter: failed to import site %s. Skipping child records"%site_hrn) + self.logger.log_exc("PlImporter: failed to import site {}. Skipping child records"\ + .format(site_hrn)) continue else: # xxx update the record ... @@ -241,7 +242,8 @@ class PlImporter: try: node = nodes_by_id[node_id] except: - self.logger.warning ("PlImporter: cannot find node_id %s - ignored"%node_id) + self.logger.warning ("PlImporter: cannot find node_id {} - ignored" + .format(node_id)) continue site_auth = get_authority(site_hrn) site_name = site['login_base'] @@ -260,10 +262,10 @@ class PlImporter: node_record.just_created() global_dbsession.add(node_record) global_dbsession.commit() - self.logger.info("PlImporter: imported node: %s" % node_record) + self.logger.info("PlImporter: imported node: {}".format(node_record)) self.remember_record (node_record) except: - self.logger.log_exc("PlImporter: failed to import node %s"%node_hrn) + self.logger.log_exc("PlImporter: failed to import node {}".format(node_hrn)) continue else: # xxx update the record ... @@ -280,17 +282,19 @@ class PlImporter: elif person_id in disabled_person_ids: pass else: - self.logger.warning ("PlImporter: cannot locate person_id %s in site %s - ignored"%(person_id,site_hrn)) + self.logger.warning ("PlImporter: cannot locate person_id {} in site {} - ignored"\ + .format(person_id, site_hrn)) # make sure to NOT run this if anything is wrong if not proceed: continue #person_hrn = email_to_hrn(site_hrn, person['email']) person_hrn = person['hrn'] if person_hrn is None: - self.logger.warn("Person %s has no hrn - skipped"%person['email']) + self.logger.warn("Person {} has no hrn - skipped".format(person['email'])) continue # xxx suspicious again - if len(person_hrn) > 64: person_hrn = person_hrn[:64] + if len(person_hrn) > 64: + person_hrn = person_hrn[:64] person_urn = hrn_to_urn(person_hrn, 'user') user_record = self.locate_by_type_hrn ( 'user', person_hrn) @@ -304,11 +308,13 @@ class PlImporter: try: pkey = convert_public_key(pubkey['key']) except: - self.logger.warn('PlImporter: unable to convert public key for %s' % person_hrn) + self.logger.warn('PlImporter: unable to convert public key for {}' + .format(person_hrn)) pkey = Keypair(create=True) else: # the user has no keys. Creating a random keypair for the user's gid - self.logger.warn("PlImporter: person %s does not have a PL public key"%person_hrn) + self.logger.warn("PlImporter: person {} does not have a PL public key" + .format(person_hrn)) pkey = Keypair(create=True) return (pubkey, pkey) @@ -316,7 +322,7 @@ class PlImporter: try: plc_keys = keys_by_person_id.get(person['person_id'],[]) if not user_record: - (pubkey,pkey) = init_person_key (person, plc_keys ) + (pubkey, pkey) = init_person_key (person, plc_keys ) person_gid = self.auth_hierarchy.create_gid(person_urn, create_uuid(), pkey, email=person['email']) user_record = RegUser (hrn=person_hrn, gid=person_gid, pointer=person['person_id'], @@ -325,11 +331,11 @@ class PlImporter: if pubkey: user_record.reg_keys=[RegKey (pubkey['key'], pubkey['key_id'])] else: - self.logger.warning("No key found for user %s"%user_record) + self.logger.warning("No key found for user {}".format(user_record)) user_record.just_created() global_dbsession.add (user_record) global_dbsession.commit() - self.logger.info("PlImporter: imported person: %s" % user_record) + self.logger.info("PlImporter: imported person: {}".format(user_record)) self.remember_record ( user_record ) else: # update the record ? @@ -374,7 +380,7 @@ class PlImporter: user_record.reg_keys=[ RegKey (pubkey['key'], pubkey['key_id'])] user_record.gid = person_gid user_record.just_updated() - self.logger.info("PlImporter: updated person: %s" % user_record) + self.logger.info("PlImporter: updated person: {}".format(user_record)) user_record.email = person['email'] global_dbsession.commit() user_record.stale=False @@ -389,7 +395,8 @@ class PlImporter: admins.append(user_record) except: - self.logger.log_exc("PlImporter: failed to import person %d %s"%(person['person_id'],person['email'])) + self.logger.log_exc("PlImporter: failed to import person {} {}" + .format(person['person_id'], person['email'])) # maintain the list of PIs for a given site # for the record, Jordan had proposed the following addition as a welcome hotfix to a previous version: @@ -406,12 +413,14 @@ class PlImporter: try: slice = slices_by_id[slice_id] except: - self.logger.warning ("PlImporter: cannot locate slice_id %s - ignored"%slice_id) + self.logger.warning ("PlImporter: cannot locate slice_id {} - ignored" + .format(slice_id)) continue #slice_hrn = slicename_to_hrn(interface_hrn, slice['name']) slice_hrn = slice['hrn'] if slice_hrn is None: - self.logger.warning("Slice %s has no hrn - skipped"%slice['name']) + self.logger.warning("Slice {} has no hrn - skipped" + .format(slice['name'])) continue slice_record = self.locate_by_type_hrn ('slice', slice_hrn) if not slice_record: @@ -425,14 +434,16 @@ class PlImporter: slice_record.just_created() global_dbsession.add(slice_record) global_dbsession.commit() - self.logger.info("PlImporter: imported slice: %s" % slice_record) + self.logger.info("PlImporter: imported slice: {}".format(slice_record)) self.remember_record ( slice_record ) except: - self.logger.log_exc("PlImporter: failed to import slice %s (%s)"%(slice_hrn,slice['name'])) + self.logger.log_exc("PlImporter: failed to import slice {} ({})" + .format(slice_hrn, slice['name'])) else: # xxx update the record ... # given that we record the current set of users anyways, there does not seem to be much left to do here - # self.logger.warning ("Slice update not yet implemented on slice %s (%s)"%(slice_hrn,slice['name'])) + # self.logger.warning ("Slice update not yet implemented on slice {} ({})" + # .format(slice_hrn, slice['name'])) pass # record current users affiliated with the slice slice_record.reg_researchers = \ @@ -444,7 +455,8 @@ class PlImporter: if admins: top_auth_record.reg_pis = list(set(admins)) global_dbsession.commit() - self.logger.info('PlImporter: set PL admins %s as PIs of %s'%(admins,top_auth_record.hrn)) + self.logger.info('PlImporter: set PL admins {} as PIs of {}' + .format(admins, top_auth_record.hrn)) ### remove stale records # special records must be preserved @@ -462,8 +474,8 @@ class PlImporter: try: stale=record.stale except: stale=True - self.logger.warning("stale not found with %s"%record) + self.logger.warning("stale not found with {}".format(record)) if stale: - self.logger.info("PlImporter: deleting stale record: %s" % record) + self.logger.info("PlImporter: deleting stale record: {}".format(record)) global_dbsession.delete(record) global_dbsession.commit() diff --git a/sfa/planetlab/pldriver.py b/sfa/planetlab/pldriver.py index 89a2d626..9dba0095 100644 --- a/sfa/planetlab/pldriver.py +++ b/sfa/planetlab/pldriver.py @@ -31,7 +31,7 @@ def list_to_dict(recs, key): convert a list of dictionaries into a dictionary keyed on the specified dictionary key """ - return dict ( [ (rec[key],rec) for rec in recs ] ) + return { rec[key] : rec for rec in recs } # # PlShell is just an xmlrpc serverproxy where methods @@ -45,9 +45,9 @@ class PlDriver (Driver): def __init__ (self, api): Driver.__init__ (self, api) - config=api.config + config = api.config self.shell = PlShell (config) - self.cache=None + self.cache = None if config.SFA_AGGREGATE_CACHING: if PlDriver.cache is None: PlDriver.cache = Cache() @@ -60,9 +60,9 @@ class PlDriver (Driver): filter['slice_id'] = int(sliver_id_parts[0]) except ValueError: filter['name'] = sliver_id_parts[0] - slices = self.shell.GetSlices(filter,['hrn']) + slices = self.shell.GetSlices(filter, ['hrn']) if not slices: - raise Forbidden("Unable to locate slice record for sliver: %s" % xrn) + raise Forbidden("Unable to locate slice record for sliver: {}".format(xrn)) slice = slices[0] slice_xrn = slice['hrn'] return slice_xrn @@ -101,7 +101,7 @@ class PlDriver (Driver): # make sure we have a credential for every specified sliver ierd for sliver_name in sliver_names: if sliver_name not in slice_cred_names: - msg = "Valid credential not found for target: %s" % sliver_name + msg = "Valid credential not found for target: {}".format(sliver_name) raise Forbidden(msg) ######################################## @@ -150,7 +150,7 @@ class PlDriver (Driver): if key not in sfa_record: sfa_record[key]='*from*sfa*' # AddPerson does not allow everything to be set can_add = ['first_name', 'last_name', 'title','email', 'password', 'phone', 'url', 'bio'] - add_person_dict=dict ( [ (k,sfa_record[k]) for k in sfa_record if k in can_add ] ) + add_person_dict = { k : sfa_record[k] for k in sfa_record if k in can_add } pointer = self.shell.AddPerson(add_person_dict) self.shell.SetPersonHrn(int(pointer), hrn) else: @@ -177,7 +177,7 @@ class PlDriver (Driver): self.shell.AddPersonKey(pointer, {'key_type' : 'ssh', 'key' : pub_key}) elif type == 'node': - login_base = PlXrn(xrn=sfa_record['authority'],type='authority').pl_login_base() + login_base = PlXrn(xrn=sfa_record['authority'], type='authority').pl_login_base() nodes = self.shell.GetNodes({'peer_id': None, 'hostname': pl_record['hostname']}) if not nodes: pointer = self.shell.AddNode(login_base, pl_record) @@ -272,9 +272,6 @@ class PlDriver (Driver): return True - - - ## # Convert SFA fields to PLC fields for use when registering or updating # registry record in the PLC database @@ -538,7 +535,7 @@ class PlDriver (Driver): # continue sfa_info = {} type = record['type'] - logger.info("fill_record_sfa_info - incoming record typed %s"%type) + logger.info("fill_record_sfa_info - incoming record typed {}".format(type)) if (type == "slice"): # all slice users are researchers record['geni_urn'] = hrn_to_urn(record['hrn'], 'slice') @@ -599,12 +596,12 @@ class PlDriver (Driver): current_target_ids = subject['person_ids'] add_target_ids = list ( set (target_ids).difference(current_target_ids)) del_target_ids = list ( set (current_target_ids).difference(target_ids)) - logger.debug ("subject_id = %s (type=%s)"%(subject_id,type(subject_id))) + logger.debug ("subject_id = {} (type={})".format(subject_id, type(subject_id))) for target_id in add_target_ids: self.shell.AddPersonToSlice (target_id,subject_id) - logger.debug ("add_target_id = %s (type=%s)"%(target_id,type(target_id))) + logger.debug ("add_target_id = {} (type={})".format(target_id, type(target_id))) for target_id in del_target_ids: - logger.debug ("del_target_id = %s (type=%s)"%(target_id,type(target_id))) + logger.debug ("del_target_id = {} (type={})".format(target_id, type(target_id))) self.shell.DeletePersonFromSlice (target_id, subject_id) elif subject_type == 'authority' and target_type == 'user' and relation_name == 'pi': # due to the plcapi limitations this means essentially adding pi role to all people in the list @@ -614,7 +611,8 @@ class PlDriver (Driver): if 'pi' not in person['roles']: self.shell.AddRoleToPerson('pi',person['person_id']) else: - logger.info('unexpected relation %s to maintain, %s -> %s'%(relation_name,subject_type,target_type)) + logger.info('unexpected relation {} to maintain, {} -> {}'\ + .format(relation_name, subject_type, target_type)) ######################################## @@ -663,7 +661,7 @@ class PlDriver (Driver): aggregate = PlAggregate(self) slices = PlSlices(self) sfa_peer = slices.get_sfa_peer(xrn.get_hrn()) - slice_record=None + slice_record = None users = options.get('geni_users', []) if users: @@ -712,7 +710,7 @@ class PlDriver (Driver): filter['name'] = sliver_id_parts[0] slices = self.shell.GetSlices(filter,['hrn']) if not slices: - raise Forbidden("Unable to locate slice record for sliver: %s" % xrn) + raise Forbidden("Unable to locate slice record for sliver: {}".format(xrn)) slice = slices[0] slice_urn = hrn_to_urn(slice['hrn'], type='slice') urns = [slice_urn] @@ -759,8 +757,8 @@ class PlDriver (Driver): self.shell.DeleteLeases(leases_ids) # delete sliver allocation states - dbsession=self.api.dbsession() - SliverAllocation.delete_allocations(sliver_ids,dbsession) + dbsession = self.api.dbsession() + SliverAllocation.delete_allocations(sliver_ids, dbsession) finally: pass @@ -799,7 +797,8 @@ class PlDriver (Driver): description = self.describe(urns, 'GENI 3', options) for sliver in description['geni_slivers']: if sliver['geni_operational_status'] == 'geni_pending_allocation': - raise UnsupportedOperation(action, "Sliver must be fully allocated (operational status is not geni_pending_allocation)") + raise UnsupportedOperation\ + (action, "Sliver must be fully allocated (operational status is not geni_pending_allocation)") # # Perform Operational Action Here # diff --git a/sfa/planetlab/plslices.py b/sfa/planetlab/plslices.py index e76b2504..25e9e211 100644 --- a/sfa/planetlab/plslices.py +++ b/sfa/planetlab/plslices.py @@ -15,7 +15,7 @@ MAXINT = 2L**31-1 class PlSlices: - rspec_to_slice_tag = {'max_rate':'net_max_rate'} + rspec_to_slice_tag = {'max_rate' : 'net_max_rate'} def __init__(self, driver): self.driver = driver @@ -243,7 +243,7 @@ class PlSlices: for node in resulting_nodes: client_id = slivers[node['hostname']]['client_id'] component_id = slivers[node['hostname']]['component_id'] - sliver_hrn = '%s.%s-%s' % (self.driver.hrn, slice['slice_id'], node['node_id']) + sliver_hrn = '{}.{}-{}'.format(self.driver.hrn, slice['slice_id'], node['node_id']) sliver_id = Xrn(sliver_hrn, type='sliver').urn record = SliverAllocation(sliver_id=sliver_id, client_id=client_id, component_id=component_id, @@ -345,7 +345,7 @@ class PlSlices: site = sites[0] else: # create new site record - site = {'name': 'sfa:%s' % site_hrn, + site = {'name': 'sfa:{}'.format(site_hrn), 'abbreviated_name': site_hrn, 'login_base': login_base, 'max_slices': 100, @@ -425,7 +425,7 @@ class PlSlices: ( auth_hrn, _ , leaf ) = user_hrn.rpartition('.') # somehow this has backslashes, get rid of them auth_hrn = auth_hrn.replace('\\','') - default_email = "%s@%s.stub"%(leaf,auth_hrn) + default_email = "{}@{}.stub".format(leaf, auth_hrn) person_record = { # required @@ -438,7 +438,7 @@ class PlSlices: 'hrn': user_hrn, } - logger.debug ("about to attempt to AddPerson with %s"%person_record) + logger.debug ("about to attempt to AddPerson with {}".format(person_record)) try: # the thing is, the PLE db has a limitation on re-using the same e-mail # in the case where people have an account on ple.upmc and then then come @@ -449,7 +449,7 @@ class PlSlices: logger.log_exc("caught during first attempt at AddPerson") # and if that fails we start again with the email based on the hrn, which this time is unique.. person_record['email']=default_email - logger.debug ("second chance with email=%s"%person_record['email']) + logger.debug ("second chance with email={}".format(person_record['email'])) person_id = int (self.driver.shell.AddPerson(person_record)) self.driver.shell.AddRoleToPerson('user', person_id) self.driver.shell.AddPersonToSite(person_id, site_id) @@ -469,7 +469,7 @@ class PlSlices: # this is for retrieving users from a hrn users_by_hrn = { user['hrn'] : user for user in users } - for user in users: logger.debug("incoming user %s"%user) + for user in users: logger.debug("incoming user {}".format(user)) # compute the hrn's for the authority and site top_auth_hrn = top_auth(slice_hrn) -- 2.43.0