summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@open-infrastructure.net>2016-12-05 08:06:42 +0000
committerDaniel Baumann <daniel.baumann@open-infrastructure.net>2016-12-11 12:13:02 +0000
commit9207107ef3db0d52880fd6cce750f5c8182f5601 (patch)
treea377f27ba6623f793772ee4301bdf17cc6218863
parentEnabling pre and post hooks in container commands. (diff)
downloadcompute-tools-9207107ef3db0d52880fd6cce750f5c8182f5601.tar.xz
compute-tools-9207107ef3db0d52880fd6cce750f5c8182f5601.zip
Enabling pre and post hooks in container create scripts.
Signed-off-by: Daniel Baumann <daniel.baumann@open-infrastructure.net>
-rwxr-xr-xshare/scripts/curl19
-rwxr-xr-xshare/scripts/debconf19
-rwxr-xr-xshare/scripts/debootstrap19
3 files changed, 57 insertions, 0 deletions
diff --git a/share/scripts/curl b/share/scripts/curl
index 6b7d6a0..69badd9 100755
--- a/share/scripts/curl
+++ b/share/scripts/curl
@@ -20,6 +20,7 @@ set -e
SCRIPT="${0}"
+HOOKS="/etc/container-tools/hooks"
MACHINES="/var/lib/machines"
CACHE="/var/cache/container-tools/images"
@@ -132,6 +133,15 @@ PASSWORD="${PASSWORD:-$(dd if=/dev/urandom bs=12 count=1 2> /dev/null | base64)}
VERSION="$(container version)"
+# Pre hooks
+for FILE in "${HOOKS}/pre-${SCRIPT}".* "${HOOKS}/${NAME}.pre-${SCRIPT}"
+do
+ if [ -x "${FILE}" ]
+ then
+ "${FILE}"
+ fi
+done
+
# Run
# FIXME: Show available image directories on server
@@ -227,3 +237,12 @@ case "${CLEAN}" in
rm -f "${CACHE}/${IMAGE}.sha512"
;;
esac
+
+# Post hooks
+for FILE in "${HOOKS}/post-${SCRIPT}".* "${HOOKS}/${NAME}.post-${SCRIPT}"
+do
+ if [ -x "${FILE}" ]
+ then
+ "${FILE}"
+ fi
+done
diff --git a/share/scripts/debconf b/share/scripts/debconf
index cde66cb..72e9c85 100755
--- a/share/scripts/debconf
+++ b/share/scripts/debconf
@@ -21,6 +21,7 @@ set -e
SCRIPT="${0}"
CONFIG="/etc/container-tools/config"
+HOOKS="/etc/container-tools/hooks"
MACHINES="/var/lib/machines"
Parameters ()
@@ -964,6 +965,15 @@ Debconf
export NAME
+# Pre hooks
+for FILE in "${HOOKS}/pre-${SCRIPT}".* "${HOOKS}/${NAME}.pre-${SCRIPT}"
+do
+ if [ -x "${FILE}" ]
+ then
+ "${FILE}"
+ fi
+done
+
# Run debconf parts
for SCRIPT in /usr/share/container-tools/scripts/debconf.d/*
do
@@ -1077,3 +1087,12 @@ fi
# remove debconf temporary files
rm --preserve-root --one-file-system -rf "${DEBCONF_TMPDIR}"
rmdir --ignore-fail-on-non-empty /tmp/container-tools 2>&1 || true
+
+# Post hooks
+for FILE in "${HOOKS}/post-${SCRIPT}".* "${HOOKS}/${NAME}.post-${SCRIPT}"
+do
+ if [ -x "${FILE}" ]
+ then
+ "${FILE}"
+ fi
+done
diff --git a/share/scripts/debootstrap b/share/scripts/debootstrap
index 9c76ba0..2da573d 100755
--- a/share/scripts/debootstrap
+++ b/share/scripts/debootstrap
@@ -20,6 +20,7 @@ set -e
SCRIPT="${0}"
+HOOKS="/etc/container-tools/hooks"
MACHINES="/var/lib/machines"
Parameters ()
@@ -137,6 +138,15 @@ case "${MIRROR}" in
;;
esac
+# Pre hooks
+for FILE in "${HOOKS}/pre-${SCRIPT}".* "${HOOKS}/${NAME}.pre-${SCRIPT}"
+do
+ if [ -x "${FILE}" ]
+ then
+ "${FILE}"
+ fi
+done
+
mkdir -p "${MACHINES}"
debootstrap --arch=${ARCHITECTURE} --include=${INCLUDE} ${DISTRIBUTION} ${MACHINES}/${NAME} ${MIRROR}
@@ -148,3 +158,12 @@ echo "${NAME}" > "${MACHINES}/${NAME}/etc/hostname"
# Setting root password
echo root:${PASSWORD} | chroot "${MACHINES}/${NAME}" chpasswd
echo "${NAME}: root password set to '${PASSWORD}'."
+
+# Post hooks
+for FILE in "${HOOKS}/post-${SCRIPT}".* "${HOOKS}/${NAME}.post-${SCRIPT}"
+do
+ if [ -x "${FILE}" ]
+ then
+ "${FILE}"
+ fi
+done