[lxc-devel] [PATCH] python: Fix get_ips and nesting with lxcpath
Serge Hallyn
serge.hallyn at ubuntu.com
Mon Apr 22 04:12:21 UTC 2013
Quoting Stéphane Graber (stgraber at ubuntu.com):
> When using -P (lxcpath), the parameter path needs to be forwarded
> to the various commands being run but not used by the nested lxc-ls
> as it's relatively unlikely that both the host and the nested containers
> use a custom path.
>
> This isn't ideal but short of having a way to provide the container path
> for every single of the nesting (with potential unlimited depth), it's
> the best we can do.
>
> Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>
Actually the lxc.default_config_path() for /proc/1/root/%s should
ideally be gotten from the chroot itself, in case it's a different
distro chroot - but good first start.
Acked-by: Serge E. Hallyn <serge.hallyn at ubuntu.com>
> ---
> src/lxc/lxc-ls | 5 +++--
> src/python-lxc/lxc/__init__.py | 3 ++-
> 2 files changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/src/lxc/lxc-ls b/src/lxc/lxc-ls
> index 4308ede..d4e369b 100644
> --- a/src/lxc/lxc-ls
> +++ b/src/lxc/lxc-ls
> @@ -89,12 +89,13 @@ def getTerminalSize():
>
>
> def getSubContainers(container, lxcpath):
> - attach = ['lxc-attach', '-R', '-s', 'NETWORK|PID', '-n', container,
> + attach = ['lxc-attach', '-P', lxcpath, '-R', '-s', 'NETWORK|PID',
> + '-n', container,
> '--', sys.argv[0], "--nesting"]
>
> with open(os.devnull, "w") as fd:
> newenv = dict(os.environ)
> - newenv['NESTED'] = "/proc/1/root/%s" % lxcpath
> + newenv['NESTED'] = "/proc/1/root/%s" % lxc.default_config_path
> sp = subprocess.Popen(attach, stderr=fd, stdout=subprocess.PIPE,
> env=newenv, universal_newlines=True)
> sp.wait()
> diff --git a/src/python-lxc/lxc/__init__.py b/src/python-lxc/lxc/__init__.py
> index e3ce8eb..c235d18 100644
> --- a/src/python-lxc/lxc/__init__.py
> +++ b/src/python-lxc/lxc/__init__.py
> @@ -347,7 +347,8 @@ class Container(_lxc.Container):
> if count != 0:
> time.sleep(1)
>
> - base_cmd = ["lxc-attach", "-s", "NETWORK", "-n", self.name, "--",
> + base_cmd = ["lxc-attach", "-s", "NETWORK",
> + "-P", self.get_config_path(), "-n", self.name, "--",
> "ip"]
>
> # Get IPv6
> --
> 1.8.1.2
>
>
> ------------------------------------------------------------------------------
> Precog is a next-generation analytics platform capable of advanced
> analytics on semi-structured data. The platform includes APIs for building
> apps and a phenomenal toolset for data science. Developers can use
> our toolset for easy data analysis & visualization. Get a free account!
> http://www2.precog.com/precogplatform/slashdotnewsletter
> _______________________________________________
> Lxc-devel mailing list
> Lxc-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/lxc-devel
More information about the lxc-devel
mailing list