#!/bin/bash # This script tests the high level end-to-end functionality demonstrated # as part of the examples/sample-app STARTTIME=$(date +%s) source "$(dirname "${BASH_SOURCE}")/lib/init.sh" os::log::info "Starting containerized end-to-end test" unset KUBECONFIG os::util::environment::use_sudo os::util::environment::setup_all_server_vars "test-end-to-end-docker/" function cleanup() { out=$? echo if [ $out -ne 0 ]; then echo "[FAIL] !!!!! Test Failed !!!!" else os::log::info "Test Succeeded" fi echo set +e dump_container_logs # pull information out of the server log so that we can get failure management in jenkins to highlight it and # really have it smack people in their logs. This is a severe correctness problem grep -a5 "CACHE.*ALTERED" ${LOG_DIR}/container-origin.log os::cleanup::dump_etcd if [[ -z "${SKIP_TEARDOWN-}" ]]; then os::log::info "remove the openshift container" docker stop origin docker rm origin os::log::info "Stopping k8s docker containers"; docker ps | awk 'index($NF,"k8s_")==1 { print $1 }' | xargs -l -r docker stop if [[ -z "${SKIP_IMAGE_CLEANUP-}" ]]; then os::log::info "Removing k8s docker containers"; docker ps -a | awk 'index($NF,"k8s_")==1 { print $1 }' | xargs -l -r docker rm fi set -u fi journalctl --unit docker.service --since -15minutes > "${LOG_DIR}/docker.log" delete_empty_logs truncate_large_logs set -e os::log::info "Exiting" ENDTIME=$(date +%s); echo "$0 took $(($ENDTIME - $STARTTIME)) seconds" exit $out } trap "cleanup" EXIT INT TERM os::log::system::start out=$( set +e docker stop origin 2>&1 docker rm origin 2>&1 set -e ) # Setup os::log::info "openshift version: `openshift version`" os::log::info "oc version: `oc version`" os::log::info "Using images: ${USE_IMAGES}" os::log::info "Starting OpenShift containerized server" oc cluster up --server-loglevel=4 --version="${TAG}" \ --host-data-dir="${VOLUME_DIR}/etcd" \ --host-volumes-dir="${VOLUME_DIR}" oc cluster status IMAGE_WORKING_DIR=/var/lib/origin docker cp origin:${IMAGE_WORKING_DIR}/openshift.local.config ${BASETMPDIR} export ADMIN_KUBECONFIG="${MASTER_CONFIG_DIR}/admin.kubeconfig" export CLUSTER_ADMIN_CONTEXT=$(oc config view --config=${ADMIN_KUBECONFIG} --flatten -o template --template='{{index . "current-context"}}') sudo chmod -R a+rwX "${ADMIN_KUBECONFIG}" export KUBECONFIG="${ADMIN_KUBECONFIG}" os::log::info "To debug: export KUBECONFIG=$ADMIN_KUBECONFIG" ${OS_ROOT}/test/end-to-end/core.sh