[lxc-devel] [PATCH] python: Update the python scripts for lxcpath
Serge Hallyn
serge.hallyn at ubuntu.com
Thu Feb 21 21:19:43 UTC 2013
Quoting Stéphane Graber (stgraber at ubuntu.com):
> This adds -P/--lxcpath to the various python scripts.
>
> Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>
thanks.
Acked-by: Serge E. Hallyn <serge.hallyn at ubuntu.com>
> ---
> src/lxc/lxc-device | 6 +++++-
> src/lxc/lxc-ls | 7 +++++--
> src/lxc/lxc-start-ephemeral.in | 14 +++++++++++---
> src/python-lxc/lxc/__init__.py.in | 6 ++++--
> 4 files changed, 25 insertions(+), 8 deletions(-)
>
> diff --git a/src/lxc/lxc-device b/src/lxc/lxc-device
> index db9399d..b194b05 100644
> --- a/src/lxc/lxc-device
> +++ b/src/lxc/lxc-device
> @@ -47,6 +47,9 @@ parser.add_argument("-n", dest="container", metavar="CONTAINER",
> help=_("Name of the container to add the device to"),
> required=True)
>
> +parser.add_argument("-P", "--lxcpath", dest="lxcpath", metavar="PATH",
> + help=_("Use specified container path"), default=None)
> +
> # Commands
> subparsers = parser.add_subparsers()
> subparser_add = subparsers.add_parser('add', help=_('Add a device'))
> @@ -76,7 +79,8 @@ if not args.name:
> args.name = args.device
>
> ## Check that the container is ready
> -container = lxc.Container(args.container)
> +container = lxc.Container(args.container, args.lxcpath)
> +
> if not container.running:
> parser.error("The container must be running.")
>
> diff --git a/src/lxc/lxc-ls b/src/lxc/lxc-ls
> index 98b7861..92a4e53 100644
> --- a/src/lxc/lxc-ls
> +++ b/src/lxc/lxc-ls
> @@ -92,6 +92,9 @@ parser = argparse.ArgumentParser(description=_("LXC: List containers"),
> parser.add_argument("-1", dest="one", action="store_true",
> help=_("list one container per line (default when piped)"))
>
> +parser.add_argument("-P", "--lxcpath", dest="lxcpath", metavar="PATH",
> + help=_("Use specified container path"), default=None)
> +
> parser.add_argument("--active", action="store_true",
> help=_("list only active containers "
> "(same as --running --frozen)"))
> @@ -138,7 +141,7 @@ if not os.geteuid() == 0 and (args.fancy or args.state):
>
> # List of containers, stored as dictionaries
> containers = []
> -for container_name in lxc.list_containers():
> +for container_name in lxc.list_containers(config_path=args.lxcpath):
> entry = {}
> entry['name'] = container_name
>
> @@ -151,7 +154,7 @@ for container_name in lxc.list_containers():
> containers.append(entry)
> continue
>
> - container = lxc.Container(container_name)
> + container = lxc.Container(container_name, args.lxcpath)
>
> # Filter by status
> if args.state and container.state not in args.state:
> diff --git a/src/lxc/lxc-start-ephemeral.in b/src/lxc/lxc-start-ephemeral.in
> index e11919f..3e2a5d3 100644
> --- a/src/lxc/lxc-start-ephemeral.in
> +++ b/src/lxc/lxc-start-ephemeral.in
> @@ -64,6 +64,9 @@ container when exiting (with ctrl-a-q).
> If no COMMAND is given and -d is used, the name and IP addresses of the
> container will be printed to the console."""))
>
> +parser.add_argument("--lxcpath", "-P", dest="lxcpath", metavar="PATH",
> + help=_("Use specified container path"), default=None)
> +
> parser.add_argument("--orig", "-o", type=str, required=True,
> help=_("name of the original container"))
>
> @@ -104,16 +107,21 @@ if not os.geteuid() == 0:
> % (sys.argv[0])))
>
> # Load the orig container
> -orig = lxc.Container(args.orig)
> +orig = lxc.Container(args.orig, args.lxcpath)
> if not orig.defined:
> parser.error(_("Source container '%s' doesn't exist." % args.orig))
>
> # Create the new container paths
> -dest_path = tempfile.mkdtemp(prefix="%s-" % args.orig, dir="@LXCPATH@")
> +if not args.lxcpath:
> + lxc_path = lxc.default_config_path
> +else:
> + lxc_path = args.lxcpath
> +
> +dest_path = tempfile.mkdtemp(prefix="%s-" % args.orig, dir=lxc_path)
> os.mkdir(os.path.join(dest_path, "rootfs"))
>
> # Setup the new container's configuration
> -dest = lxc.Container(os.path.basename(dest_path))
> +dest = lxc.Container(os.path.basename(dest_path), args.lxcpath)
> dest.load_config(orig.config_file_name)
> dest.set_config_item("lxc.utsname", dest.name)
> dest.set_config_item("lxc.rootfs", os.path.join(dest_path, "rootfs"))
> diff --git a/src/python-lxc/lxc/__init__.py.in b/src/python-lxc/lxc/__init__.py.in
> index 151a505..e262c23 100644
> --- a/src/python-lxc/lxc/__init__.py.in
> +++ b/src/python-lxc/lxc/__init__.py.in
> @@ -238,7 +238,8 @@ class Container(_lxc.Container):
> if not self.running:
> return False
>
> - attach = ["lxc-attach", "-n", self.name]
> + attach = ["lxc-attach", "-n", self.name,
> + "-P", self.get_config_path()]
> if namespace != "ALL":
> attach += ["-s", namespace]
>
> @@ -299,7 +300,8 @@ class Container(_lxc.Container):
> if not self.running:
> return False
>
> - if subprocess.call(["lxc-console", "-n", self.name, "-t", "%s" % tty],
> + if subprocess.call(["lxc-console", "-n", self.name, "-t", "%s" % tty,
> + "-P", self.get_config_path()],
> universal_newlines=True) != 0:
> return False
> return True
> --
> 1.8.1.2
>
>
> ------------------------------------------------------------------------------
> Everyone hates slow websites. So do we.
> Make your web apps faster with AppDynamics
> Download AppDynamics Lite for free today:
> http://p.sf.net/sfu/appdyn_d2d_feb
> _______________________________________________
> 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