#!/usr/bin/env bash

# A simple wrapper to add ssh keys from 
# This assumes that you will be running on one or more servers
# that are tagged with Name: <environment>-<deployment>-<play>

if [[
        -z $WORKSPACE           ||
        -z $environment_tag     ||
        -z $deployment_tag      ||
        -z $play                ||
        -z $first_in            ||
        -z $public_key          ||
        -z $serial_count
    ]]; then
    echo "Environment incorrect for this wrapper script"
    env
    exit 1
fi

cd $WORKSPACE/configuration/playbooks/edx-east
export AWS_PROFILE=$deployment_tag

ansible_extra_vars+=" -e serial_count=$serial_count -e elb_pre_post=$elb_pre_post"

if [[ ! -z "$extra_vars" ]]; then
      ansible_extra_vars+=" -e $extra_vars"
fi

if [[ $check_mode == "true" ]]; then
      ansible_extra_vars+=" --check"
fi

if [[ ! -z "$run_on_single_ip" ]]; then
    ansible_limit+="$run_on_single_ip"
else
    if [[ $first_in == "true" ]]; then
        ansible_limit+="first_in_"
    fi
    ansible_limit+="tag_environment_${environment_tag}:&tag_deployment_${deployment_tag}"
fi

ansible_extra_vars+=" -e public_key=$public_key"

export PYTHONUNBUFFERED=1
env
ansible-playbook -v -D -u ubuntu $play -i ./ec2.py $ansible_task_tags --limit $ansible_limit -e@"$WORKSPACE/configuration-secure/ansible/vars/ubuntu-public-keys.yml" $ansible_extra_vars 
rm -f $extra_vars_file