From 446d7fc7c5085190e49f1e20e0a5082ef9326459 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Thu, 17 Dec 2020 05:25:07 +0100 Subject: [PATCH] Fixes @_@ --- package_check.sh | 5 ----- sub_scripts/common.sh | 5 ----- sub_scripts/lxc.sh | 34 ++++++++++++++++++---------------- sub_scripts/testing_process.sh | 14 +++++++------- 4 files changed, 25 insertions(+), 33 deletions(-) diff --git a/package_check.sh b/package_check.sh index 4320195..e303a49 100755 --- a/package_check.sh +++ b/package_check.sh @@ -47,11 +47,6 @@ clean_exit () { # Remove temporary files rm -rf "$TEST_CONTEXT" - # Remove the application which been tested - if [ -n "$package_path" ]; then - rm -rf "$package_path" - fi - # Remove the lock file rm -f "$lock_file" diff --git a/sub_scripts/common.sh b/sub_scripts/common.sh index 10b1f01..28c108c 100755 --- a/sub_scripts/common.sh +++ b/sub_scripts/common.sh @@ -25,11 +25,6 @@ readonly lock_file="./pcheck.lock" # LXC helpers #================================================= -RUN_INSIDE_LXC() { - sudo lxc exec $LXC_NAME -- "$@" - sudo lxc-attach -n -- "$@" -} - assert_we_are_the_setup_user() { [ -e "./.setup_user" ] || return local setup_user=$(cat "./.setup_user") diff --git a/sub_scripts/lxc.sh b/sub_scripts/lxc.sh index 610dc69..799c7b0 100755 --- a/sub_scripts/lxc.sh +++ b/sub_scripts/lxc.sh @@ -1,21 +1,15 @@ # #!/bin/bash -#================================================= -# Globals variables -#================================================= - -# -q aims to disable the display of 'Debian GNU/Linux' each time a command is ran -arg_ssh="-tt -q" - #================================================= # RUNNING SNAPSHOT #================================================= LXC_CREATE () { - lxc launch $LXC_NAME-base $LXC_NAME || exit 1 - lxc config set "$LXC_NAME" security.nesting true + sudo lxc launch $LXC_NAME-base $LXC_NAME || exit 1 + sudo lxc config set "$LXC_NAME" security.nesting true _LXC_START_AND_WAIT $LXC_NAME - CREATE_LXC_SNAPSHOT snap0 + set_witness_files + sudo lxc snapshot $LXC_NAME snap0 } LXC_SNAPSHOT_EXISTS() { @@ -30,12 +24,12 @@ CREATE_LXC_SNAPSHOT () { start_timer # Check all the witness files, to verify if them still here - [ $snapname != "snap0" ] && check_witness_files >&2 + check_witness_files >&2 # Remove swap files to avoid killing the CI with huge snapshots. sudo lxc exec $LXC_NAME -- bash -c 'for swapfile in $(ls /swap_* 2>/dev/null); do swapoff $swapfile; done' sudo lxc exec $LXC_NAME -- bash -c 'for swapfile in $(ls /swap_* 2>/dev/null); do rm -f $swapfile; done' - + sudo lxc stop --timeout 15 $LXC_NAME 2>/dev/null # Check if the snapshot already exist @@ -52,6 +46,7 @@ LOAD_LXC_SNAPSHOT () { snapname=$1 sudo lxc stop --timeout 15 $LXC_NAME 2>/dev/null sudo lxc restore $LXC_NAME $snapname + sudo lxc start $LXC_NAME _LXC_START_AND_WAIT $LXC_NAME } @@ -67,10 +62,10 @@ LXC_START () { # Copy the package into the container. lxc exec $LXC_NAME -- rm -rf /app_folder - lxc file push -r "$package_path" $LXC_NAME/app_folder + lxc file push -p -r "$package_path" $LXC_NAME/app_folder --quiet # Execute the command given in argument in the container and log its results. - lxc exec $LXC_NAME -- $cmd | tee -a "$complete_log" + lxc exec $LXC_NAME --env PACKAGE_CHECK_EXEC=1 -t -- $cmd | tee -a "$complete_log" # Store the return code of the command local returncode=${PIPESTATUS[0]} @@ -117,7 +112,7 @@ _LXC_START_AND_WAIT() { if [ "$j" == "10" ]; then log_error 'Failed to start the container' - lxc info $1 + lxc info --show-log $1 failstart=1 restart_container "$1" @@ -128,7 +123,7 @@ _LXC_START_AND_WAIT() { # Wait for container to access the internet for j in $(seq 1 10); do - if lxc exec "$1" -- /bin/bash -c "! which wget > /dev/null 2>&1 || wget -q --spider http://github.com"; then + if lxc exec "$1" -- /bin/bash -c "! which wget > /dev/null 2>&1 || wget -q --spider http://debian.org"; then break fi @@ -157,3 +152,10 @@ _LXC_START_AND_WAIT() { LXC_IP=$(lxc exec $1 -- hostname -I | grep -E -o "\<[0-9.]{8,}\>") } + + +RUN_INSIDE_LXC() { + sudo lxc exec $LXC_NAME -- $@ +} + + diff --git a/sub_scripts/testing_process.sh b/sub_scripts/testing_process.sh index f93098e..490e3cb 100755 --- a/sub_scripts/testing_process.sh +++ b/sub_scripts/testing_process.sh @@ -27,7 +27,7 @@ RUN_YUNOHOST_CMD() { log_debug "Running yunohost $1" # --output-as none is to disable the json-like output for some commands like backup create - LXC_START "PACKAGE_CHECK_EXEC=1 yunohost --output-as none --debug $1" \ + LXC_START "yunohost --output-as none --debug $1" \ | grep --line-buffered -v --extended-regexp '^[0-9]+\s+.{1,15}DEBUG' \ | grep --line-buffered -v 'processing action' @@ -454,7 +454,7 @@ TEST_BACKUP_RESTORE () { # Remove the previous residual backups sudo rm -rf ./ynh_backups - sudo lxc exec $LXC_NAME -- rm -rf /home/yunohost.backup/archives + RUN_INSIDE_LXC rm -rf /home/yunohost.backup/archives # BACKUP # Made a backup if the installation succeed @@ -495,7 +495,7 @@ TEST_BACKUP_RESTORE () { LOAD_LXC_SNAPSHOT snap0 # Remove the previous residual backups - lxc exec $LXC_NAME -- rm -f /rootfs/home/yunohost.backup/archives/* + RUN_INSIDE_LXC rm -f /rootfs/home/yunohost.backup/archives/* # Place the copy of the backup archive in the container. sudo lxc file push -r ./ynh_backups $LXC_NAME/home/yunohost.backup/archives/ @@ -936,7 +936,7 @@ set_witness_files () { create_witness_file () { [ "$2" = "file" ] && local action="touch" || local action="mkdir -p" - sudo lxc exec $LXC_NAME -- $action $1 + RUN_INSIDE_LXC $action $1 } # Nginx conf @@ -968,7 +968,7 @@ set_witness_files () { create_witness_file "/etc/systemd/system/witnessfile.service" file # Database - local mysqlpwd=$(lxc exec $LXC_NAME -- cat /etc/yunohost/mysql) + local mysqlpwd=$(RUN_INSIDE_LXC cat /etc/yunohost/mysql) RUN_INSIDE_LXC mysqladmin --user=root --password="$mysqlpwd" --wait status > /dev/null 2>&1 RUN_INSIDE_LXC mysql --user=root --password="$mysqlpwd" --wait --execute="CREATE DATABASE witnessdb" > /dev/null 2>&1 } @@ -977,7 +977,7 @@ check_witness_files () { # Check all the witness files, to verify if them still here check_file_exist () { - if sudo lxc exec $LXC_NAME -- test ! -e "{1}" + if RUN_INSIDE_LXC test ! -e "$1" then log_error "The file $1 is missing ! Something gone wrong !" SET_RESULT "failure" witness @@ -1013,7 +1013,7 @@ check_witness_files () { check_file_exist "/etc/systemd/system/witnessfile.service" # Database - local mysqlpwd=$(lxc exec $LXC_NAME -- cat /etc/yunohost/mysql) + local mysqlpwd=$(RUN_INSIDE_LXC cat /etc/yunohost/mysql) if ! RUN_INSIDE_LXC mysqlshow --user=root --password="$mysqlpwd" witnessdb > /dev/null 2>&1 then log_error "The database witnessdb is missing ! Something gone wrong !"