#!/usr/bin/env bash
# Copyright 2019 Red Hat, Inc.
# All 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 -o pipefail
set -xeo

export ANSIBLE_ROLES_PATH="${ANSIBLE_ROLES_PATH}:${HOME}/zuul-jobs/roles"
export PROJECT_DIR="$(dirname $(readlink -f ${BASH_SOURCE[0]}))/../"
export UPPER_CONSTRAINTS_FILE=${UPPER_CONSTRAINTS_FILE:-"https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt"}

function run_pip {
    "${HOME}/test-python/bin/pip" install \
                                  -c "${UPPER_CONSTRAINTS_FILE}" \
                                  -r "${PROJECT_DIR}/molecule-requirements.txt" ${@:-}
}

# Create a virtual environment and install dependencies
PYTHON_EXEC=$(command -v python3 || command -v python)
"${PYTHON_EXEC}" -m virtualenv --system-site-packages "${HOME}/test-python"
run_pip


ansible-playbook -i "${PROJECT_DIR}/tests/hosts.ini" \
                 -e "tripleo_src=$(realpath --relative-to="${HOME}" "${PROJECT_DIR}")" \
                 -e "ansible_user=${USER}" \
                 -e "ansible_user_dir=${HOME}" \
                 "${PROJECT_DIR}/playbooks/prepare-test-host.yml" \
                 "${PROJECT_DIR}/zuul.d/playbooks/run-local.yml"
