From 8354728e21259b01e1399739b166ccc6ca711657 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rton=20Elek?= Date: Fri, 21 Jun 2019 13:20:06 +0200 Subject: [PATCH 1/2] HDDS-1716. Smoketest results are generated with an internal user --- hadoop-ozone/dist/src/main/compose/test-all.sh | 2 +- hadoop-ozone/dist/src/main/compose/testlib.sh | 18 ++++++++++++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/hadoop-ozone/dist/src/main/compose/test-all.sh b/hadoop-ozone/dist/src/main/compose/test-all.sh index 8afb18b900f1c..1c501766398be 100755 --- a/hadoop-ozone/dist/src/main/compose/test-all.sh +++ b/hadoop-ozone/dist/src/main/compose/test-all.sh @@ -43,5 +43,5 @@ for test in $(find $SCRIPT_DIR -name test.sh); do cp "$RESULT_DIR"/robot-*.xml "$ALL_RESULT_DIR" done -docker run --rm -v "$SCRIPT_DIR/result:/opt/result" apache/ozone-runner rebot -N "smoketests" -d "/opt/result" "/opt/result/robot-*.xml" +rebot -N "smoketests" -d "$SCRIPT_DIR/result" "$SCRIPT_DIR/result/robot-*.xml" exit $RESULT diff --git a/hadoop-ozone/dist/src/main/compose/testlib.sh b/hadoop-ozone/dist/src/main/compose/testlib.sh index ae813d432c029..c6c8f4d556f5e 100755 --- a/hadoop-ozone/dist/src/main/compose/testlib.sh +++ b/hadoop-ozone/dist/src/main/compose/testlib.sh @@ -20,7 +20,7 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" COMPOSE_ENV_NAME=$(basename "$COMPOSE_DIR") COMPOSE_FILE=$COMPOSE_DIR/docker-compose.yaml RESULT_DIR="$COMPOSE_DIR/result" -RESULT_DIR_INSIDE="${OZONE_DIR:-/opt/hadoop}/compose/$(basename "$COMPOSE_ENV_NAME")/result" +RESULT_DIR_INSIDE="/tmp/smoketest/$(basename "$COMPOSE_ENV_NAME")/result" SMOKETEST_DIR_INSIDE="${OZONE_DIR:-/opt/hadoop}/smoketest" #delete previous results @@ -75,10 +75,14 @@ execute_robot_test(){ CONTAINER="$1" TEST="$2" TEST_NAME=$(basename "$TEST") - TEST_NAME=${TEST_NAME%.*} + TEST_NAME="$(basename $COMPOSE_DIR)-${TEST_NAME%.*}" set +e OUTPUT_NAME="$COMPOSE_ENV_NAME-$TEST_NAME-$CONTAINER" + docker-compose -f "$COMPOSE_FILE" exec -T "$CONTAINER" mkdir -p "$RESULT_DIR_INSIDE" docker-compose -f "$COMPOSE_FILE" exec -e SECURITY_ENABLED="${SECURITY_ENABLED}" -T "$CONTAINER" python -m robot --log NONE -N "$TEST_NAME" --report NONE "${OZONE_ROBOT_OPTS[@]}" --output "$RESULT_DIR_INSIDE/robot-$OUTPUT_NAME.xml" "$SMOKETEST_DIR_INSIDE/$TEST" + + export FULL_CONTAINER_NAME=$(docker-compose -f "$COMPOSE_FILE" ps | grep "_${CONTAINER}_" | head -n 1 | awk '{print $1}') + docker cp $FULL_CONTAINER_NAME:$RESULT_DIR_INSIDE "$COMPOSE_DIR" set -e } @@ -93,6 +97,12 @@ stop_docker_env(){ ## @description Generate robot framework reports based on the saved results. generate_report(){ - #Generate the combined output and return with the right exit code (note: robot = execute test, rebot = generate output) - docker run --rm -v "$DIR/..:${OZONE_DIR:-/opt/hadoop}" apache/ozone-runner rebot -d "$RESULT_DIR_INSIDE" "$RESULT_DIR_INSIDE/robot-*.xml" + which rebot > /dev/null 2>&1 + if [ "$?" == "0" ]; then + #Generate the combined output and return with the right exit code (note: robot = execute test, rebot = generate output) + rebot -d "$RESULT_DIR" "$RESULT_DIR/robot-*.xml" + else + echo "Robot framework is not installed, the reports can be generated (sudo pip install robotframework)." + exit 1 + fi } From f28900b46bdb22e5af03987848ea66e04e7a9319 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rton=20Elek?= Date: Sat, 29 Jun 2019 09:21:20 +0200 Subject: [PATCH 2/2] shellcheck fix + address review comments --- hadoop-ozone/dist/src/main/compose/testlib.sh | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/hadoop-ozone/dist/src/main/compose/testlib.sh b/hadoop-ozone/dist/src/main/compose/testlib.sh index c6c8f4d556f5e..fab446000e7b7 100755 --- a/hadoop-ozone/dist/src/main/compose/testlib.sh +++ b/hadoop-ozone/dist/src/main/compose/testlib.sh @@ -15,11 +15,10 @@ # See the License for the specific language governing permissions and # limitations under the License. set -e -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" COMPOSE_ENV_NAME=$(basename "$COMPOSE_DIR") COMPOSE_FILE=$COMPOSE_DIR/docker-compose.yaml -RESULT_DIR="$COMPOSE_DIR/result" +RESULT_DIR=${RESULT_DIR:-"$COMPOSE_DIR/result"} RESULT_DIR_INSIDE="/tmp/smoketest/$(basename "$COMPOSE_ENV_NAME")/result" SMOKETEST_DIR_INSIDE="${OZONE_DIR:-/opt/hadoop}/smoketest" @@ -75,14 +74,15 @@ execute_robot_test(){ CONTAINER="$1" TEST="$2" TEST_NAME=$(basename "$TEST") - TEST_NAME="$(basename $COMPOSE_DIR)-${TEST_NAME%.*}" + TEST_NAME="$(basename "$COMPOSE_DIR")-${TEST_NAME%.*}" set +e OUTPUT_NAME="$COMPOSE_ENV_NAME-$TEST_NAME-$CONTAINER" + OUTPUT_PATH="$RESULT_DIR_INSIDE/robot-$OUTPUT_NAME.xml" docker-compose -f "$COMPOSE_FILE" exec -T "$CONTAINER" mkdir -p "$RESULT_DIR_INSIDE" - docker-compose -f "$COMPOSE_FILE" exec -e SECURITY_ENABLED="${SECURITY_ENABLED}" -T "$CONTAINER" python -m robot --log NONE -N "$TEST_NAME" --report NONE "${OZONE_ROBOT_OPTS[@]}" --output "$RESULT_DIR_INSIDE/robot-$OUTPUT_NAME.xml" "$SMOKETEST_DIR_INSIDE/$TEST" + docker-compose -f "$COMPOSE_FILE" exec -e SECURITY_ENABLED="${SECURITY_ENABLED}" -T "$CONTAINER" python -m robot --log NONE -N "$TEST_NAME" --report NONE "${OZONE_ROBOT_OPTS[@]}" --output "$OUTPUT_PATH" "$SMOKETEST_DIR_INSIDE/$TEST" - export FULL_CONTAINER_NAME=$(docker-compose -f "$COMPOSE_FILE" ps | grep "_${CONTAINER}_" | head -n 1 | awk '{print $1}') - docker cp $FULL_CONTAINER_NAME:$RESULT_DIR_INSIDE "$COMPOSE_DIR" + FULL_CONTAINER_NAME=$(docker-compose -f "$COMPOSE_FILE" ps | grep "_${CONTAINER}_" | head -n 1 | awk '{print $1}') + docker cp "$FULL_CONTAINER_NAME:$OUTPUT_PATH" "$RESULT_DIR/" set -e } @@ -97,8 +97,8 @@ stop_docker_env(){ ## @description Generate robot framework reports based on the saved results. generate_report(){ - which rebot > /dev/null 2>&1 - if [ "$?" == "0" ]; then + + if command -v rebot > /dev/null 2>&1; then #Generate the combined output and return with the right exit code (note: robot = execute test, rebot = generate output) rebot -d "$RESULT_DIR" "$RESULT_DIR/robot-*.xml" else