From: Stéphane Graber Date: Thu, 21 Feb 2013 20:11:29 +0000 (-0500) Subject: python: Update the python scripts for lxcpath X-Git-Tag: lxc-0.9.0.rc1~2^2~46 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9157421a9b6dd075da0c6a6705be13e467ea0a01;p=thirdparty%2Flxc.git python: Update the python scripts for lxcpath This adds -P/--lxcpath to the various python scripts. Signed-off-by: Stéphane Graber Acked-by: Serge E. Hallyn --- diff --git a/src/lxc/lxc-device b/src/lxc/lxc-device index db9399d2a..b194b056f 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 98b786167..92a4e536a 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 e11919fb4..3e2a5d35b 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 151a5058d..e262c23c2 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