Scripting to add/remove BYOD devices
BYOD devices are typically gray/black-box hardware (and sometimes software). User shows up with a device, that at minimum has a control network interface and some ability to be rebooted. We have a variety of support for them: osid opmode/features, image boot/load timeout controls, node/type attributes. We have support for a few different types of management/console interfaces (perhaps we could package/automate this a bit, but not sure it's worth it). Then of course we support a variety of power control methods, including IPMI/ilo/drac, etc. These devices may not be imageable and may not have our clientside installed; that's fine and supported. If they support experiment ethernet network interfaces that plug into our fabric, we can isolate those into links.
The goal here is not to add new gray/black-box config/setup modes during experiment runtime -- but rather to better script the addition/removal of (temporary) user BYODs.
Here's what we already have: addstack
, addswitch
, addwire
, addmanagementiface
, addinterface
.
There are also addspecialdevice
addspecialiface
but at least the former should be extended to handle a few more necessary things (osid, os features) (right now it assumes the presence of the GENERIC osid). Finally, there is newscript
, which can take XML descriptions of new nodes (and their ifaces/ifacetypes/wires).
My sense is that by extending addspecialdevice
and addspecialiface
as mentioned above, and by ensuring that BYOD types can optionally only be used by their owners in their project(s), we can basically call this done for the initial case. (I'm sure when we actually start adding these things more regularly, we'll want to add further options to the addspecialdevice
script to set various node/type attributes, etc.)