add power support for IBM BladeCenter chassis

Merged chuck cranor requested to merge chuck/emulab-devel:power_ibmbc into master

Add power support for the IBM BladeCenter chassis ( This is the chassis used in the old Roadrunner cluster at LANL. Each chassis has 14 blades in it. The management IP API is accessed from boss via ssh. A ssh keypair should be setup to allow for passwordless ssh access. We assume the admin has installed the keypair on boss (in /usr/testbed/etc/{ibmbc,}) and on each chassis for the standard "USERID" account. The key files should be owned by an account like "operator" to avoid ssh complaining about key file permissions in some cases.

The module will end up running commands like:

  ssh USERID@chassis-mm power -on -T 'blade[1]'
  ssh USERID@chassis-mm power -off -T 'blade[1]'
  ssh USERID@chassis-mm power -cycle -T 'blade[1]'

(we'll add "-i /usr/testbed/etc/ibmbc" to "ssh" if the key file is present)

using this requires the following "mysql tbdb" cmds on boss: one-time operation: insert into node_types (class,type) values ('power', 'ibmbc');

per-chassis operations: # assumes that "rr1" is blade1 of chassis "bch1" insert into nodes (node_id,type,phys_nodeid,role,priority,status, eventstate,op_mode,allocstate) values ('bch1', 'ibmbc', 'bch1', 'powerctrl', 10001, 'down', 'ISUP', 'NONE', 'FREE_DIRTY');

 # adds IP of the chassis management module
 insert into interfaces (node_id,IP,mask,interface_type,iface,role) values
      ('bch1', '', '','','eth0','other');

per-blade operation: insert into outlets (node_id,power_id,outlet) values ('rr1', 'bch1', 1); # outlet 1==blade1, etc.

Edited by chuck cranor

Merge request reports