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
#!/bin/bash
IPV6CHECK=ipv6.google.com
IPV4CHECK=google.com
IPV6WAITTIME=5
SLAPOS_CONFIGURATION=/etc/opt/slapos/
${ONLY_SLAPFORMAT:=false}
if [ $ONLY_SLAPFORMAT = false ]; then
if [ ! -f $SLAPOS_CONFIGURATION/slapos.cfg ]; then
echo "No slapos.cfg found"
exit 0
fi
echo "Starting slap script"
# Check ipv4
ping -c 2 $IPV4CHECK
while [ $? != 0 ]; do
sleep $(($i * 5))
if [[ $i -le 40 ]]; then
let i++
fi
ping -c 2 $IPV4CHECK
done
# Launch openvpn
if [ -f $SLAPOS_CONFIGURATION/openvpn-needed ]; then
/etc/init.d/openvpn start
sleep 10
fi
# Wait for ipv6 connection to be ready
i=0
ping6 -c 2 $IPV6CHECK
while [ $? != 0 ];
do
sleep $(($i * 10))
if [[ $i -le 40 ]]; then
let i++
fi
ping6 -c 2 $IPV6CHECK
done
else
sleep 15
fi
# Run slapformat
i=1
echo -n "Running slapformat..."
/opt/slapos/bin/slapformat --now --console --verbose --log_file=/opt/slapos/slapformat.log $SLAPOS_CONFIGURATION/slapos.cfg
while [ $? != 0 ]; do
sleep $(($i*60))
if [ $i -le 20 ]; then
let i++
fi
echo "Retrying slapformat"
/opt/slapos/bin/slapformat --now --console --verbose --verbose --log_file=/opt/slapos/slapformat.log $SLAPOS_CONFIGURATION/slapos.cfg
done
if [ $ONLY_SLAPFORMAT = false ]; then
# Run bang
i=1
echo -n "Banging..."
/opt/slapos/bin/bang -m "Rebooted" $SLAPOS_CONFIGURATION/slapos.cfg
while [ $? != 0 ]; do
sleep $(($i*60))
if [ $i -le 20 ]; then
let i++
fi
echo "Retrying Bang"
/opt/slapos/bin/bang -m "Rebooted" $SLAPOS_CONFIGURATION/slapos.cfg
done
echo "done."
# Delete timestamp of all partitions so that it will force slapgrid to process them.
rm /srv/slapgrid/slappart*/.timestamp
# Run slapgrid now.
/opt/slapos/bin/slapgrid-cp --verbose --now --logfile=/opt/slapos/slapgrid-cp.log --pidfile=/opt/slapos/slapgrid-cp.pid $SLAPOS_CONFIGURATION/slapos.cfg >> /opt/slapos/slapgrid-cp.log 2>&1
fi