Merge "iec: fuel: Map new UNH baremetal POD to IEC xDFs"
[ci-management.git] / jjb / shell / seba_on_arm.sh
1 #!/bin/bash
2 # SPDX-license-identifier: Apache-2.0
3 ##############################################################################
4 # Copyright (c) 2019 Enea Software AB and others.
5 # All rights reserved. This program and the accompanying materials
6 # are made available under the terms of the Apache License, Version 2.0
7 # which accompanies this distribution, and is available at
8 # http://www.apache.org/licenses/LICENSE-2.0
9 ##############################################################################
10
11 export TERM="vt220"
12 set -ex
13
14 echo "JOB_NAME=${JOB_NAME}"
15
16 # Run either ssh or scp on the K8S master
17 run_on_k8s_master () {
18   case "${1}" in
19     ssh)
20       _c="${1}"
21       shift
22       _s=" "
23       ;;
24     scp)
25       _c="${1} -r"
26       shift
27       _s=":${1}"
28       shift
29       ;;
30     *)
31       echo "Use either ssh or scp to run on K8S master"
32       exit 1
33       ;;
34   esac
35
36   if [ -n "${K8S_SSH_PASSWORD}" ]
37   then
38     eval sshpass -p "${K8S_SSH_PASSWORD}" "${_c}" \
39          -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null \
40          "${K8S_SSH_USER}@${K8S_MASTER_IP}${_s}" "$@"
41   elif [ -n "${K8S_SSH_KEY}" ]
42   then
43     eval "${_c}" -i "${K8S_SSH_KEY}" \
44          -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null \
45          "${K8S_SSH_USER}@${K8S_MASTER_IP}${_s}" "$@"
46   else
47     echo "Neither K8S_SSH_PASSWORD nor K8S_SSH_KEY are set"
48     exit 1
49   fi
50 }
51
52 case "${JOB_NAME}" in
53   *fuel*)
54     K8S_MASTER_IP=$(docker exec fuel cat /etc/hosts | grep iec01 \
55                     | awk '{print $1}')
56     # On Fuel deployements the K8s ssh key is the one used by the deploy job
57     K8S_SSH_KEY=${SSH_KEY}
58     IEC_DIR="/var/lib/akraino/iec"
59     KUBE_DIR="~${K8S_SSH_USER}/.kube"
60     ;;
61   *compass*)
62     # K8S_{MASTER_IP,SSH_USER,SSH_PASSWORD} are already set by job params
63     IEC_DIR="/${K8S_SSH_USER}/iec"
64     KUBE_DIR="~${K8S_SSH_USER}/.kube"
65     ;;
66   *rec*)
67     # CLUSTER_{MASTER_IP,SSH_USER,SSH_PASSWORD} are already set by job params
68     K8S_MASTER_IP=${CLUSTER_MASTER_IP}
69     K8S_SSH_USER=${CLUSTER_SSH_USER}
70     K8S_SSH_PASSWORD=${CLUSTER_SSH_PASSWORD}
71     IEC_DIR="/var/lib/akraino/iec"
72     KUBE_DIR="~${K8S_SSH_USER}/.kube"
73     UPSTREAM_PROJECT='rec'
74     ;;
75   *)
76     echo "Cannot determine installer from ${JOB_NAME}"
77     exit 1
78     ;;
79 esac
80
81 if [ -z "$K8S_SSH_USER" ]
82 then
83   echo "K8S_SSH_USER not set, cannot ssh to K8S master, aborting"
84   exit 1
85 fi
86
87 export K8S_MASTER_IP UPSTREAM_PROJECT="${UPSTREAM_PROJECT:-${PROJECT}}"
88
89 case "${JOB_NAME}" in
90   *-install-seba_on_arm*)
91     INSTALL_CMD="'cd ${IEC_DIR}/src/use_cases/seba_on_arm/install; ./install.sh ${UPSTREAM_PROJECT}'"
92     run_on_k8s_master ssh "${INSTALL_CMD}"
93     ;;
94   *-test-seba_on_arm*)
95
96     case "${PON_TYPE}" in
97       *ponsim*)
98       ;;
99       *)
100         echo "Unknown PON_TYPE ${PON_TYPE}"
101         exit
102       ;;
103     esac
104
105     # After the installation, copy the .kube dir from the K8S master
106     cd "${WORKSPACE}" || exit 1
107     run_on_k8s_master scp "${KUBE_DIR}" "${WORKSPACE}"
108
109     SEBA_TEST_DIR="src/use_cases/seba_on_arm/test"
110     TEST_CMD="${SEBA_TEST_DIR}/${PON_TYPE}/test.sh ${UPSTREAM_PROJECT}"
111     echo "Issuing command"
112     echo "${TEST_CMD}"
113
114     eval "${TEST_CMD}"
115     ;;
116   *)
117     echo "Cannot determine what to do for seba_on_arm from ${JOB_NAME}"
118     exit 1
119     ;;
120 esac
121
122 exit 0