[lxc-devel] [PATCH 1/6] Move lxcbr0 setup logic into lxc.net script
Serge Hallyn
serge.hallyn at ubuntu.com
Mon Aug 11 18:30:18 UTC 2014
Quoting Michael H. Warfield (mhw at WittsEnd.com):
> On Mon, 2014-08-11 at 15:37 +0000, Serge Hallyn wrote:
> > Quoting Michael H. Warfield (mhw at WittsEnd.com):
> > > On Thu, 2014-07-31 at 08:53 +0200, Martin Pitt wrote:
> > > > Factor this out of the lxc-net.conf upstart job, so that it can be used by
> > > > init.d scripts and systemd units, too.
> > >
> > > Crap. Never fails. I was in Europe when this came out.
> > >
> > > Looking at lxc.net, I would say it's going to break some existing setups
> > > (notably mine) where lxcbr0 is already setup. Yes, we can set
> > > LXC_BRIDGE to no but we should also include some autodetect logic such
> > > that, if lxcbr0 already exists, this doesn't commit random acts of
> > > terrorism.
>
> > That logic should already be there. If /sys/class/net/lxcbr0 already
> > exists, then start will do nothing; if /run/lxc/network_up does not
> > exist then stop will do nothing.
>
> Yeah, I traced through that logic and finally realized that. I'm a
> little nudgey about even calling "stop" from "start" in the case where
> the bridge already exists or when USE_LXC_BRIDGE is not true and then
> relying on "stop" to rely on the non-existence of network_up to exit
> without doing anything to the bridge. If that's the case, why even call
> "stop" in the "start" function at all? That had me confused.
Yeah, that's an upstart-ism which doesn't belong in the script (and
must continue to be done in upstart)
> I don't see the need for this logic at all in "start":
>
> --
> if [ -d /sys/class/net/${LXC_BRIDGE} ]; then
> if [ ! -f ${varrun}/network_up ]; then
> # bridge exists, but we didn't start it
> stop;
> fi
> exit 0;
> fi
> --
>
> If this bridge exists and we didn't start it, why even attempt to stop
We don't - the stop is to tell upstart not to continue running the
job. It doesn't belong in this script.
-serge
More information about the lxc-devel
mailing list