Checkpoint the rest of my changes to support swapmod of both ElabInElab and
Firewalled experiments (see tbsetup/elabinelab.in for the other stuff). * To support firewalled experiments, needed to add a new virt_firewalls table to split the existing firewalls table up, which included both virtual and physical stuff. There are the usual frontend changes and a few other things scattered around, including tmcd.c. * The firewall code in tbswap got some beefing up to support adding and deleting nodes from the its special control net vlan. Note that I have not made any progress on containment of deleted nodes, just as we do not do anything now for teardown (unless its paniced, in which case the experiment cannot be modified anyway). * ptopgen and assign_wrapper got some interesting modifications: Unlike regular swapmod, we cannot just tear down all the vlans since that would interrupt everything inside the inner elab. Instead, leave the vlans as is. The problem is that when assign runs, it can just as easily pick different interfaces on the same nodes, which would be a royal pain in the ass to deal with! So, ptopgen got a new option (-u) that assign wrapper uses to tell ptopgen that it should prune out unused interfaces from nodes that are already allocated to the experiment. This is, at best, as pathetically gross hack, but it makes sure that all the interfaces stay the same across swapmods. * The unrelated revision of elabinelab has a bunch of new code for adding and deleting nodes from the inner elab. Mostly it deals with dhcpd (inner and outer, waiting for nodes to reboot, etc). It also deals with updating the vlans table in the DB, pruning out any nodes (ports) that are deleted but for which there are still interfaces in existing vlans. Said ports are them moved back to the default vlan with calls to snmpit. Also under another revision a a couple of weeks ago are the web interface changes to support the newnode MFS inside an inner Emulab. * swapexp and endexp got some more checks for firewalled and paniced experiments, which were missing.
Showing with 438 additions and 111 deletions