X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=source%2Fsteps%2FGetAndUpdateNodeDetails.py;h=eb92160ef60ad43704b1ecee4c8dfb14c0f55ea3;hb=efffd4409c55f5d0d6b6462c32fc6ce657487404;hp=849e25b8dc55aaf594a73b4f4c3a3630b1edbac0;hpb=a0d22ecfe8b0fd6fd7b2363048919b6f0cdaa2ad;p=bootmanager.git diff --git a/source/steps/GetAndUpdateNodeDetails.py b/source/steps/GetAndUpdateNodeDetails.py index 849e25b..eb92160 100644 --- a/source/steps/GetAndUpdateNodeDetails.py +++ b/source/steps/GetAndUpdateNodeDetails.py @@ -6,6 +6,7 @@ # Copyright (c) 2004-2006 The Trustees of Princeton University # All rights reserved. +import sys, traceback import string from Exceptions import * @@ -105,4 +106,35 @@ def Run( vars, log ): vars['INTERFACES']= interfaces + # 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 flavor 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 + if (vars['extensions']==''): + vars['extensions']=[] + + for k in flavour_keys: + # Support MyPLC <5.2 + if (not vars.has_key(k)): + 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: %s\n"%node_flavour) + return 1