+import sys
+
from sfa.util.faults import MissingSfaInfo
from sfa.util.sfalogging import logger
from sfa.util.table import SfaTable
# SlabDriver should be really only about talking to the senslab testbed
## thierry : please avoid wildcard imports :)
-from sfa.senslab.OARrestapi import *
-from sfa.senslab.LDAapi import *
+from sfa.senslab.OARrestapi import OARapi
+from sfa.senslab.LDAPapi import LDAPapi
+from sfa.senslab.SenslabImportUsers import SenslabImportUsers
+from sfa.senslab.parsing import parse_filter
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, LDAPapi):
+class SlabDriver ():
- def __init__(self,config):
+ def __init__(self, config):
self.config=config
self.hrn = config.SFA_INTERFACE_HRN
# thierry - just to not break the rest of this code
#self.oar = OARapi()
#self.users = SenslabImportUsers()
- self.oar = self
- self.ldap = self
+ self.oar = OARapi()
+ self.ldap = LDAPapi()
+ self.users = SenslabImportUsers()
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 })
+ person_list = self.ldap.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()
+ self.oar.parser.SendRequest("GET_resources_full")
+ node_dict = self.oar.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
# get pl records
nodes, sites, slices, persons, keys = {}, {}, {}, {}, {}
if node_ids:
- node_list = self.oar.GetNodes( 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:
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.users.GetPersons( 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:
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.users.GetPersons( person_ids, ['person_id', 'email'])
+ 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.oar.GetNodes( node_ids, ['node_id', 'hostname'])
+ node_list = self.GetNodes( node_ids, ['node_id', 'hostname'])
nodes = list_to_dict(node_list, 'node_id')
# convert ids to hrns
site_pis = {}
if site_ids:
pi_filter = {'|roles': ['pi'], '|site_ids': site_ids}
- pi_list = SenslabUsers.GetPersons( pi_filter, ['person_id', 'site_ids'])
+ pi_list = self.GetPersons( pi_filter, ['person_id', 'site_ids'])
#print>>sys.stderr, "\r\n \r\n _fill_record_sfa_info ___ GetPersons ['person_id', 'site_ids'] pi_ilist %s" %(pi_list)
for pi in pi_list:
# get the pl records
pl_person_list, pl_persons = [], {}
- pl_person_list = SenslabUsers.GetPersons(person_ids, ['person_id', 'roles'])
+ pl_person_list = self.GetPersons(person_ids, ['person_id', 'roles'])
pl_persons = list_to_dict(pl_person_list, 'person_id')
#print>>sys.stderr, "\r\n \r\n _fill_record_sfa_info ___ _list %s \r\n \t\t SenslabUsers.GetPersons ['person_id', 'roles'] pl_persons %s \r\n records %s" %(pl_person_list, pl_persons,records)
# fill sfa info