From 4fb3e42a70a8085214553075af0acb5a6f54b85c Mon Sep 17 00:00:00 2001 From: Alexander Todorov Date: Wed, 27 Feb 2019 15:01:28 +0200 Subject: [PATCH] New test: Build live-iso and boot with KVM explicitly enables sshd for live-iso during testing Related: rhbz#1656105 --- Makefile | 3 +- tests/cli/test_compose_live-iso.sh | 64 ++++++++++++++++++++++++++++++ tests/test_cli.sh | 4 ++ 3 files changed, 70 insertions(+), 1 deletion(-) create mode 100755 tests/cli/test_compose_live-iso.sh diff --git a/Makefile b/Makefile index 815d4b7f..15cec163 100644 --- a/Makefile +++ b/Makefile @@ -52,7 +52,8 @@ test_images: sudo -E ./tests/test_cli.sh tests/cli/test_compose_ext4-filesystem.sh \ tests/cli/test_compose_partitioned-disk.sh \ tests/cli/test_compose_tar.sh \ - tests/cli/test_compose_qcow2.sh + tests/cli/test_compose_qcow2.sh \ + tests/cli/test_compose_live-iso.sh test_aws: sudo -E ./tests/test_cli.sh tests/cli/test_build_and_deploy_aws.sh diff --git a/tests/cli/test_compose_live-iso.sh b/tests/cli/test_compose_live-iso.sh new file mode 100755 index 00000000..6354fad8 --- /dev/null +++ b/tests/cli/test_compose_live-iso.sh @@ -0,0 +1,64 @@ +#!/bin/bash +# Note: execute this file from the project root directory + +##### +# +# Builds live-iso image and test it with QEMU-KVM +# +##### + +. /usr/share/beakerlib/beakerlib.sh + +CLI="./src/bin/composer-cli" +QEMU="/usr/libexec/qemu-kvm" + +rlJournalStart + rlPhaseStartSetup + rlAssertExists $QEMU + rlPhaseEnd + + rlPhaseStartTest "compose start" + rlAssertEquals "SELinux operates in enforcing mode" "$(getenforce)" "Enforcing" + + # NOTE: live-iso.ks explicitly disables sshd but test_cli.sh enables it + UUID=`$CLI compose start example-http-server live-iso` + rlAssertEquals "exit code should be zero" $? 0 + + UUID=`echo $UUID | cut -f 2 -d' '` + rlPhaseEnd + + rlPhaseStartTest "compose finished" + if [ -n "$UUID" ]; then + until $CLI compose info $UUID | grep FINISHED; do + sleep 20 + rlLogInfo "Waiting for compose to finish ..." + done; + else + rlFail "Compose UUID is empty!" + fi + + rlRun -t -c "$CLI compose image $UUID" + IMAGE="$UUID-live.iso" + rlPhaseEnd + + rlPhaseStartTest "Start VM instance" + rlRun -t -c "$QEMU -m 2048 -boot c -cdrom $IMAGE -nographic \ + -net user,id=nic0,hostfwd=tcp::2222-:22 -net nic &" + # 60 seconds timeout at boot menu screen + # then media check + boot ~ 30 seconds + sleep 120 + rlPhaseEnd + + rlPhaseStartTest "Verify VM instance" + # verify we can login into that instance *WITHOUT* a password + rlRun -t -c "ssh -oStrictHostKeyChecking=no -p 2222 root@localhost 'cat /etc/redhat-release'" + rlPhaseEnd + + rlPhaseStartCleanup + rlRun -t -c "killall -9 qemu-kvm" + rlRun -t -c "$CLI compose delete $UUID" + rlRun -t -c "rm -rf $IMAGE" + rlPhaseEnd + +rlJournalEnd +rlJournalPrintText diff --git a/tests/test_cli.sh b/tests/test_cli.sh index 6165d836..245de37a 100755 --- a/tests/test_cli.sh +++ b/tests/test_cli.sh @@ -13,6 +13,10 @@ SHARE_DIR=`mktemp -d '/tmp/composer-share.XXXXX'` cp -R ./share/* $SHARE_DIR chmod a+rx -R $SHARE_DIR +# explicitly enable sshd for live-iso b/c it is disabled by default +# due to security concerns (no root password required) +sed -i 's/^services.*/services --disabled="network" --enabled="NetworkManager,sshd"/' $SHARE_DIR/composer/live-iso.ks + # start the lorax-composer daemon ./src/sbin/lorax-composer --sharedir $SHARE_DIR $BLUEPRINTS_DIR &