A set of changes to allow the newnode path (MFS and adding nodes) to
work inside ElabInElab. The crux of this is to emulate what switchmac does when incorporating nodes into the testbed. Rather then using snmpit to ask the switches for MAC info, we can just ask outer emulab via the proxy to get that same info from the DB. Note, there are no changes to the newnode MFS; it will boot and happily report it after launching teachswitch, but those packets are harmless to the situation. Another wrinkle is that we need the outer emulab to tell us which interfaces are control and which are experimental, since inside there is no real way to determine that. I did this by overloading the final field in the return from switchmac, and using that to override the "role" setting that utils/newnode would normally choose on its own. There is another new routine in the XMLRPC server that is intended to be used for bypassing the newnode path. This is not hooked into anything yet, but the intent is that rather then using the web interface to "add" nodes, we just return everything needed to seed the new_nodes and new_interfaces table, and then run newnodes directly.
Showing with 327 additions and 32 deletions