87b518911790f362859c290017ec163371cb6a8c
[ci-management.git] / jjb / iec / iec-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 -x
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          ${_o} "${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          ${_o} "${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 if [ -z "$K8S_SSH_USER" ]
53 then
54   echo "K8S_SSH_USER not set, cannot ssh to K8S master, aborting"
55   exit 1
56 fi
57
58 case "${JOB_NAME}" in
59   *fuel*)
60     K8S_MASTER_IP=$(docker exec fuel cat /etc/hosts | grep iec01 \
61                     | awk '{print $1}')
62     # On Fuel deployements the K8s ssh key is the one used by the deploy job
63     K8S_SSH_KEY=${SSH_KEY}
64     IEC_DIR="/var/lib/akraino/iec"
65     KUBE_DIR="~${K8S_SSH_USER}/.kube"
66     ;;
67   *compass*)
68     # K8S_{MASTER_IP,SSH_USER,SSH_PASSWORD} are already set by job params
69     IEC_DIR="/${K8S_SSH_USER}/iec"
70     KUBE_DIR="~${K8S_SSH_USER}/.kube"
71     ;;
72   *)
73     echo "Cannot determine installer from ${JOB_NAME}"
74     exit 1
75     ;;
76 esac
77
78 case "${JOB_NAME}" in
79   iec-*-install-seba_on_arm*)
80     INSTALL_CMD="'cd ${IEC_DIR}/src/use_cases/seba_on_arm/install; ./install.sh'"
81     run_on_k8s_master ssh "${INSTALL_CMD}"
82     ;;
83   iec-*-test-seba_on_arm*)
84
85     case "${PON_TYPE}" in
86       *ponsim*)
87       ;;
88       *)
89         echo "Unknown PON_TYPE ${PON_TYPE}"
90         exit
91       ;;
92     esac
93
94     # After the installation, copy the .kube dir from the K8S master
95     cd "${WORKSPACE}" || exit 1
96     run_on_k8s_master scp "${KUBE_DIR}" "${WORKSPACE}"
97
98     SEBA_TEST_DIR="src/use_cases/seba_on_arm/test"
99     TEST_CMD="${SEBA_TEST_DIR}/${PON_TYPE}/test.sh"
100     echo "Issuing command"
101     echo "${TEST_CMD}"
102
103     eval ${TEST_CMD}
104     exit_code=$?
105     ;;
106   *)
107     echo "Cannot determine what to do for seba_on_arm from ${JOB_NAME}"
108     exit 1
109     ;;
110 esac
111
112 exit 0