From fa0e6e1bf42c92d1e35201322121bcb5e2d30199 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Graber?= Date: Fri, 30 Nov 2012 16:55:54 -0500 Subject: [PATCH] lxc-create: Store template information in config MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Acked-by: Serge E. Hallyn --- 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 30f0c22d9..7a50633fb 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 + 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 + sum=$(sha1sum $template_path | cut -d ' ' -f1) + echo "# Template used to create this container: $lxc_template" >> $lxc_path/$lxc_name/config + if [ -n "$*" ]; then + 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