• Leigh B. Stoller's avatar
    Checkpoint the rest of my changes to support swapmod of both ElabInElab and · 6eff9de6
    Leigh B. Stoller authored
    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.