From 8727730a6ca0b289d1d67cc887a6459781201e52 Mon Sep 17 00:00:00 2001 From: Sandrine Avakian Date: Fri, 16 Dec 2011 14:44:18 +0100 Subject: [PATCH] Cleanup : removed unused functions. --- sfa/senslab/OARrestapi.py | 25 +-- sfa/senslab/SenslabImportUsers.py | 110 ++++++------- sfa/senslab/senslab-import.py | 263 ------------------------------ sfa/senslab/slabdriver.py | 164 +------------------ 4 files changed, 57 insertions(+), 505 deletions(-) delete mode 100755 sfa/senslab/senslab-import.py diff --git a/sfa/senslab/OARrestapi.py b/sfa/senslab/OARrestapi.py index a073b67a..b4eb45cb 100644 --- a/sfa/senslab/OARrestapi.py +++ b/sfa/senslab/OARrestapi.py @@ -326,30 +326,7 @@ class OARapi: #GetNodes moved to slabdriver.py - def GetSites(self, site_filter= None, return_fields=None): - print>>sys.stderr, " \r\n GetSites+++++++++++++++++" - self.parser.SendRequest("GET_resources_full") - site_dict = self.parser.GetSitesFromOARParse() - return_site_list = [] - site = site_dict.values()[0] - Users = SenslabImportUsers() - - #print>>sys.stderr, " \r\n GetSites sites_dict %s site_filter %s \r\n \r\n \r\n \r\n------site %s" %(site_dict,site_filter,site ) - admins_dict ={'person_ids': Users.GetPIs(site['site_id'])} - site.update(admins_dict) - - slice_list = Users.GetSlices() - for sl in slice_list: - #print>>sys.stderr, " \r\n GetSites sl %s" %(sl) - if sl['site_id'] == site['site_id']: - site['slice_ids'].append(sl['slice_id']) - - if not (site_filter or return_fields): - return_site_list = site_dict.values() - return return_site_list - - return_site_list = parse_filter(site_dict.values(),site_filter ,'site', return_fields) - return return_site_list + def GetJobs(self): diff --git a/sfa/senslab/SenslabImportUsers.py b/sfa/senslab/SenslabImportUsers.py index 4acaf106..8109f343 100644 --- a/sfa/senslab/SenslabImportUsers.py +++ b/sfa/senslab/SenslabImportUsers.py @@ -19,70 +19,70 @@ class SenslabImportUsers: self.keys_list = [] self.slices_list= [] #self.resources_fulldict['keys'] = [] - self.InitPersons() - self.InitKeys() - self.InitSlices() + #self.InitPersons() + #self.InitKeys() + #self.InitSlices() - def InitSlices(self): - slices_per_site = {} - dflt_slice = { 'instantiation': None, 'description': "Senslab Slice Test", 'node_ids': [], 'url': "http://localhost.localdomain/", 'max_nodes': 256, 'site_id': 3,'peer_slice_id': None, 'slice_tag_ids': [], 'peer_id': None, 'hrn' :None} - for person in self.person_list: - if 'user' or 'pi' in person['roles']: - def_slice = {} - #print>>sys.stderr, "\r\n \rn \t\t _____-----------************def_slice person %s \r\n \rn " %(person['person_id']) - def_slice['person_ids'] = [] - def_slice['person_ids'].append(person['person_id']) - def_slice['slice_id'] = person['person_id'] - def_slice['creator_person_id'] = person['person_id'] - extime = datetime.datetime.utcnow() - def_slice['created'] = int(time.mktime(extime.timetuple())) - extime = extime + datetime.timedelta(days=365) - def_slice['expires'] = int(time.mktime(extime.timetuple())) - #print>>sys.stderr, "\r\n \rn \t\t _____-----------************def_slice expires %s \r\n \r\n "%(def_slice['expires']) - def_slice['name'] = person['email'].replace('@','_',1) - #print>>sys.stderr, "\r\n \rn \t\t _____-----------************def_slice %s \r\n \r\n " %(def_slice['name']) - def_slice.update(dflt_slice) - self.slices_list.append(def_slice) + #def InitSlices(self): + #slices_per_site = {} + #dflt_slice = { 'instantiation': None, 'description': "Senslab Slice Test", 'node_ids': [], 'url': "http://localhost.localdomain/", 'max_nodes': 256, 'site_id': 3,'peer_slice_id': None, 'slice_tag_ids': [], 'peer_id': None, 'hrn' :None} + #for person in self.person_list: + #if 'user' or 'pi' in person['roles']: + #def_slice = {} + ##print>>sys.stderr, "\r\n \rn \t\t _____-----------************def_slice person %s \r\n \rn " %(person['person_id']) + #def_slice['person_ids'] = [] + #def_slice['person_ids'].append(person['person_id']) + #def_slice['slice_id'] = person['person_id'] + #def_slice['creator_person_id'] = person['person_id'] + #extime = datetime.datetime.utcnow() + #def_slice['created'] = int(time.mktime(extime.timetuple())) + #extime = extime + datetime.timedelta(days=365) + #def_slice['expires'] = int(time.mktime(extime.timetuple())) + ##print>>sys.stderr, "\r\n \rn \t\t _____-----------************def_slice expires %s \r\n \r\n "%(def_slice['expires']) + #def_slice['name'] = person['email'].replace('@','_',1) + ##print>>sys.stderr, "\r\n \rn \t\t _____-----------************def_slice %s \r\n \r\n " %(def_slice['name']) + #def_slice.update(dflt_slice) + #self.slices_list.append(def_slice) - #print>>sys.stderr, "InitSlices SliceLIST", self.slices_list + ##print>>sys.stderr, "InitSlices SliceLIST", self.slices_list - def InitPersons(self): - persons_per_site = {} - person_id = 7 - persons_per_site[person_id] = {'person_id': person_id,'site_ids': [3],'email': 'a_rioot@senslab.fr', 'key_ids':[1], 'roles': ['pi'], 'role_ids':[20],'first_name':'A','last_name':'rioot'} - person_id = 8 - persons_per_site[person_id] = {'person_id': person_id,'site_ids': [3],'email': 'lost@senslab.fr','key_ids':[1],'roles': ['pi'], 'role_ids':[20],'first_name':'L','last_name':'lost'} - person_id = 9 - persons_per_site[person_id] = {'person_id': person_id,'site_ids': [3],'email': 'user@senslab.fr','key_ids':[1],'roles': ['user'], 'role_ids':[1],'first_name':'U','last_name':'senslab'} - for person_id in persons_per_site.keys(): - person = persons_per_site[person_id] - if person['person_id'] not in self.person_list: - self.person_list.append(person) - #print>>sys.stderr, "InitPersons PERSON DICLIST", self.person_list + #def InitPersons(self): + #persons_per_site = {} + #person_id = 7 + #persons_per_site[person_id] = {'person_id': person_id,'site_ids': [3],'email': 'a_rioot@senslab.fr', 'key_ids':[1], 'roles': ['pi'], 'role_ids':[20],'first_name':'A','last_name':'rioot'} + #person_id = 8 + #persons_per_site[person_id] = {'person_id': person_id,'site_ids': [3],'email': 'lost@senslab.fr','key_ids':[1],'roles': ['pi'], 'role_ids':[20],'first_name':'L','last_name':'lost'} + #person_id = 9 + #persons_per_site[person_id] = {'person_id': person_id,'site_ids': [3],'email': 'user@senslab.fr','key_ids':[1],'roles': ['user'], 'role_ids':[1],'first_name':'U','last_name':'senslab'} + #for person_id in persons_per_site.keys(): + #person = persons_per_site[person_id] + #if person['person_id'] not in self.person_list: + #self.person_list.append(person) + ##print>>sys.stderr, "InitPersons PERSON DICLIST", self.person_list - def InitKeys(self): - #print>>sys.stderr, " InitKeys HEYYYYYYY\r\n" + #def InitKeys(self): + ##print>>sys.stderr, " InitKeys HEYYYYYYY\r\n" - self.keys_list = [{'peer_key_id': None, 'key_type': 'ssh', 'key' :"ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEArcdW0X2la754SoFE+URbDsYP07AZJjrspMlvUc6u+4o6JpGRkqiv7XdkgOMIn6w3DF3cYCcA1Mc6XSG7gSD7eQx614cjlLmXzHpxSeidSs/LgZaAQpq9aQ0KhEiFxg0gp8TPeB5Z37YOPUumvcJr1ArwL/8tAOx3ClwgRhccr2HOe10YtZbMEboCarTlzNHiGolo7RYIJjGuG2RBSeAg6SMZrtnn0OdKBwp3iUlOfkS98eirVtWUp+G5+SZggip3fS3k5Oj7OPr1qauva8Rizt02Shz30DN9ikFNqV2KuPg54nC27/DQsQ6gtycARRVY91VvchmOk0HxFiW/9kS2GQ== root@FlabFedora2",'person_id': 7, 'key_id':1, 'peer_id':None }, - {'peer_key_id': None, 'key_type': 'ssh', 'key' :"ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEArcdW0X2la754SoFE+URbDsYP07AZJjrspMlvUc6u+4o6JpGRkqiv7XdkgOMIn6w3DF3cYCcA1Mc6XSG7gSD7eQx614cjlLmXzHpxSeidSs/LgZaAQpq9aQ0KhEiFxg0gp8TPeB5Z37YOPUumvcJr1ArwL/8tAOx3ClwgRhccr2HOe10YtZbMEboCarTlzNHiGolo7RYIJjGuG2RBSeAg6SMZrtnn0OdKBwp3iUlOfkS98eirVtWUp+G5+SZggip3fS3k5Oj7OPr1qauva8Rizt02Shz30DN9ikFNqV2KuPg54nC27/DQsQ6gtycARRVY91VvchmOk0HxFiW/9kS2GQ== root@FlabFedora2",'person_id': 8, 'key_id':1, 'peer_id':None }, - {'peer_key_id': None, 'key_type': 'ssh', 'key' :"ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEArcdW0X2la754SoFE+URbDsYP07AZJjrspMlvUc6u+4o6JpGRkqiv7XdkgOMIn6w3DF3cYCcA1Mc6XSG7gSD7eQx614cjlLmXzHpxSeidSs/LgZaAQpq9aQ0KhEiFxg0gp8TPeB5Z37YOPUumvcJr1ArwL/8tAOx3ClwgRhccr2HOe10YtZbMEboCarTlzNHiGolo7RYIJjGuG2RBSeAg6SMZrtnn0OdKBwp3iUlOfkS98eirVtWUp+G5+SZggip3fS3k5Oj7OPr1qauva8Rizt02Shz30DN9ikFNqV2KuPg54nC27/DQsQ6gtycARRVY91VvchmOk0HxFiW/9kS2GQ== root@FlabFedora2",'person_id': 9, 'key_id':1, 'peer_id':None }] + #self.keys_list = [{'peer_key_id': None, 'key_type': 'ssh', 'key' :"ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEArcdW0X2la754SoFE+URbDsYP07AZJjrspMlvUc6u+4o6JpGRkqiv7XdkgOMIn6w3DF3cYCcA1Mc6XSG7gSD7eQx614cjlLmXzHpxSeidSs/LgZaAQpq9aQ0KhEiFxg0gp8TPeB5Z37YOPUumvcJr1ArwL/8tAOx3ClwgRhccr2HOe10YtZbMEboCarTlzNHiGolo7RYIJjGuG2RBSeAg6SMZrtnn0OdKBwp3iUlOfkS98eirVtWUp+G5+SZggip3fS3k5Oj7OPr1qauva8Rizt02Shz30DN9ikFNqV2KuPg54nC27/DQsQ6gtycARRVY91VvchmOk0HxFiW/9kS2GQ== root@FlabFedora2",'person_id': 7, 'key_id':1, 'peer_id':None }, + #{'peer_key_id': None, 'key_type': 'ssh', 'key' :"ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEArcdW0X2la754SoFE+URbDsYP07AZJjrspMlvUc6u+4o6JpGRkqiv7XdkgOMIn6w3DF3cYCcA1Mc6XSG7gSD7eQx614cjlLmXzHpxSeidSs/LgZaAQpq9aQ0KhEiFxg0gp8TPeB5Z37YOPUumvcJr1ArwL/8tAOx3ClwgRhccr2HOe10YtZbMEboCarTlzNHiGolo7RYIJjGuG2RBSeAg6SMZrtnn0OdKBwp3iUlOfkS98eirVtWUp+G5+SZggip3fS3k5Oj7OPr1qauva8Rizt02Shz30DN9ikFNqV2KuPg54nC27/DQsQ6gtycARRVY91VvchmOk0HxFiW/9kS2GQ== root@FlabFedora2",'person_id': 8, 'key_id':1, 'peer_id':None }, + #{'peer_key_id': None, 'key_type': 'ssh', 'key' :"ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEArcdW0X2la754SoFE+URbDsYP07AZJjrspMlvUc6u+4o6JpGRkqiv7XdkgOMIn6w3DF3cYCcA1Mc6XSG7gSD7eQx614cjlLmXzHpxSeidSs/LgZaAQpq9aQ0KhEiFxg0gp8TPeB5Z37YOPUumvcJr1ArwL/8tAOx3ClwgRhccr2HOe10YtZbMEboCarTlzNHiGolo7RYIJjGuG2RBSeAg6SMZrtnn0OdKBwp3iUlOfkS98eirVtWUp+G5+SZggip3fS3k5Oj7OPr1qauva8Rizt02Shz30DN9ikFNqV2KuPg54nC27/DQsQ6gtycARRVY91VvchmOk0HxFiW/9kS2GQ== root@FlabFedora2",'person_id': 9, 'key_id':1, 'peer_id':None }] - def GetPersons(self, person_filter=None, return_fields=None): - #print>>sys.stderr, " \r\n GetPersons person_filter %s return_fields %s list: %s" %(person_filter,return_fields, self.person_list) - if not self.person_list : - print>>sys.stderr, " \r\n ========>GetPersons NO PERSON LIST DAMMIT<========== \r\n" + #def GetPersons(self, person_filter=None, return_fields=None): + ##print>>sys.stderr, " \r\n GetPersons person_filter %s return_fields %s list: %s" %(person_filter,return_fields, self.person_list) + #if not self.person_list : + #print>>sys.stderr, " \r\n ========>GetPersons NO PERSON LIST DAMMIT<========== \r\n" - if not (person_filter or return_fields): - return self.person_list + #if not (person_filter or return_fields): + #return self.person_list - return_person_list= [] - return_person_list = parse_filter(self.person_list,person_filter ,'persons', return_fields) - return return_person_list + #return_person_list= [] + #return_person_list = parse_filter(self.person_list,person_filter ,'persons', return_fields) + #return return_person_list def GetPIs(self,site_id): @@ -127,13 +127,7 @@ class SenslabImportUsers: #print>>sys.stderr," \r\n End GetKeys with filter ", return_key_list #return return_key_list - #def GetSlices( self,slice_filter=None, return_fields=None): - #return_slice_list= [] - #print>>sys.stderr, "\r\n\r\n\t =======================GetSlices " - #if not (slice_filter or return_fields): - #return self.slices_list - #return_slice_list= parse_filter(self.slices_list, slice_filter,'slice', return_fields) - #return return_slice_list + def AddSlice(self, slice_fields): diff --git a/sfa/senslab/senslab-import.py b/sfa/senslab/senslab-import.py deleted file mode 100755 index 84bef2b9..00000000 --- a/sfa/senslab/senslab-import.py +++ /dev/null @@ -1,263 +0,0 @@ -#!/usr/bin/python -# -## -# Import PLC records into the SFA database. It is indended that this tool be -# run once to create SFA records that reflect the current state of the -# planetlab database. -# -# The import tool assumes that the existing PLC hierarchy should all be part -# of "planetlab.us" (see the root_auth and level1_auth variables below). -# -# Public keys are extracted from the users' SSH keys automatically and used to -# create GIDs. This is relatively experimental as a custom tool had to be -# written to perform conversion from SSH to OpenSSL format. It only supports -# RSA keys at this time, not DSA keys. -## - -import getopt -import sys -import tempfile - - -from sfa.util.record import * -from sfa.util.table import SfaTable -from sfa.util.xrn import get_leaf, get_authority -from sfa.util.plxrn import hostname_to_hrn, slicename_to_hrn, email_to_hrn, hrn_to_pl_slicename -from sfa.util.config import Config -from sfa.trust.certificate import convert_public_key, Keypair -from sfa.trust.trustedroots import * -from sfa.trust.hierarchy import * -from sfa.util.xrn import Xrn -from sfa.trust.gid import create_uuid - - -from sfa.senslab.SenslabImportUsers import * -from sfa.senslab.OARrestapi import * - -from sfa.senslab.SenslabImport import SenslabImport - - - - - -oarserver = {} -oarserver['ip'] = '10.127.255.254' -oarserver['port'] = 80 -oarserver['uri'] = '/oarapi/resources/full.json' - - -def process_options(): - - (options, args) = getopt.getopt(sys.argv[1:], '', []) - for opt in options: - name = opt[0] - val = opt[1] - - -def load_keys(filename): - keys = {} - tmp_dict = {} - try: - execfile(filename, tmp_dict) - if 'keys' in tmp_dict: - keys = tmp_dict['keys'] - return keys - except: - return keys - -def save_keys(filename, keys): - f = open(filename, 'w') - f.write("keys = %s" % str(keys)) - f.close() - -def main(): - - process_options() - config = Config() - if not config.SFA_REGISTRY_ENABLED: - sys.exit(0) - root_auth = config.SFA_REGISTRY_ROOT_AUTH - interface_hrn = config.SFA_INTERFACE_HRN - print interface_hrn, root_auth - keys_filename = config.config_path + os.sep + 'person_keys.py' - - SenslabImporter = SenslabImport() - SenslabUsers = SenslabImportUsers() - - OARImporter = OARapi() - #print '\r\n =====OAR Importer list===== ' - #for node in OARImporter.OARserver.GetNodes().keys(): - #print node, OARImporter.OARserver.GetNodes[node] - - - #if config.SFA_API_DEBUG: SenslabImporter.logger.setLevelDebug() - #shell = sfaImporter.shell - #plc_auth = sfaImporter.plc_auth - #print plc_auth - - # initialize registry db table - table = SfaTable() - if not table.exists(): - table.create() - - # create root authority - SenslabImporter.create_top_level_auth_records(root_auth) - if not root_auth == interface_hrn: - SenslabImporter.create_top_level_auth_records(interface_hrn) - - # create s user record for the slice manager - SenslabImporter.create_sm_client_record() - - # create interface records ADDED 12 JUILLET 2011 - SenslabImporter.logger.info("Import: creating interface records") - SenslabImporter.create_interface_records() - - # add local root authority's cert to trusted list ADDED 12 JUILLET 2011 - SenslabImporter.logger.info("Import: adding " + interface_hrn + " to trusted list") - authority = SenslabImporter.AuthHierarchy.get_auth_info(interface_hrn) - SenslabImporter.TrustedRoots.add_gid(authority.get_gid_object()) - - - print "\r\n \r\n create dict of all existing sfa records" - # create dict of all existing sfa records - existing_records = {} - existing_hrns = [] - key_ids = [] - person_keys = {} - results = table.find() - for result in results: - existing_records[(result['hrn'], result['type'])] = result - existing_hrns.append(result['hrn']) - - - - - #Get Senslab nodes - nodes_dict = OARImporter.GetNodes() - print "\r\n NODES8DICT ",nodes_dict - - persons_list = SenslabUsers.GetPersons() - print "\r\n PERSONS_LIST ",persons_list - - keys_list = SenslabUsers.GetKeys() - print "\r\n KEYSS_LIST ",keys_list - - slices_list = SenslabUsers.GetSlices() - print "\r\n SLICES_LIST ",slices_list - - # Get all Senslab sites - sites_dict = OARImporter.GetSites() - print "\r\n sSITES_DICT" , sites_dict - - # start importing - for site in sites_dict: - site_hrn = interface_hrn + "." + site['login_base'] - #sfa_logger().info("Importing site: %s" % site_hrn) - print "HRN %s %s site existing in hrn ? %s" %( site['login_base'],site_hrn, site_hrn in existing_hrns) - # import if hrn is not in list of existing hrns or if the hrn exists - # but its not a site record - if site_hrn not in existing_hrns or \ - (site_hrn, 'authority') not in existing_records: - print "SITE HRN UNKNOWN" , site, site_hrn - site_hrn = SenslabImporter.import_site(interface_hrn, site) - - print "\r\n \r\n ===========IMPORT NODE_RECORDS ==========\r\n site %s \r\n \t nodes_dict %s" %(site,nodes_dict) - # import node records - for node_id in site['node_ids']: - #for[node['node_id'] for node in nodes_dict]: - #print '\r\n \t **NODE_ID %s node %s '%( node_id, node) - #continue - for node in nodes_dict: - if node_id is node['node_id']: - #node = nodes_dict[node_id] - print '\r\n \t NODE_ID %s node %s '%( node_id, node) - hrn = hostname_to_hrn(interface_hrn, site['login_base'], node['hostname']) - break - - if hrn not in existing_hrns or \ - (hrn, 'node') not in existing_records: - print "\t\t NODE HRN NOT in existing records!" ,hrn - SenslabImporter.import_node(hrn, node) - - # import persons - for person in persons_list: - hrn = email_to_hrn(site_hrn, person['email']) - print >>sys.stderr, "\r\n\r\n^^^^^^^^^^^^^PERSON hrn %s person %s site hrn %s" %(hrn,person,site_hrn) - SenslabImporter.import_person( site_hrn, person,keys_list) - -# import slices - for slice_id in site['slice_ids']: - print >>sys.stderr, "\r\n\r\n \t ^^^^^^^\\\\\\\\\\\\\\\^^^^^^ slice_id %s " %(slice_id) - for sl in slices_list: - if slice_id is sl['slice_id']: - #hrn = slicename_to_hrn(interface_hrn, sl['name']) - hrn = email_to_hrn(site_hrn, sl['name']) - print >>sys.stderr, "\r\n\r\n^^^^^^^^^^^^^SLICE ID hrn %s site_hrn %s" %(hrn,site_hrn) - if hrn not in existing_hrns or \ - (hrn, 'slice') not in existing_records: - SenslabImporter.import_slice(site_hrn, sl) - - - # remove stale records - system_records = [interface_hrn, root_auth, interface_hrn + '.slicemanager'] - for (record_hrn, type) in existing_records.keys(): - if record_hrn in system_records: - continue - - record = existing_records[(record_hrn, type)] - if record['peer_authority']: - continue - ## remove stale records - #for (record_hrn, type) in existing_records.keys(): - #record = existing_records[(record_hrn, type)] - #print" \r\n ****record hrn %s \t\t TYPE %s " %(record_hrn,type) - ## if this is the interface name dont do anything - #if record_hrn == interface_hrn or \ - #record_hrn == root_auth or \ - #record['peer_authority']: - #continue - - - found = False - - if type == 'authority': - for site in sites_dict: - print "\t type : authority : ", site - site_hrn = interface_hrn + "." + site['login_base'] - if site_hrn == record_hrn and site['site_id'] == record['pointer']: - found = True - print "\t \t Found :", found - break - - elif type == 'node': - login_base = get_leaf(get_authority(record_hrn)) - - nodename = Xrn.unescape(get_leaf(record_hrn)) - print "type: node : login_base %s nodename %s" %(login_base, nodename) - if login_base in sites_dict: - site = sites_dict[login_base] - print "\t type node : login base %s site %s" %(login_base, site) - for node in nodes_dict.values(): - tmp_nodename = node['hostname'] - if tmp_nodename == nodename and \ - node['site_id'] == site['site_id'] and \ - node['node_id'] == record['pointer']: - found = True - print "\t Nodename: %s site id %s node id %s record %s" %( nodename, node['site_id'], node['node_id'],record['pointer']) - break - else: - continue - - if not found: - record_object = existing_records[(record_hrn, type)] - print "\t\t NOT FOUND ! " - SenslabImporter.delete_record(record_hrn, type) - - # save pub keys - SenslabImporter.logger.info('Import: saving current pub keys') - save_keys(keys_filename, person_keys) - - - -if __name__ == "__main__": - main() diff --git a/sfa/senslab/slabdriver.py b/sfa/senslab/slabdriver.py index de217ea5..0ff5149d 100644 --- a/sfa/senslab/slabdriver.py +++ b/sfa/senslab/slabdriver.py @@ -48,8 +48,8 @@ class SlabDriver(Driver): print >>sys.stderr, "\r\n_____________ SFA SENSLAB DRIVER \r\n" # thierry - just to not break the rest of this code - #self.oar = OARapi() - #self.users = SenslabImportUsers() + + self.oar = OARapi() self.ldap = LDAPapi() self.users = SenslabImportUsers() @@ -287,86 +287,7 @@ class SlabDriver(Driver): return pl_record - def fill_record_pl_info(self, records): - """ - Fill in the planetlab specific fields of a SFA record. This - involves calling the appropriate PLC method to retrieve the - database record for the object. - - PLC data is filled into the pl_info field of the record. - - @param record: record to fill in field (in/out param) - """ - # get ids by type - #print>>sys.stderr, "\r\n \r\rn \t\t >>>>>>>>>>fill_record_pl_info records %s : "%(records) - node_ids, site_ids, slice_ids = [], [], [] - person_ids, key_ids = [], [] - type_map = {'node': node_ids, 'authority': site_ids, - 'slice': slice_ids, 'user': person_ids} - - for record in records: - for type in type_map: - #print>>sys.stderr, "\r\n \t\t \t fill_record_pl_info : type %s. record['pointer'] %s "%(type,record['pointer']) - if type == record['type']: - type_map[type].append(record['pointer']) - #print>>sys.stderr, "\r\n \t\t \t fill_record_pl_info : records %s... \r\n \t\t \t fill_record_pl_info : type_map %s"%(records,type_map) - # get pl records - nodes, sites, slices, persons, keys = {}, {}, {}, {}, {} - if node_ids: - node_list = self.GetNodes( node_ids) - #print>>sys.stderr, " \r\n \t\t\t BEFORE LIST_TO_DICT_NODES node_ids : %s" %(node_ids) - nodes = list_to_dict(node_list, 'node_id') - if site_ids: - site_list = self.oar.GetSites( site_ids) - sites = list_to_dict(site_list, 'site_id') - #print>>sys.stderr, " \r\n \t\t\t site_ids %s sites : %s" %(site_ids,sites) - if slice_ids: - slice_list = self.users.GetSlices( slice_ids) - slices = list_to_dict(slice_list, 'slice_id') - if person_ids: - #print>>sys.stderr, " \r\n \t\t \t fill_record_pl_info BEFORE GetPersons person_ids: %s" %(person_ids) - person_list = self.GetPersons( person_ids) - persons = list_to_dict(person_list, 'person_id') - #print>>sys.stderr, "\r\n fill_record_pl_info persons %s \r\n \t\t person_ids %s " %(persons, person_ids) - for person in persons: - key_ids.extend(persons[person]['key_ids']) - #print>>sys.stderr, "\r\n key_ids %s " %(key_ids) - - pl_records = {'node': nodes, 'authority': sites, - 'slice': slices, 'user': persons} - - if key_ids: - key_list = self.users.GetKeys( key_ids) - keys = list_to_dict(key_list, 'key_id') - # print>>sys.stderr, "\r\n fill_record_pl_info persons %s \r\n \t\t keys %s " %(keys) - # fill record info - for record in records: - # records with pointer==-1 do not have plc info. - # for example, the top level authority records which are - # authorities, but not PL "sites" - if record['pointer'] == -1: - continue - - for type in pl_records: - if record['type'] == type: - if record['pointer'] in pl_records[type]: - record.update(pl_records[type][record['pointer']]) - break - # fill in key info - if record['type'] == 'user': - if 'key_ids' not in record: - #print>>sys.stderr, " NO_KEY_IDS fill_record_pl_info key_ids record: %s" %(record) - logger.info("user record has no 'key_ids' - need to import ?") - else: - pubkeys = [keys[key_id]['key'] for key_id in record['key_ids'] if key_id in keys] - record['keys'] = pubkeys - - #print>>sys.stderr, "\r\n \r\rn \t\t <<<<<<<<<<<<<<<<<< fill_record_pl_info records %s : "%(records) - # fill in record hrns - records = self.fill_record_hrns(records) - - return records - + def AddSliceToNodes(self, slice_name, added_nodes, slice_user=None): @@ -404,84 +325,7 @@ class SlabDriver(Driver): def DeleteSliceFromNodes(self, slice_name, deleted_nodes): return - def fill_record_hrns(self, records): - """ - convert pl ids to hrns - """ - #print>>sys.stderr, "\r\n \r\rn \t\t \t >>>>>>>>>>>>>>>>>>>>>> fill_record_hrns records %s : "%(records) - # get ids - slice_ids, person_ids, site_ids, node_ids = [], [], [], [] - for record in records: - #print>>sys.stderr, "\r\n \r\rn \t\t \t record %s : "%(record) - if 'site_id' in record: - site_ids.append(record['site_id']) - if 'site_ids' in records: - site_ids.extend(record['site_ids']) - if 'person_ids' in record: - person_ids.extend(record['person_ids']) - if 'slice_ids' in record: - slice_ids.extend(record['slice_ids']) - if 'node_ids' in record: - node_ids.extend(record['node_ids']) - - # get pl records - slices, persons, sites, nodes = {}, {}, {}, {} - if site_ids: - site_list = self.oar.GetSites( site_ids, ['site_id', 'login_base']) - sites = list_to_dict(site_list, 'site_id') - #print>>sys.stderr, " \r\n \r\n \t\t ____ site_list %s \r\n \t\t____ sites %s " % (site_list,sites) - if person_ids: - person_list = self.GetPersons( person_ids, ['person_id', 'email']) - #print>>sys.stderr, " \r\n \r\n \t\t____ person_lists %s " %(person_list) - persons = list_to_dict(person_list, 'person_id') - if slice_ids: - slice_list = self.users.GetSlices( slice_ids, ['slice_id', 'name']) - slices = list_to_dict(slice_list, 'slice_id') - if node_ids: - node_list = self.GetNodes( node_ids, ['node_id', 'hostname']) - nodes = list_to_dict(node_list, 'node_id') - - # convert ids to hrns - for record in records: - - # get all relevant data - type = record['type'] - pointer = record['pointer'] - auth_hrn = self.hrn - login_base = '' - if pointer == -1: - continue - - #print>>sys.stderr, " \r\n \r\n \t\t fill_record_hrns : sites %s \r\n \t\t record %s " %(sites, record) - if 'site_id' in record: - site = sites[record['site_id']] - #print>>sys.stderr, " \r\n \r\n \t\t \t fill_record_hrns : sites %s \r\n \t\t\t site sites[record['site_id']] %s " %(sites,site) - login_base = site['login_base'] - record['site'] = ".".join([auth_hrn, login_base]) - if 'person_ids' in record: - emails = [persons[person_id]['email'] for person_id in record['person_ids'] \ - if person_id in persons] - usernames = [email.split('@')[0] for email in emails] - person_hrns = [".".join([auth_hrn, login_base, username]) for username in usernames] - #print>>sys.stderr, " \r\n \r\n \t\t ____ person_hrns : %s " %(person_hrns) - record['persons'] = person_hrns - if 'slice_ids' in record: - slicenames = [slices[slice_id]['name'] for slice_id in record['slice_ids'] \ - if slice_id in slices] - slice_hrns = [slicename_to_hrn(auth_hrn, slicename) for slicename in slicenames] - record['slices'] = slice_hrns - if 'node_ids' in record: - hostnames = [nodes[node_id]['hostname'] for node_id in record['node_ids'] \ - if node_id in nodes] - node_hrns = [hostname_to_hrn(auth_hrn, login_base, hostname) for hostname in hostnames] - record['nodes'] = node_hrns - if 'site_ids' in record: - login_bases = [sites[site_id]['login_base'] for site_id in record['site_ids'] \ - if site_id in sites] - site_hrns = [".".join([auth_hrn, lbase]) for lbase in login_bases] - record['sites'] = site_hrns - #print>>sys.stderr, "\r\n \r\rn \t\t \t <<<<<<<<<<<<<<<<<<<<<<<< fill_record_hrns records %s : "%(records) - return records + def fill_record_sfa_info(self, records): -- 2.43.0