[lxc-devel] [PATCHv2] lxc-create: Store template information in config
Stéphane Graber
stgraber at ubuntu.com
Fri Nov 30 22:01:59 UTC 2012
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
+ 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
--
1.8.0
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 899 bytes
Desc: OpenPGP digital signature
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20121130/267e0ea4/attachment.pgp>
More information about the lxc-devel
mailing list