Backward compatibility between the Ruby version of CMC, PXE and the nodeHandler (Changes only in NodeHandler)
1) The handler directory has a new cmc.rb file. Checkout the latest handler/cmc.rb
2) In nodeHandler.rb,
def run(): change CMC::nodeAllOff() to CMC::nodeAllOffSoft()
def shutdown(): change CMC::nodeAllOff() to CMC::nodeAllOffSoft()
3) In experiment.rb,
def Experiment.start(): make changes to send a single CMC call to the entire set instead of sending multiple CMC calls (once for each node). The existing code is in comments and the new code has been explicitly identified.
4) In node.rb,
def powerOn : comment out CMC::nodeOn(x, y)
def powerOff : change CMC::nodeOff to CMC::nodeOffSoft
5) In nodeHandler/src/etc/nodehandler/grid.cfg,
set CMC_URL= "http://cmc:5012/cmc"
6) In nodeSet.rb,
def pxeImage(image, imageName = nil) : change the string that is assigned to @pxePrefix.The existing code has been commented out and also comments indicate the new code added. The calls to the function setPxeEnv has been commented and an new function setPxeEnvMulti has been implemented.
Backward compatibility between the Ruby version of CMC, PXE and the nodeHandler (Changes only in CMC and PXE)
1) The following changes have been made to pxe.rb.
a) def PxeService.mount(prefix = '/pxe')
<service name="setBootImage">
<info>Configure PXE to boot a node into a specific image</info> <args><arg name="img" value="imageName"/></args> <args><arg name="node" value="nodeName"/></args> <args><arg name="ip" value="ipAddress"/></args>
</service>
<service name="clearBootImage">
<info>Configure PXE to clear the boot image on the disk of a node</info> <args><arg name="node" value="nodeName"/></args> <args><arg name="ip" value="ipAddress"/></args>
</service>
This is as per the old version of pxe.rb (Ref: rel-3.2.3 in svn tag).
b) "class SetBootImageServlet" has been changed to conform to the altered arguments in "setBootImage".
c) "class ClearBootImageServlet" has been changed to conform to the altered arguments in "clearBootImage".
2) The following changes have been made to cmc.rb,
a) def CMCService.mount(prefix = '/cmc')
<service name="off">
<info>Switch on a node at a specific coordinate</info> <args><arg name="x" value="x_coord"/></args> <args><arg name="y" value="y_coord"/></args>
</service>
GridService.mount("#{prefix}/off", SwitchOffNodeServlet)
The above lines have been added
b) "class SwitchOffNodeServlet" has been added.