+ # call getNodeFlavour and store in VARS['node_flavour']
+ try:
+ node_flavour = BootAPI.call_api_function(vars, "GetNodeFlavour", (vars['NODE_ID'],))
+ except:
+ log.write("GetNodeFlavour failed, not fatal if the node flavour is available in ``configuration''\n")
+ pass
+
+ flavour_keys = [
+ 'virt',# 'vs' or 'lxc'
+ 'nodefamily',# the basename for downloading nodeimage
+ 'extensions',# extensions to be applied on top of the base nodeimage
+ 'plain'# false if compressed image, true if not
+ ]
+
+ # MyPLC 5.0 workaround
+ # make sure to define 'extensions' even if not yet set
+ if 'extensions' not in vars or vars['extensions']=='':
+ vars['extensions'] = []
+
+ for k in flavour_keys:
+ # Support MyPLC<5.2
+ if k not in vars:
+ try:
+ vars[k] = node_flavour[k]
+ except:
+ exc_type, exc_value, exc_traceback = sys.exc_info()
+ lines = traceback.format_exception(exc_type, exc_value, exc_traceback)
+ for line in lines:
+ log.write(line)
+ raise BootManagerException("Could not call GetNodeFlavour - need PLCAPI-5.2")
+
+ log.write ("NodeFlavour as returned from PLC: {}\n".format(node_flavour))
+