[lxc-devel] [PATCH] lxc-start-ephemeral: Fix console() and add storage option

Serge Hallyn serge.hallyn at ubuntu.com
Mon Jul 8 15:14:41 UTC 2013


Quoting Stéphane Graber (stgraber at ubuntu.com):
> The introduction of the new console() python API broke
> lxc-start-ephemeral's console(tty=1) call, I now changed that to
> console() which does the right thing with both API versions.
> 
> This also adds a new storage-type option, letting the user choose to use
> a standard directory instead of tmpfs for the container (but still have
> it ephemeral).
> 
> Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>

Great, thanks.

Acked-by: Serge E. Hallyn <serge.hallyn at ubuntu.com>

> ---
>  src/lxc/lxc-start-ephemeral.in | 20 +++++++++++++++++---
>  1 file changed, 17 insertions(+), 3 deletions(-)
> 
> diff --git a/src/lxc/lxc-start-ephemeral.in b/src/lxc/lxc-start-ephemeral.in
> index 904f5ac..cb1f732 100644
> --- a/src/lxc/lxc-start-ephemeral.in
> +++ b/src/lxc/lxc-start-ephemeral.in
> @@ -85,13 +85,17 @@ parser.add_argument("--key", "-S", type=str,
>  parser.add_argument("--daemon", "-d", action="store_true",
>                      help=_("run in the background"))
>  
> +parser.add_argument("--storage-type", "-s", type=str, default=None,
> +                    choices=("tmpfs", "dir"),
> +                    help=("type of storage use by the container"))
> +
>  parser.add_argument("--union-type", "-U", type=str, default="overlayfs",
>                      choices=("overlayfs", "aufs"),
>                      help=_("type of union (overlayfs or aufs), "
>                             "defaults to overlayfs."))
>  
>  parser.add_argument("--keep-data", "-k", action="store_true",
> -                    help=_("Use a persistent backend instead of tmpfs."))
> +                    help=_("don't wipe everything clean at the end"))
>  
>  parser.add_argument("command", metavar='CMD', type=str, nargs="*",
>                      help=_("Run specific command in container "
> @@ -104,6 +108,16 @@ args = parser.parse_args()
>  if args.command and args.daemon:
>      parser.error(_("You can't use -d and a command at the same time."))
>  
> +## Check that -k isn't used with -s tmpfs
> +if not args.storage_type:
> +    if args.keep_data:
> +        args.storage_type = "dir"
> +    else:
> +        args.storage_type = "tmpfs"
> +
> +if args.keep_data and args.storage_type == "tmpfs":
> +    parser.error(_("You can't use -k with the tmpfs storage type."))
> +
>  ## The user needs to be uid 0
>  if not os.geteuid() == 0:
>      parser.error(_("You must be root to run this script. Try running: sudo %s"
> @@ -190,7 +204,7 @@ LXC_NAME="%s"
>          target = "%s/delta%s" % (dest_path, count)
>          fd.write("mkdir -p %s %s\n" % (target, entry[1]))
>  
> -        if not args.keep_data:
> +        if args.storage_type == "tmpfs":
>              fd.write("mount -n -t tmpfs none %s\n" % (target))
>  
>          if args.union_type == "overlayfs":
> @@ -254,7 +268,7 @@ if not dest.start() or not dest.wait("RUNNING", timeout=5):
>  
>  # Deal with the case where we just attach to the container's console
>  if not args.command and not args.daemon:
> -    dest.console(tty=1)
> +    dest.console()
>      dest.shutdown(timeout=5)
>      sys.exit(0)
>  
> -- 
> 1.8.3.2
> 
> 
> ------------------------------------------------------------------------------
> This SF.net email is sponsored by Windows:
> 
> Build for Windows Store.
> 
> http://p.sf.net/sfu/windows-dev2dev
> _______________________________________________
> 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