[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