[lxc-devel] [PATCHv2] lxc-create: Store template information in config

Natanael Copa ncopa at alpinelinux.org
Fri Nov 30 22:23:59 UTC 2012


On Fri, 30 Nov 2012 17:01:59 -0500
Stéphane Graber <stgraber at ubuntu.com> wrote:

> Change lxc-create to add the name of the template, checksum and any
> parameters
> to the container's configuration.
> This makes it easier to debug and figure out exactly how a container
> was built.
> 
> Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>
> ---
>  src/lxc/lxc-create.in | 36 +++++++++++++++++++++++-------------
>  1 file changed, 23 insertions(+), 13 deletions(-)
> 
> diff --git a/src/lxc/lxc-create.in b/src/lxc/lxc-create.in
> index 30f0c22..7a50633 100644
> --- a/src/lxc/lxc-create.in
> +++ b/src/lxc/lxc-create.in
> @@ -281,7 +281,29 @@ if [ ! -r "$lxc_config" ]; then
>      exit 1
>  fi
>  -cp $lxc_config $lxc_path/$lxc_name/config
> +# Allow for a path to be provided as the template name
> +if [ -x $lxc_template ]; then

if [ -x "$lxc_template" ]; then

other wise will posix shell barf if $lxc_template is empty.

> +    template_path=$lxc_template
> +else
> +    template_path=${templatedir}/lxc-$lxc_template
> +fi
> +
> +if ! [ -x "$template_path" ]; then
> +    echo "$(basename $0): unknown template '$lxc_template'" >&2
> +    cleanup
> +fi
> +
> +if [ ! -z $lxc_template ]; then

Same here. Do:
if [ ! -z "$lxc_template" ]; then

> +    sum=$(sha1sum $template_path | cut -d ' ' -f1)
> +    echo "# Template used to create this container: $lxc_template" >>
> $lxc_path/$lxc_name/config
> +    if [ -n "$*" ]; then

I'm not sure this is ok. I'd do:

if [ $# -gt 0 ]; then

> +        echo "# Parameters passed to the template: $*" >>

        echo "# Parameters passed to the template: $@" >>

> $lxc_path/$lxc_name/config
> +    fi
> +    echo "# Checksum of the template script (SHA-1): $sum" >>
> $lxc_path/$lxc_name/config
> +    echo "" >> $lxc_path/$lxc_name/config
> +fi
> +
> +cat $lxc_config >> $lxc_path/$lxc_name/config
>   if [ -n "$custom_rootfs" ]; then
>  	if grep -q "lxc.rootfs" $lxc_path/$lxc_name/config ; then
> @@ -301,18 +323,6 @@ if [ $backingstore = "lvm" ]; then
>  fi
>   if [ ! -z $lxc_template ]; then
> -    # Allow for a path to be provided as the template name
> -    if [ -x $lxc_template ]; then
> -        template_path=$lxc_template
> -    else
> -        template_path=${templatedir}/lxc-$lxc_template
> -    fi
> -
> -    if ! [ -x "$template_path" ]; then
> -        echo "$(basename $0): unknown template '$lxc_template'" >&2
> -        cleanup
> -    fi
> -
>      $template_path --path=$lxc_path/$lxc_name --name=$lxc_name $*
>      if [ $? -ne 0 ]; then
>          echo "$(basename $0): failed to execute template
> '$lxc_template'" >&2





More information about the lxc-devel mailing list