Ubuntu 15 support.
Similar to Ubuntu 14, but new and different UIDs, and... systemd! systemd has made it into Ubuntu. This affects our control net discovery. Our /etc/network/interfaces hack marks eth[0-9] as "auto". New Ubuntu versions have systemd (or upstart, if your Ubuntu 15 uses that -- our images will not) job that waits for any interfaces marked auto to come up, and doesn't timeout for 2 mins. This doesn't work for us, because our use of auto is abuse :). So, we enter a new level of abuse. We change the systemd unit dependencies, making the network-online.target service want (depend on) our special ifup-wait-emulab-cnet.service (which looks for /run/cnet to get written), instead of on ifup-wait-all-auto.service. This means network-online.target happens as soon as the control net is up, which is the primary thing we're concerned about. Now, if experimenters would ever add their own special "auto" interfaces to /etc/network/interfaces, the rest of the startup scripts that depend on network-online.target could possibly race (although you would think that our control net discovery will be slower than any static configuration...). But for now, this solution appealed more that "faking" that eth[0-9] are all up by writing the right files --- or by finding a better mechanism instead of abusing "auto".
Showing with 1058 additions and 0 deletions