summaryrefslogtreecommitdiffstats
path: root/test/ete/scripts/deploy-onap.sh
blob: 2fd05562a725c9166c20d48519aa2d5d7592c40a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#!/bin/bash -x

if [ "$#" -lt 1 ]; then
    echo "Usage: $0 <lab-name> [<demo repo directory>]"
    exit 1
fi


if [ -z "$WORKSPACE" ]; then
    export WORKSPACE=`git rev-parse --show-toplevel`
fi

LAB_DIR=${WORKSPACE}/test/ete/labs/$1

if [ ! -d "$LAB_DIR" ]; then
    echo "Directory $LAB_DIR not found"
    exit 2
fi

source $WORKSPACE/test/ete/scripts/install_openstack_cli.sh


DEMO_DIR=${ONAP_WORKDIR}/demo
if [ "$#" -ge 2 ]; then
    DEMO_DIR=$2
fi

SENTINEL='Docker versions and branches'

mkdir -p ${LAB_DIR}/target
rsync -avt $DEMO_DIR/heat/ONAP/ ${LAB_DIR}/target/
YAML_FILE=${LAB_DIR}/target/onap_openstack.yaml
ENV_FILE=${LAB_DIR}/target/onap_openstack.env
YAML_SRC=${DEMO_DIR}/heat/ONAP/onap_openstack.yaml
ENV_SRC=${DEMO_DIR}/heat/ONAP/onap_openstack.env

# copy heat template to WORKSPACE
cp ${YAML_SRC} ${YAML_FILE}

# generate final env file
pushd ${DEMO_DIR}
envsubst < ${LAB_DIR}/onap-openstack-template.env | sed -n "1,/${SENTINEL}/p" > ${ENV_FILE}
echo "  # Rest of the file was AUTO-GENERATED from" | tee -a ${ENV_FILE}
echo "  #" $(git config --get remote.origin.url) heat/ONAP/onap_openstack.env $(git rev-parse HEAD) | tee -a ${ENV_FILE}
popd
sed "1,/${SENTINEL}/d" ${ENV_SRC} >> ${ENV_FILE}
cat ${ENV_FILE}

diff ${ENV_SRC} ${ENV_FILE}

# generate final heat template
# add apt proxy to heat template if applicable
if [ -x $LAB_DIR/apt-proxy.sh ]; then
    $LAB_DIR/apt-proxy.sh ${YAML_FILE}
    diff ${YAML_SRC} ${YAML_FILE}
fi


#exit 0

#diff ${LAB_DIR}/onap-openstack-template.env ${LAB_DIR}/onap-openstack.env


# tear down old deployment
$WORKSPACE/test/ete/scripts/teardown-onap.sh -q

# create new stack
STACK="onap-heat-$(uuidgen | cut -c-4)"
echo "New Stack Name: ${STACK}"
if ! openstack stack create -t ${YAML_FILE} -e ${ENV_FILE} $STACK; then
    exit 1
fi

while [ "CREATE_IN_PROGRESS" == "$(openstack stack show -c stack_status -f value $STACK)" ]; do
    sleep 20
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

for n in $(seq 1 10); do
    ssh -o StrictHostKeychecking=no -i ${SSH_KEY} ubuntu@${ROBOT_IP} "sudo docker ps" | grep openecompete_container
    RESULT=$?
    if [ $RESULT -eq 0 ]; then
      break
    fi
    sleep 2m
done