-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsetup.sh
executable file
·49 lines (42 loc) · 1.13 KB
/
setup.sh
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
#!/bin/bash
CFG_DIR=./configs
SRL_PASSWORD=NokiaSrl1!
configure_SRL() {
OUT=$(gnmic -a clab-clos02-$1 --timeout 30s -u admin -p $SRL_PASSWORD -e json_ietf --skip-verify set --update-path / --update-file $CFG_DIR/$1.yaml 2>&1)
echo $OUT | grep -q -e '\"operation\": \"UPDATE\"'
if [ $? -eq 0 ]; then
docker exec clab-clos02-$1 sr_cli "save startup" > /dev/null
else
echo "Error: Unable to push config into clab-clos02-$1."
fi
echo $OUT > /dev/null
}
configure_CLIENT() {
docker cp $CFG_DIR/$1.sh clab-clos02-$1:/tmp/
docker exec clab-clos02-$1 bash /tmp/$1.sh 2>/dev/null
}
echo
PIDS=""
NE=("leaf1" "leaf2" "leaf3" "leaf4" "spine1" "spine2" "spine3" "spine4" "superspine1" "superspine2")
CLIENT=("client1" "client2" "client3" "client4")
for VARIANT in ${NE[@]}; do
( configure_SRL $VARIANT ) &
REF=$!
echo "[$REF] Configuring $VARIANT..."
PIDS+=" $REF"
done
for VARIANT in ${CLIENT[@]}; do
( configure_CLIENT $VARIANT ) &
REF=$!
echo "[$REF] Configuring $VARIANT..."
PIDS+=" $REF"
done
echo
for p in $PIDS; do
if wait $p; then
echo "Process $p success"
else
echo "Process $p fail"
fi
done
echo