diff --git a/integration/run-integration-tests-in-a-vm b/integration/run-integration-tests similarity index 100% rename from integration/run-integration-tests-in-a-vm rename to integration/run-integration-tests diff --git a/integration/run-integration-tests-in-lxd b/integration/run-integration-tests-in-lxd index a92d64b6..b260aaa9 100755 --- a/integration/run-integration-tests-in-lxd +++ b/integration/run-integration-tests-in-lxd @@ -12,64 +12,36 @@ set -ex _dir="$( cd "$(dirname "${BASH_SOURCE[0]}" )" && pwd)" -_release=$(lsb_release -cs) -if [[ "${_release}" == "bionic" ]]; then - echo "Running Bionic (18:04) integration tests" - CONTAINER_IMAGE="ubuntu:18.04" +function _run_tests { + local _target=${1} CONTAINER_NAME=pylxd-`uuidgen | cut -d"-" -f1` - # This creates a privileged container, because I was bumping into situations where it - # seemed that we had maxed out user namespaces (I haven't checked it out, but it's likely - # a bug in LXD). - lxc launch $CONTAINER_IMAGE $CONTAINER_NAME -c security.nesting=true -c security.privileged=true - sleep 5 # Wait for the network to come up - lxc exec $CONTAINER_NAME -- apt-get update - lxc exec $CONTAINER_NAME -- apt-get install -y tox python3-dev libssl-dev libffi-dev build-essential - - lxc exec $CONTAINER_NAME -- lxc config set core.trust_password password - lxc exec $CONTAINER_NAME -- lxc config set core.https_address [::] - # force generation of client certificate to an address that doesn't work (http) - # generate an openssl certificate and key for the remote not verified test - lxc exec $CONTAINER_NAME -- mkdir -p /root/.config/lxc - openssl genrsa 1024 > ./$CONTAINER_NAME.key - lxc file push ./$CONTAINER_NAME.key $CONTAINER_NAME/root/.config/lxc/client.key - rm ./$CONTAINER_NAME.key - lxc exec $CONTAINER_NAME -- chmod 400 /root/.config/lxc/client.key - lxc exec $CONTAINER_NAME -- openssl req -new -x509 -nodes -sha1 -days 365 \ - -key /root/.config/lxc/client.key -out /root/.config/lxc/client.crt \ - -subj="/C=UK/ST=London/L=London/O=OrgName/OU=Test/CN=example.com" - - # create a default dir storage pool for bionic - lxc exec $CONTAINER_NAME -- lxc storage create default dir - lxc exec $CONTAINER_NAME -- lxc profile device add default root disk path=/ pool=default - - lxc exec $CONTAINER_NAME -- mkdir -p /opt/pylxd - # NOTE: rockstar (13 Sep 2016) - --recursive is not supported in lxd <2.1, so - # until we have pervasive support for that, we'll do this tar hack. - cd .. && tar cf - * .git | lxc exec $CONTAINER_NAME -- tar xf - -C /opt/pylxd - lxc exec $CONTAINER_NAME -- /bin/sh -c "cd /opt/pylxd && tox -eintegration" - lxc delete --force $CONTAINER_NAME -else - echo "Running Xenial (16:04) integration tests" - CONTAINER_IMAGE="ubuntu:16.04" - CONTAINER_NAME=pylxd-`uuidgen | cut -d"-" -f1` + if [[ "${_target}" == "bionic" ]]; then + echo "Running Bionic (18:04) integration tests" + CONTAINER_IMAGE="ubuntu:18.04" + else + echo "Running Xenial (16:04) integration tests" + CONTAINER_IMAGE="ubuntu:16.04" + fi # This creates a privileged container, because I was bumping into situations where it # seemed that we had maxed out user namespaces (I haven't checked it out, but it's likely # a bug in LXD). lxc launch $CONTAINER_IMAGE $CONTAINER_NAME -c security.nesting=true -c security.privileged=true sleep 5 # Wait for the network to come up - lxc exec $CONTAINER_NAME -- apt-get update - lxc exec $CONTAINER_NAME -- apt-get install -y tox python3-dev libssl-dev libffi-dev build-essential - - lxc exec $CONTAINER_NAME -- lxc config set core.trust_password password - lxc exec $CONTAINER_NAME -- lxc config set core.https_address [::] lxc exec $CONTAINER_NAME -- mkdir -p /opt/pylxd # NOTE: rockstar (13 Sep 2016) - --recursive is not supported in lxd <2.1, so # until we have pervasive support for that, we'll do this tar hack. - cd .. && tar cf - ../* ../.git | lxc exec $CONTAINER_NAME -- tar xf - -C /opt/pylxd - lxc exec $CONTAINER_NAME -- /bin/sh -c "cd /opt/pylxd && tox -eintegration" + local ldir="${_dir}/.." + cd ${ldir} && tar cf - * .git | lxc exec $CONTAINER_NAME -- tar xf - -C /opt/pylxd + cd ${_dir} + lxc exec $CONTAINER_NAME -- /bin/sh -c "cd /opt/pylxd && integration/run-integration-tests" + lxc delete --force $CONTAINER_NAME -fi +} + +# run xenial and then bionic integration tests +_run_tests xenial +_run_tests bionic