diff options
author | Daniel Baumann <mail@daniel-baumann.ch> | 2016-06-01 13:56:41 +0000 |
---|---|---|
committer | Daniel Baumann <mail@daniel-baumann.ch> | 2016-06-01 13:57:06 +0000 |
commit | ce88f18bae951a614940e0e4497e9f20aa4011b6 (patch) | |
tree | 0953e87b0272059527176120782a8e0e463ccc87 /lib/container | |
parent | Releasing debian version 20160515-1. (diff) | |
download | open-infrastructure-compute-tools-ce88f18bae951a614940e0e4497e9f20aa4011b6.tar.xz open-infrastructure-compute-tools-ce88f18bae951a614940e0e4497e9f20aa4011b6.zip |
Merging upstream version 20160601.
Signed-off-by: Daniel Baumann <mail@daniel-baumann.ch>
Diffstat (limited to 'lib/container')
-rwxr-xr-x | lib/container/create | 31 | ||||
-rwxr-xr-x | lib/container/remove | 2 | ||||
-rwxr-xr-x | lib/container/stop | 17 |
3 files changed, 44 insertions, 6 deletions
diff --git a/lib/container/create b/lib/container/create index 0b0aa3a..dea1e76 100755 --- a/lib/container/create +++ b/lib/container/create @@ -103,11 +103,34 @@ then exit 1 fi -SCRIPT="${SCRIPT:-debian}" - -if [ ! -e "/usr/share/container-tools/scripts/${SCRIPT}" ] +if [ -z "${SCRIPT}" ] then - echo "'${SCRIPT}': no such script" >&2 + if [ -e /usr/share/container-tools/scripts/default ] + then + TARGET="$(basename $(readlink /usr/share/container-tools/scripts/default))" + + case "${TARGET}" in + container-tools_script) + TARGET="$(basename $(readlink /etc/alternatives/container-tools_script))" + ;; + esac + + if [ -e "/usr/share/container-tools/scripts/${TARGET}" ] + then + SCRIPT="${TARGET}" + else + echo "default -> '${TARGET}': no such script" >&2 + exit 1 + fi + else + SCRIPT="debian" + fi +else + if [ ! -e "/usr/share/container-tools/scripts/${SCRIPT}" ] + then + echo "'${SCRIPT}': no such script" >&2 + exit 1 + fi fi CNT_AUTO="${CNT_AUTO:-$(hostname -f)}" diff --git a/lib/container/remove b/lib/container/remove index d171d87..4f26d43 100755 --- a/lib/container/remove +++ b/lib/container/remove @@ -127,5 +127,5 @@ then fi # Run -rm -rf "${MACHINES}/${NAME}" +rm --preserve-root --one-file-system -rf "${MACHINES}/${NAME}" rm -f "${CONFIG}/${NAME}.conf" diff --git a/lib/container/stop b/lib/container/stop index 67cc403..fb470f6 100755 --- a/lib/container/stop +++ b/lib/container/stop @@ -92,9 +92,24 @@ fi STATE="$(machinectl show ${NAME} 2>&1 | awk -F= '/^State=/ { print $2 }')" -# Removing network configuration case "${CLEAN}" in true) + # Removing bind mounts + BIND="$(awk -F= '/^bind=/ { print $2 }' ${CONFIG}/${NAME}.conf)" + + if [ -n "${BIND}" ] + then + BINDS="$(echo ${BIND} | sed -e 's|;| |g')" + + for BIND in ${BINDS} + do + DIRECTORY="$(echo ${BIND} | awk -F: '{ print $1 }')" + + rmdir --ignore-fail-on-non-empty --parents ${DIRECTORY} > /dev/null 2>&1 || true + done + fi + + # Removing network configuration NETWORK_VETH_EXTRA_CONF="$(awk -F= '/^network-veth-extra=/ { print $2 }' ${CONFIG}/${NAME}.conf)" case "${NETWORK_VETH_EXTRA_CONF}" in |