From 5fadb34f94b4f35e9c88c0785c6c15393f63bcf8 Mon Sep 17 00:00:00 2001 From: Filippo Squillace Date: Sat, 29 Nov 2014 16:35:39 +0100 Subject: [PATCH] Fix issue #5 --- lib/core.sh | 11 ++--------- tests/test_core.sh | 36 ++++-------------------------------- 2 files changed, 6 insertions(+), 41 deletions(-) diff --git a/lib/core.sh b/lib/core.sh index e72219c..11a1f69 100644 --- a/lib/core.sh +++ b/lib/core.sh @@ -70,8 +70,7 @@ then SH="/bin/sh --login" elif [ "$JUJU_ENV" == "1" ] then - PROOT="$LD_LIB" - SH="/bin/sh" + die "Error: Nested JuJu environments are not allowed" else die "The variable JUJU_ENV is not properly set" fi @@ -115,7 +114,6 @@ function _setup_juju(){ function setup_juju(){ # Setup the JuJu environment - [ "$JUJU_ENV" == "1" ] && die "Error: The operation is not allowed inside JuJu environment" local maindir=$(TMPDIR=$JUJU_TEMPDIR mktemp -d -t juju.XXXXXXXXXX) _prepare_build_directory @@ -134,7 +132,6 @@ function setup_juju(){ function setup_from_file_juju(){ # Setup from file the JuJu environment - [ "$JUJU_ENV" == "1" ] && die "Error: The operation is not allowed inside JuJu environment" local imagefile=$1 [ ! -e ${imagefile} ] && die "Error: The JuJu image file ${imagefile} does not exist" @@ -162,10 +159,8 @@ function _define_proot_args(){ function run_juju_as_root(){ - [ "$JUJU_ENV" == "1" ] && die "Error: The operation is not allowed inside JuJu environment" - mkdir -p ${JUJU_HOME}/${HOME} - ${CHROOT} $JUJU_HOME /usr/bin/bash -c "mkdir -p /run/lock && $(_define_chroot_args "$@")" + JUJU_ENV=1 ${CHROOT} $JUJU_HOME /usr/bin/bash -c "mkdir -p /run/lock && $(_define_chroot_args "$@")" } @@ -196,8 +191,6 @@ function run_juju_as_user(){ function delete_juju(){ - [ "$JUJU_ENV" == "1" ] && die "Error: The operation is not allowed inside JuJu environment" - ! ask "Are you sure to delete JuJu located in ${JUJU_HOME}" "N" && return if mountpoint -q ${JUJU_HOME} then diff --git a/tests/test_core.sh b/tests/test_core.sh index fba5f0d..1a4be0c 100755 --- a/tests/test_core.sh +++ b/tests/test_core.sh @@ -53,15 +53,6 @@ function test_setup_juju(){ setup_juju 1> /dev/null [ -e $JUJU_HOME/file ] || return 1 [ -e $JUJU_HOME/run/lock ] || return 1 - - export -f setup_juju - export -f die - JUJU_ENV=1 bash -ic "setup_juju" &> /dev/null - is_equal $? 1 || return 1 - export -n setup_juju - unset setup_juju - export -n die - unset die } @@ -76,13 +67,6 @@ function test_setup_from_file_juju(){ export -f die bash -ic "setup_from_file_juju noexist.tar.gz" &> /dev/null is_equal $? 1 || return 1 - - JUJU_ENV=1 bash -ic "setup_from_file_juju" &> /dev/null - is_equal $? 1 || return 1 - export -n setup_from_file_juju - unset setup_from_file_juju - export -n die - unset die } @@ -97,15 +81,6 @@ function test_run_juju_as_root(){ run_juju_as_root "[ -e /run/lock ]" is_equal $? 0 || return 1 [ -e $JUJU_HOME/${HOME} ] || return 1 - - export -f run_juju_as_root - export -f die - JUJU_ENV=1 bash -ic "run_juju_as_root" &> /dev/null - is_equal $? 1 || return 1 - export -n run_juju_as_root - unset run_juju_as_root - export -n die - unset die } function test_run_juju_as_user(){ @@ -170,15 +145,12 @@ function test_delete_juju(){ echo "Y" | delete_juju 1> /dev/null is_juju_installed is_equal $? 1 || return 1 +} - export -f delete_juju - export -f die - JUJU_ENV=1 bash -ic "delete_juju" &> /dev/null +function test_nested_juju(){ + install_mini_juju + JUJU_ENV=1 bash -ic "source $CURRPWD/$(dirname $0)/../lib/core.sh" &> /dev/null is_equal $? 1 || return 1 - export -n delete_juju - unset delete_juju - export -n die - unset die }