• Leigh B. Stoller's avatar
    Okay, here is the current development approach for dealing with · 5a4e9df8
    Leigh B. Stoller authored
    ElabinElab experiments that wrap another experiment, either firewalled
    or not. This instead of my security level stuff, that I decided was
    too much of a pain the user, at least for now. New NS syntax:
    
    	tb-set-inner-elab-eid two-simple
    
    In the ElabinElab file, sets the name of an existing experiment in the
    same project. Experiment is parsed, and after the parse we notice in
    tbprerun that we have an inner eid, so we reparse the NS file, only
    this time we pass in the maximum number of nodes needed by the inner
    eid (tbprerun now computes min/max nodes at prerun time, instead of
    later as first part of swapin). This number is used to allocatethe
    appropriate number of inner experimental nodes. Why do it this way?
    Cause the NS parser is the only tool we have for generating the virt
    topology, and I do not want go down the path of inventing a new
    frontend.
    
    Anyway, after the reparse, we now have the proper number of nodes in
    the wrapper experiment. Now its simply a matter of copying over the
    type and fixnode info from the inner experiment to the outer
    experiment.  Why? So that when the outer experiment is swapped in, it
    gets the nodes (of the right type/fixnode) that the inner experiment
    is going to want later, when it is swapped in by the inner emulab!
    
    Another approach would be to make elabinelab and elabinelab_eid
    options to batchexp (and thus the web form and XMLRPC interface) so
    that we can avoid the double parse. I suspect people do not want more
    crap on the web form, so I did not do it this way.
    5a4e9df8
parse-ns.in 12.3 KB