+ ##########
+ # parse PLC_FLAVOUR_VIRT_MAP
+ known_virts=['vs','lxc']
+ default_virt='vs'
+ def virt_from_virt_map (self, fcdistro):
+ map={}
+ try:
+ assigns=[x.strip() for x in self.api.config.PLC_FLAVOUR_VIRT_MAP.split(';')]
+ for assign in assigns:
+ (left,right)=[x.strip() for x in assign.split(':')]
+ if right not in GetNodeFlavour.known_virts:
+ print "GetNodeFlavour, unknown 'virt' %s - ignored" % right
+ continue
+ for fcdistro in [ x.strip() for x in left.split(',')]:
+ map[fcdistro]=right
+ except:
+ print "GetNodeFlavour, issue with parsing PLC_FLAVOUR_VIRT_MAP=%s - returning '%s'"%\
+ (self.api.config.PLC_FLAVOUR_VIRT_MAP,GetNodeFlavour.default_virt)
+ traceback.print_exc()
+ return GetNodeFlavour.default_virt
+ if fcdistro in map: return map[fcdistro]
+ if 'default' in map: return map['default']
+ return GetNodeFlavour.default_virt
+
+