New test: Build qcow2 compose and test it with QEMU-KVM
Related: rhbz#1656105
This commit is contained in:
parent
c24ad2fed7
commit
561302a30a
5
Makefile
5
Makefile
@ -49,9 +49,10 @@ test: docs
|
|||||||
# need `losetup`, which needs Docker to be in privileged mode (--privileged)
|
# need `losetup`, which needs Docker to be in privileged mode (--privileged)
|
||||||
# but even so fails in Travis CI
|
# but even so fails in Travis CI
|
||||||
test_images:
|
test_images:
|
||||||
sudo -E ./tests/test_cli.sh tests/cli/test_compose_ext4-filesystem.sh \
|
sudo -E ./tests/test_cli.sh tests/cli/test_compose_ext4-filesystem.sh \
|
||||||
tests/cli/test_compose_partitioned-disk.sh \
|
tests/cli/test_compose_partitioned-disk.sh \
|
||||||
tests/cli/test_compose_tar.sh
|
tests/cli/test_compose_tar.sh \
|
||||||
|
tests/cli/test_compose_qcow2.sh
|
||||||
|
|
||||||
test_aws:
|
test_aws:
|
||||||
sudo -E ./tests/test_cli.sh tests/cli/test_build_and_deploy_aws.sh
|
sudo -E ./tests/test_cli.sh tests/cli/test_build_and_deploy_aws.sh
|
||||||
|
87
tests/cli/test_compose_qcow2.sh
Executable file
87
tests/cli/test_compose_qcow2.sh
Executable file
@ -0,0 +1,87 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Note: execute this file from the project root directory
|
||||||
|
|
||||||
|
#####
|
||||||
|
#
|
||||||
|
# Builds qcow2 images and tests them 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"
|
||||||
|
|
||||||
|
TMP_DIR=`mktemp -d /tmp/composer.XXXXX`
|
||||||
|
SSH_KEY_DIR=`mktemp -d /tmp/composer-ssh-keys.XXXXXX`
|
||||||
|
|
||||||
|
rlRun -t -c "ssh-keygen -t rsa -N '' -f $SSH_KEY_DIR/id_rsa"
|
||||||
|
PUB_KEY=`cat $SSH_KEY_DIR/id_rsa.pub`
|
||||||
|
|
||||||
|
cat > $TMP_DIR/with-ssh.toml << __EOF__
|
||||||
|
name = "with-ssh"
|
||||||
|
description = "HTTP image with SSH"
|
||||||
|
version = "0.0.1"
|
||||||
|
|
||||||
|
[[modules]]
|
||||||
|
name = "httpd"
|
||||||
|
version = "*"
|
||||||
|
|
||||||
|
[[packages]]
|
||||||
|
name = "openssh-server"
|
||||||
|
version = "*"
|
||||||
|
|
||||||
|
[[customizations.user]]
|
||||||
|
name = "root"
|
||||||
|
key = "$PUB_KEY"
|
||||||
|
__EOF__
|
||||||
|
|
||||||
|
rlRun -t -c "$CLI blueprints push $TMP_DIR/with-ssh.toml"
|
||||||
|
|
||||||
|
UUID=`$CLI compose start with-ssh qcow2`
|
||||||
|
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-disk.qcow2"
|
||||||
|
rlPhaseEnd
|
||||||
|
|
||||||
|
rlPhaseStartTest "Start VM instance"
|
||||||
|
rlRun -t -c "$QEMU -m 2048 -boot c -hda $IMAGE -nographic \
|
||||||
|
-net user,id=nic0,hostfwd=tcp::2222-:22 -net nic &"
|
||||||
|
sleep 60
|
||||||
|
rlPhaseEnd
|
||||||
|
|
||||||
|
rlPhaseStartTest "Verify VM instance"
|
||||||
|
# verify we can login into that instance
|
||||||
|
rlRun -t -c "ssh -oStrictHostKeyChecking=no -i $SSH_KEY_DIR/id_rsa -p 2222 root@localhost 'cat /etc/redhat-release'"
|
||||||
|
rlPhaseEnd
|
||||||
|
|
||||||
|
rlPhaseStartCleanup
|
||||||
|
rlRun -t -c "killall -9 qemu-system"
|
||||||
|
rlRun -t -c "$CLI compose delete $UUID"
|
||||||
|
rlRun -t -c "rm -rf $IMAGE $TMP_DIR $SSH_KEY_DIR"
|
||||||
|
rlPhaseEnd
|
||||||
|
|
||||||
|
rlJournalEnd
|
||||||
|
rlJournalPrintText
|
Loading…
Reference in New Issue
Block a user