• David Johnson's avatar
    Improvements in ovs/linuxbridge iface config and hosts file setup. · 938d5fe0
    David Johnson authored
    Also, I had to change the linuxbridge configuration around.  I'd been
    using statically-configured linux bridges, and I'd assumed I could tell
    Neutron to use them.  Unfortunately, this is sort of true, but not
    enough; from the comments:
     NB: We can only control the name of the external br-ex bridge,
     because only the Neutron linuxbridge driver accepts both a map of
     physical networks to physical interfaces; and physical network to
     bridge names.  Nova assumes that the bridge it must plug a device
     into is named according to the physical network uuid.  Thus, for
     the linuxbridge case, we only setup bridge_mappings for
     br-ex... modulo a flag.  Hopefully in the future they will see the
     sense in allowing static bridge configurations.
    So for now, only br-ex is static; the others are dynamic.  What a pain
    for debugging!  Stupid.
    More importantly, this commit also takes integrates correctly with the
    new Emulab clientside improvements that let the user customize interface
    config and /etc/hosts file generation.  To handle hosts, we create a
    static manifest file that tells Emulab to call an rc.hostnames
    pre-hook.  This hook basically grabs our latest special openstack hosts
    entries, and ensures they make it into /etc/hosts.head, so that
    genhostsfile prepends our special names.  To handle interfaces, we
    further customize /etc/network/interfaces so that Emulab's rc.ifconfig
    only tries to configure interfaces we haven't handled.
    Thus, if the clientside of the disk image the scripts are operating on
    includes the new clientside hookable support, we no longer move
    rc.ifconfig and rc.hostnames out of our way --- we let them run, secure
    in the knowledge that our customizations won't get trampled.
    (All this improvement was necessary so that blockstores and event system
    stuff would work.)
setup-lib.sh 40.5 KB