This adds -P/--lxcpath to the various python scripts. Signed-off-by: Stéphane Graber <stgra...@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@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/lxc-devel