Newer
Older
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
#!/bin/bash
POSITIONAL_ARGS=()
KEEPDB='false'
while [[ $# -gt 0 ]]; do
case $1 in
-m|--mode)
MODE="$2"
shift # past argument
shift # past value
;;
-t|--topology)
TOPOLOGY="$2"
shift # past argument
shift # past value
;;
-s|--sdnconfig)
SDNCONFIG="$2"
shift # past argument
shift # past value
;;
--keepdb)
KEEPDB="true"
shift # past argument
;;
-*|--*)
echo "Unknown option $1"
exit 1
;;
*)
POSITIONAL_ARGS+=("$1") # save positional arg
shift # past argument
;;
esac
done
start_gosdn () {
# Start controller
cd controller
GOSDN_ADMIN_PASSWORD="admin" make start &
pid=$!
cd ..
}
if [ $MODE = 'start' ];
then
echo "Need sudo rights."
sudo echo "sudo rights granted"
# Start databases, etc.
docker compose up -d
# Start clab topology
if [ $KEEPDB = 'true' ];
then
sudo containerlab deploy -t $TOPOLOGY
start_gosdn
else
sleep 5
start_gosdn
./artifacts/venv-manager --mode deploy --topology $TOPOLOGY --sdnconfig $SDNCONFIG
fi
echo "#########################################################################################"
echo "Initialisation finished. You will now see the output of goSDN. Press Ctrl+C to stop it."
wait $pid
fi
if [ $MODE = 'stop' ];
then
docker compose down
sudo containerlab destroy -t $TOPOLOGY -c
rm -f dev_env_data/clab/.*.bak
fi