slapos-start 1.99 KB
#!/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