diff options
Diffstat (limited to 'test/ete/scripts')
-rwxr-xr-x | test/ete/scripts/deploy-onap.sh | 86 | ||||
-rwxr-xr-x | test/ete/scripts/get-floating-ip.sh | 6 | ||||
-rwxr-xr-x | test/ete/scripts/install_openstack_cli.sh | 47 | ||||
-rwxr-xr-x | test/ete/scripts/remote/run-robot.sh | 20 | ||||
-rwxr-xr-x | test/ete/scripts/run-healthcheck.sh | 26 |
5 files changed, 147 insertions, 38 deletions
diff --git a/test/ete/scripts/deploy-onap.sh b/test/ete/scripts/deploy-onap.sh index 3c69e15e8..4802e02ce 100755 --- a/test/ete/scripts/deploy-onap.sh +++ b/test/ete/scripts/deploy-onap.sh @@ -1,53 +1,63 @@ -#!/bin/bash - -if [ -z "$OS_AUTH_URL" ] || [ -z "$OS_USERNAME" ] -then - echo "ERROR: OpenStack environment variables not set. Please source your OpenStack RC script first." - exit 1 -fi - +#!/bin/bash -x if [ -z "$WORKSPACE" ]; then export WORKSPACE=`git rev-parse --show-toplevel` fi +source $WORKSPACE/test/ete/scripts/install_openstack_cli.sh +# Delete all existing stacks +STACKS=$(openstack stack list -c "Stack Name" -f value) -# Assume that if ROBOT_VENV is set, we don't need to reinstall robot -if [ -f ${WORKSPACE}/env.properties ]; then - source ${WORKSPACE}/env.properties -fi - -if [ ! -z "$ONAP_VENV" ] && [ -f "$ONAP_VENV/bin/activate" ]; then - source ${ONAP_VENV}/bin/activate +if [ ! -z "${STACKS}" ]; then + echo "Deleting Stacks ${STACKS}" + openstack stack delete -y $STACKS + for STACK in ${STACKS}; do + until [ "DELETE_IN_PROGRESS" != "$(openstack stack show -c stack_status -f value $STACK)" ]; do + sleep 30 + done + done else - ONAP_VENV=$(mktemp -d --suffix=_onap_venv) - virtualenv ${ONAP_VENV} - source ${ONAP_VENV}/bin/activate - - pip install --upgrade pip - pip install --upgrade python-openstackclient python-heatclient - - echo "ONAP_VENV=${ONAP_VENV}" >> $WORKSPACE/env.properties + echo "No existing stacks to delete." fi -echo "ONAP_VENV=${ONAP_VENV}" -if [ -z "$ONAP_WORKDIR" ]; then - ONAP_WORKDIR=$(mktemp -d --suffix=_onap_workdir) - echo "ONAP_WORKDIR=${ONAP_WORKDIR}" >> $WORKSPACE/env.properties -fi -echo "ONAP_WORKDIR=${ONAP_WORKDIR}" -if [ ! -d ${ONAP_WORKDIR}/demo ]; then - git clone http://gerrit.onap.org/r/demo ${ONAP_WORKDIR}/demo -else - pushd ${ONAP_WORKDIR}/demo - git pull - popd -fi STACK="ete-$(uuidgen | cut -c-8)" -echo "Stack Name: ${STACK}" -openstack stack create -t ${ONAP_WORKDIR}/demo/heat/ONAP/onap_openstack.yaml -e ${WORKSPACE}/test/ete/labs/windriver/onap.env $STACK +echo "New Stack Name: ${STACK}" + + +cp ${ONAP_WORKDIR}/demo/heat/ONAP/onap_openstack.env ${WORKSPACE}/test/ete/labs/windriver/onap-openstack-demo.env +envsubst < ${WORKSPACE}/test/ete/labs/windriver/onap-openstack-template.env > ${WORKSPACE}/test/ete/labs/windriver/onap-openstack.env +#diff ${WORKSPACE}/test/ete/labs/windriver/onap-openstack-template.env ${WORKSPACE}/test/ete/labs/windriver/onap-openstack.env + +openstack stack create -t ${ONAP_WORKDIR}/demo/heat/ONAP/onap_openstack.yaml -e ${WORKSPACE}/test/ete/labs/windriver/onap-openstack.env $STACK + +while [ "CREATE_IN_PROGRESS" == "$(openstack stack show -c stack_status -f value $STACK)" ]; do + sleep 15 +done + +STATUS=$(openstack stack show -c stack_status -f value $STACK) +echo $STATUS +if [ "CREATE_COMPLETE" != "$STATUS" ]; then + exit 1 +fi + + +# wait until Robot VM initializes +ROBOT_IP=$($WORKSPACE/test/ete/scripts/get-floating-ip.sh onap-robot) +echo "ROBOT_IP=${ROBOT_IP}" + +if [ "" == "${ROBOT_IP}" ]; then + exit 1 +fi + +ssh-keygen -R ${ROBOT_IP} + +SSH_KEY=~/.ssh/onap_key +until ssh -o StrictHostKeychecking=no -i ${SSH_KEY} root@${ROBOT_IP} "docker ps | grep -q openecompete_container" +do + sleep 1m +done diff --git a/test/ete/scripts/get-floating-ip.sh b/test/ete/scripts/get-floating-ip.sh new file mode 100755 index 000000000..55854e73f --- /dev/null +++ b/test/ete/scripts/get-floating-ip.sh @@ -0,0 +1,6 @@ +#!/bin/sh +# Get floating IP assigned to a server name + +PORT_ID=$(openstack server show -f json $1 | python -c 'import sys, json; print json.load(sys.stdin)["wrs-if:nics"][0]["nic1"]["port_id"]') +FLOATING_IP=$(openstack floating ip list -f json --port $PORT_ID | python -c 'import sys, json; print json.load(sys.stdin)[0]["Floating IP Address"]') +echo $FLOATING_IP diff --git a/test/ete/scripts/install_openstack_cli.sh b/test/ete/scripts/install_openstack_cli.sh new file mode 100755 index 000000000..a6a0438f9 --- /dev/null +++ b/test/ete/scripts/install_openstack_cli.sh @@ -0,0 +1,47 @@ +#!/bin/bash + +if [ -z "$OS_AUTH_URL" ] || [ -z "$OS_USERNAME" ] +then + echo "ERROR: OpenStack environment variables not set. Please source your OpenStack RC script first." + exit 1 +fi + + +if [ -z "$WORKSPACE" ]; then + export WORKSPACE=`git rev-parse --show-toplevel` +fi + + + +# Assume that if ROBOT_VENV is set, we don't need to reinstall robot +if [ -f ${WORKSPACE}/env.properties ]; then + source ${WORKSPACE}/env.properties +fi + +if [ ! -z "$ONAP_VENV" ] && [ -f "$ONAP_VENV/bin/activate" ]; then + source ${ONAP_VENV}/bin/activate +else + ONAP_VENV=$(mktemp -d --suffix=_onap_venv) + virtualenv ${ONAP_VENV} + source ${ONAP_VENV}/bin/activate + + pip install --upgrade pip + pip install --upgrade python-openstackclient python-heatclient + + echo "ONAP_VENV=${ONAP_VENV}" >> $WORKSPACE/env.properties +fi +echo "ONAP_VENV=${ONAP_VENV}" + +if [ -z "$ONAP_WORKDIR" ]; then + ONAP_WORKDIR=$(mktemp -d --suffix=_onap_workdir) + echo "ONAP_WORKDIR=${ONAP_WORKDIR}" >> $WORKSPACE/env.properties +fi +echo "ONAP_WORKDIR=${ONAP_WORKDIR}" +if [ ! -d ${ONAP_WORKDIR}/demo ]; then + git clone https://gerrit.onap.org/r/demo ${ONAP_WORKDIR}/demo +else + pushd ${ONAP_WORKDIR}/demo + git pull + popd +fi + diff --git a/test/ete/scripts/remote/run-robot.sh b/test/ete/scripts/remote/run-robot.sh new file mode 100755 index 000000000..162acbe24 --- /dev/null +++ b/test/ete/scripts/remote/run-robot.sh @@ -0,0 +1,20 @@ +#!/bin/bash -x + +cd /opt + +docker ps | grep -q openecompete_container +if [ ! $? -eq 0 ]; then + echo "Robot not initialized" + exit 2 +fi + +if [ ! -d eteshare/logs/demo ]; then + echo $OS_PROJECT_ID > /opt/config/openstack_tenant_id.txt + echo $OS_USERNAME > /opt/config/openstack_username.txt + echo $OS_PASSWORD > /opt/config/openstack_password.txt + /bin/bash /opt/eteshare/config/vm_config2robot.sh + # set robot VM http server password + echo "admin" | /opt/demo.sh init_robot +fi + +/opt/ete.sh health diff --git a/test/ete/scripts/run-healthcheck.sh b/test/ete/scripts/run-healthcheck.sh new file mode 100755 index 000000000..2f0f014d3 --- /dev/null +++ b/test/ete/scripts/run-healthcheck.sh @@ -0,0 +1,26 @@ +#!/bin/bash -x + +SSH_KEY=~/.ssh/onap_key + +if [ -z "$WORKSPACE" ]; then + export WORKSPACE=`git rev-parse --show-toplevel` +fi + +source $WORKSPACE/test/ete/scripts/install_openstack_cli.sh + +cd $WORKSPACE/test/ete/scripts + +ROBOT_IP=$(./get-floating-ip.sh onap-robot) +echo "ROBOT_IP=${ROBOT_IP}" + +if [ "" == "${ROBOT_IP}" ]; then + exit 1 +fi + +ssh-keygen -R ${ROBOT_IP} + +ssh -o StrictHostKeychecking=no -i ${SSH_KEY} root@${ROBOT_IP} "OS_PROJECT_ID=$OS_PROJECT_ID OS_USERNAME=$OS_USERNAME OS_PASSWORD=$OS_PASSWORD bash -s" < ./remote/run-robot.sh + +LOG_DIR=$(ssh -o StrictHostKeychecking=no -i ${SSH_KEY} root@${ROBOT_IP} "ls -1t /opt/eteshare/logs | head -1") +echo "Browse Robot results at http://${ROBOT_IP}:88/logs/${LOG_DIR}/" +rsync -e "ssh -i ${SSH_KEY}" -avPz root@${ROBOT_IP}:/opt/eteshare/logs/${LOG_DIR}/ $WORKSPACE/archives/ |