self.server = OARrestapi()
self.parser = OARGETParser(self.server)
- def GetNodes(self,node_filter= None, return_fields=None):
- #print>>sys.stderr, " \r\n GetNodes node_filter %s return_fields %s" %(node_filter,return_fields)
- self.parser.SendRequest("GET_resources_full")
- node_dict = self.parser.GetNodesFromOARParse()
- return_node_list = []
- #print>>sys.stderr, " \r\n GetNodes node_dict %s" %(node_dict)
- if not (node_filter or return_fields):
- return_node_list = node_dict.values()
- return return_node_list
+ #def GetNodes(self,node_filter= None, return_fields=None):
+ ##print>>sys.stderr, " \r\n GetNodes node_filter %s return_fields %s" %(node_filter,return_fields)
+ #self.parser.SendRequest("GET_resources_full")
+ #node_dict = self.parser.GetNodesFromOARParse()
+ #return_node_list = []
+ ##print>>sys.stderr, " \r\n GetNodes node_dict %s" %(node_dict)
+ #if not (node_filter or return_fields):
+ #return_node_list = node_dict.values()
+ #return return_node_list
- return_node_list= parse_filter(node_dict.values(),node_filter ,'node', return_fields)
- return return_node_list
+ #return_node_list= parse_filter(node_dict.values(),node_filter ,'node', return_fields)
+ #return return_node_list
def GetSites(self, site_filter= None, return_fields=None):
AuthHierarchy = Hierarchy()
table = SfaTable()
-
+if not table.exists():
+ table.create()
+
def create_top_level_auth_records(hrn):
"""
Create top level records (includes root and sub authorities (local/remote)
node_record['record_id'] = existing_record['record_id']
table.update(node_record)
-
+# person is already a sfa record
def import_person(person):
existing_records = table.find({'hrn': person['hrn'], 'type': 'user'})
if not existing_records:
- table.insert(person_record)
+ table.insert(person)
else:
existing_record = existing_records[0]
person['record_id'] = existing_record['record_id']
- table.update(person_record)
+ table.update(person)
print interface_hrn, root_auth
# initialize registry db table
- table = SfaTable()
- if not table.exists():
- table.create()
+ #table = SfaTable()
+ #if not table.exists():
+ #table.create()
# create root authority
create_top_level_auth_records(root_auth)
existing_records[(result['hrn'], result['type'])] = result
existing_hrns.append(result['hrn'])
- #Get Senslab nodes
- Driver = SlabDriver(OARapi(),SenslabUsers())
+ #Get Senslab nodes
+
+ Driver = SlabDriver(OARapi(),LDAPapi())
nodes_dict = Driver.GetNodes()
print "\r\n NODES8DICT ",nodes_dict
- persons_list = Driver.GetPersons()
- print "\r\n PERSONS_LIST ",persons_list
+ ldap_person_list = Driver.GetPersons()
+ print "\r\n PERSONS_LIST ",ldap_person_list
- keys_list = Driver.GetKeys()
- print "\r\n KEYSS_LIST ",keys_list
+
#slices_list = SenslabUsers.GetSlices()
#print "\r\n SLICES_LIST ",slices_list
#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, root_auth, 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
- import_node(hrn, node)
+ if hrn not in existing_hrns or \
+ (hrn, 'node') not in existing_records:
+ print "\t\t NODE HRN NOT in existing records!" ,hrn
+ import_node(hrn, node)
# import persons
- for person in persons_list:
+ for person in ldap_person_list:
print >>sys.stderr, "\r\n\r\n^^^^^^^^^^^^^PERSON hrn %s person %s site hrn %s" %(hrn,person)
- import_person( site_hrn, person,keys_list)
- if hrn not in existing_hrns or \
- (hrn, 'user') not in existing_records or update_record:
- import_person(site_hrn, person)
+ if person['hrn'] not in existing_hrns or \
+ (person['hrn'], 'user') not in existing_records :
+ import_person( person)
# import slices
#for slice_id in site['slice_ids']:
#print >>sys.stderr, "\r\n\r\n \t ^^^^^^^\\\\\\\\\\\\\\\^^^^^^ slice_id %s " %(slice_id)
## thierry : please avoid wildcard imports :)
from sfa.senslab.OARrestapi import *
-from sfa.senslab.SenslabImportUsers import *
+from sfa.senslab.LDAapi import *
def list_to_dict(recs, key):
"""
# this inheritance scheme is so that the driver object can receive
# GetNodes or GetSites sorts of calls directly
# and thus minimize the differences in the managers with the pl version
-class SlabDriver (OARapi, SenslabImportUsers):
+class SlabDriver (OARapi, LDAPapi):
- def __init__(self, config):
+ def __init__(self,config):
+
self.config=config
self.hrn = config.SFA_INTERFACE_HRN
-
+
+ self.root_auth = config.SFA_REGISTRY_ROOT_AUTH
+
+
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 = self
- self.users = self
+ self.ldap = self
self.time_format = "%Y-%m-%d %H:%M:%S"
#self.logger=sfa_logger()
+ def GetPersons(self, person_filter=None, return_fields=None):
+
+ person_list = self.ldapFind({'authority': self.root_auth })
+ return_person_list = parse_filter(person_list,person_filter ,'persons', return_fields)
+ return return_person_list
+
+ def GetNodes(self,node_filter= None, return_fields=None):
+
+ self.parser.SendRequest("GET_resources_full")
+ node_dict = self.parser.GetNodesFromOARParse()
+ return_node_list = []
+ print>>sys.stderr, " \r\n GetNodes node_dict %s" %(node_dict)
+ if not (node_filter or return_fields):
+ return_node_list = node_dict.values()
+ return return_node_list
+
+ return_node_list= parse_filter(node_dict.values(),node_filter ,'node', return_fields)
+ return return_node_list
+
##
# Convert SFA fields to PLC fields for use when registering up updating
# registry record in the PLC database