#!/bin/bash -ex # Copyright 2015 Red Hat, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. export PATH=$PATH:/usr/local/sbin:/usr/sbin SCENARIO=${SCENARIO:-scenario001} # We could want to override the default repositories MANAGE_REPOS=${MANAGE_REPOS:-true} DELOREAN=${DELOREAN:-http://trunk.rdoproject.org/centos7/current-passed-ci/delorean.repo} DELOREAN_DEPS=${DELOREAN_DEPS:-http://trunk.rdoproject.org/centos7/delorean-deps.repo} # If logs should be retrieved automatically COPY_LOGS=${COPY_LOGS:-true} if [ $(id -u) != 0 ]; then SUDO='sudo' # Packstack will connect as root to localhost, set-up the keypair and sshd ssh-keygen -t rsa -C "packstack-integration-test" -N "" -f ~/.ssh/id_rsa $SUDO mkdir -p /root/.ssh cat ~/.ssh/id_rsa.pub | $SUDO tee -a /root/.ssh/authorized_keys $SUDO chmod 0600 /root/.ssh/authorized_keys $SUDO sed -i 's/^PermitRootLogin no/PermitRootLogin without-password/g' /etc/ssh/sshd_config $SUDO service sshd restart fi # Bump ulimit to avoid too many open file errors echo "${USER} soft nofile 65536" | $SUDO tee -a /etc/security/limits.conf echo "${USER} hard nofile 65536" | $SUDO tee -a /etc/security/limits.conf echo "root soft nofile 65536" | $SUDO tee -a /etc/security/limits.conf echo "root hard nofile 65536" | $SUDO tee -a /etc/security/limits.conf # Setup repositories if [ "${MANAGE_REPOS}" = true ]; then $SUDO curl ${DELOREAN} -o /etc/yum.repos.d/delorean.repo $SUDO curl ${DELOREAN_DEPS} -o /etc/yum.repos.d/delorean-deps.repo fi # Install dependencies $SUDO yum -y install puppet \ yum-plugin-priorities \ iproute \ dstat \ python-setuptools \ openssl-devel \ python-devel \ libffi-devel \ libxml2-devel \ libxslt-devel \ ruby-devel \ openstack-selinux \ policycoreutils \ "@Development Tools" # TO-DO: Packstack should handle Hiera and Puppet configuration, so that it works # no matter the environment $SUDO su -c 'cat > /etc/puppet/puppet.conf < /etc/puppet/hiera.yaml </dev/null; then $SUDO dstat -tcmndrylpg \ --top-cpu-adv \ --top-io-adv \ --nocolor | $SUDO tee -a /var/log/dstat.log > /dev/null & fi # Setup packstack $SUDO python setup.py install $SUDO python setup.py install_puppet_modules # Generate configuration from selected scenario and run it source ./tests/${SCENARIO}.sh result=$? # Print output and generate subunit if results exist if [ -d /var/lib/tempest ]; then pushd /var/lib/tempest $SUDO /var/lib/tempest/.venv/bin/testr last || true $SUDO bash -c "/var/lib/tempest/.venv/bin/testr last --subunit > /var/tmp/packstack/latest/testrepository.subunit" || true popd fi if [ "${COPY_LOGS}" = true ]; then source ./tools/copy-logs.sh recover_default_logs fi if [ "${FAILURE}" = true ]; then exit 1 fi exit $result