A cluster lifecycle orchestrator for Airship.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

57 lines
2.0 KiB

#!/bin/bash
# Copyright 2017 AT&T Intellectual Property. All other rights reserved.
#
# 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.
#
set -x
IMAGE=$1
USE_PROXY=${USE_PROXY:-false}
mkdir -p build/.tmprun/etc
docker create \
-v $PWD/build/.tmprun/etc:/etc/shipyard \
-p 9000:9000 \
--name shipyard_test ${IMAGE}
docker cp $PWD/etc/shipyard/api-paste.ini shipyard_test:/etc/shipyard
docker cp $PWD/tools/resources/shipyard.conf shipyard_test:/etc/shipyard
docker start shipyard_test &
sleep 5
# If the image build pipeline is running in a pod/docker (docker-in-docker),
# we'll need to exec into the nested container's network namespace to acces the
# shipyard api.
GOOD="HTTP/1.1 200 OK"
RESULT="$(curl -i 'http://127.0.0.1:9000/versions' --noproxy '*' | tr '\r' '\n' | head -1)"
if [[ "${RESULT}" != "${GOOD}" ]]; then
if docker exec -t shipyard_test /bin/bash -c "curl -i 'http://127.0.0.1:9000/versions' --noproxy '*' | tr '\r' '\n' | head -1 | grep 'HTTP/1.1 200 OK'"; then
RESULT="${GOOD}"
fi
fi
if [ "${USE_PROXY}" == "true" ]; then
CLI_RESULT="$(docker run -t --rm --net=host --env HTTP_PROXY="${PROXY}" --env HTTPS_PROXY="${PROXY}" ${IMAGE} help | tr '\r' '\n' | head -1)"
else
CLI_RESULT="$(docker run -t --rm --net=host ${IMAGE} help | tr '\r' '\n' | head -1)"
fi
docker stop shipyard_test
docker rm shipyard_test
rm -rf $PWD/build/.tmprun
CLI_GOOD="THE SHIPYARD COMMAND"
if [[ ${RESULT} == ${GOOD} && ${CLI_RESULT} == ${CLI_GOOD} ]]; then
exit 0
else
exit 1
fi