blob: bc5906008e428a8c68c6c6e6153d74f47a2ab8d1 (
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
|
# (c) 2017 Kevin Hilman <khilman@baylibre.com>
# License GPLv2
#
# Setup LAVA API authentication tokens for various LAVA labs
#
# Uses user/token pairs from Jenkins secrets
#
declare -A labs
labs=(
[agl]="https://lava.automotivelinux.org/;$LAB_AGL_USER;$LAB_AGL_TOKEN"
[baylibre]="http://lava.baylibre.com:10080/;$LAB_BAYLIBRE_USER;$LAB_BAYLIBRE_TOKEN"
# [baylibre_seattle]="http://lava.ished.com/;$LAB_BAYLIBRE_SEATTLE_USER;$LAB_BAYLIBRE_SEATTLE_TOKEN"
)
echo "## ${MACHINE} ##"
__MACHINE=${MACHINE%-nogfx}
#
# Ensure python_keyring is set to plaintext. Required for
# non-interactive use
#
echo "default keyring config"
mkdir -p ~/.local/share/python_keyring/
cat <<EOF > ~/.local/share/python_keyring/keyringrc.cfg
[backend]
default-keyring=keyring.backends.file.PlaintextKeyring
EOF
for lab in "${!labs[@]}"; do
val=${labs[$lab]}
OFS=${IFS}
IFS=';'
arr=(${labs[$lab]})
IFS=${OFS}
url=${arr[0]}
user=${arr[1]}
token=${arr[2]}
token_file=$HOME/.local/lab-$lab-token
if [ -z ${user} ]; then
echo "WARNING: Lab ${lab}: missing user. Ignoring."
continue
fi
if [ -z ${token} ]; then
echo "WARNING: Lab ${lab}: missing token. Ignoring."
continue
fi
# LAVA URL with username
full_url=${url/:\/\//:\/\/${user}\@}
echo "LAVA auth-add for lab: $lab, URL: $full_url"
# LAVA auth using token
echo ${token} > $token_file
lava-tool auth-add --token $token_file $full_url
if [ $? != 0 ]; then
echo "ERROR: Lab ${lab}: lava-tool auth-add failed."
fi
rm -f $token_file
# Find the LAVA Lab that has the device available to run the job
echo -n "Checking for $__MACHINE at $full_url... "
line=$(lava-tool devices-list $full_url |grep $__MACHINE | tr -d '[:space:]')
if [ -z "$line" ]; then
echo "not found."
continue
fi
IFS='|'
arr=($line)
device_status=${arr[2]}
IFS=${OFS}
# device is only available if "idle" or "running"
device_available=0
if [ x"$device_status" = x"idle" ]; then
device_available=1
elif [ x"$device_status" = x"running" ]; then
device_available=1;
fi
if [ $device_available = 0 ]; then
echo " Not Available. Status: $device_status"
continue
else
echo " Found and available. Status: $device_status"
export LAVA_LAB=$lab
fi
done
|