X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=system%2FTestMapper.py;h=7d0547f3e40c72891049ca2487d284eeecca803d;hb=376ae7cf4db99d0be432f42dfa16b32094527c17;hp=13a07806f920275e8348e74389f2cd59dac5ddb4;hpb=d09cbd5b5d9d02ceadf6f09c446b17c8c1cb6f5e;p=tests.git diff --git a/system/TestMapper.py b/system/TestMapper.py index 13a0780..7d0547f 100644 --- a/system/TestMapper.py +++ b/system/TestMapper.py @@ -1,11 +1,12 @@ # -# Thierry Parmentelat - INRIA Sophia Antipolis +# Thierry Parmentelat +# Copyright (C) 2010 INRIA +# # # mapper class # # this works on a spec as defined in a config file -# and allows to remap various fields, typically to another testbox -# see an example in config_onelab_testbox32.py +# and allows to remap various fields on the local substrate # import utils @@ -22,14 +23,21 @@ class TestMapper: @staticmethod def node_name (node): - return node['node_fields']['hostname'] + return node['name'] + + def node_names (self): + result=[] + for plc in self.plcs: + for site in plc['sites']: + for node in site['nodes']: + result.append(node['name']) + return result def apply_first_map (self, type, name, obj, maplist): for (map_pattern,rename_dict) in maplist: - if self.options.verbose: - print 'dbg: TestMapper/',type,'name=',name,'& pattern=',map_pattern if utils.match (name,map_pattern): - utils.header("TestMapper/%s : applying rules '%s' on %s"%(type,map_pattern,name)) + if self.options.verbose: + utils.header("TestMapper/%s : applying rules '%s' on %s"%(type,map_pattern,name)) for (k,v) in rename_dict.iteritems(): # apply : separator path=k.split(':') @@ -38,30 +46,28 @@ class TestMapper: for step in path[:-1]: if not o.has_key(step): o[step]={} - utils.header ("WARNING : created step %s in path %s on %s %s"%( - step,path,type,name)) + if self.options.verbose: + utils.header ("WARNING : created step %s in path %s on %s %s"%( + step,path,type,name)) o=o[step] # last step is the one for side-effect step=path[-1] - if not o.has_key(step): - utils.header ("WARNING : inserting key %s for path %s on %s %s"%( - step,path,type,name)) + if self.options.verbose: + if not o.has_key(step): + utils.header ("WARNING : inserting key %s for path %s on %s %s"%( + step,path,type,name)) # apply formatting if '%s' found in the value + if v is None: + if self.options.verbose: print "TestMapper WARNING - None value - ignored, key=",k + continue if v.find('%s')>=0: v=v%obj[k] - print("TestMapper, rewriting %s: %s into %s"%(name,k,v)) + if self.options.verbose: + print("TestMapper, rewriting %s: %s into %s"%(name,k,v)) o[step]=v # only apply first rule return - def node_names (self): - result=[] - for plc in self.plcs: - for site in plc['sites']: - for node in site['nodes']: - result.append(node['node_fields']['hostname']) - return result - def map (self,mapper): plc_maps = mapper.get('plc',[])