#/* Copyright 2020 Intel Corporation, Inc
# *
# * Licensed under the Apache License, Version 2.0 (the "License");
# * you may not use this file except in compliance with the License.
# * You may obtain a copy of the License at
# *
# *     http://www.apache.org/licenses/LICENSE-2.0
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# */

apiVersion: v1
data:
  entrypoint.sh: |-
    #!/bin/bash
    # Always exit on errors.
    set -ex
    echo "" > /etc/config/network
    cat > /etc/config/mwan3 <<EOF
    config globals 'globals'
        option mmx_mask '0x3F00'
        option local_source 'lan'
    EOF
    eval "networks=$(grep nfn-network /tmp/podinfo/annotations | awk  -F '=' '{print $2}')"
    for net in $(echo -e $networks | jq -c ".interface[]")
    do
      interface=$(echo $net | jq -r .interface)
      ipaddr=$(ifconfig $interface | awk '/inet/{print $2}' | cut -f2 -d ":" | awk 'NR==1 {print $1}')
      vif="$interface"
      netmask=$(ifconfig $interface | awk '/inet/{print $4}'| cut -f2 -d ":" | head -1)
      cat >> /etc/config/network <<EOF
    config interface '$vif'
        option ifname '$interface'
        option proto 'static'
        option ipaddr '$ipaddr'
        option netmask '$netmask'
    EOF
      cat >> /etc/config/mwan3 <<EOF
    config interface '$vif'
            option enabled '1'
            option family 'ipv4'
            option reliability '2'
            option count '1'
            option timeout '2'
            option failure_latency '1000'
            option recovery_latency '500'
            option failure_loss '20'
            option recovery_loss '5'
            option interval '5'
            option down '3'
            option up '8'
    EOF
    done

    if [ -f "/tmp/sdewan/account/password" ]; then
        echo "Changing password ..."
        pass=$(cat /tmp/sdewan/account/password)
        echo root:$pass | chpasswd
    fi

    if [ -d "/tmp/sdewan/serving-certs/" ]; then
        echo "Configuration certificates ..."
        cp /tmp/sdewan/serving-certs/tls.crt /etc/uhttpd.crt
        cp /tmp/sdewan/serving-certs/tls.key /etc/uhttpd.key
    fi

    /sbin/procd &
    /sbin/ubusd &
    iptables -t nat -L
    sleep 1
    /etc/init.d/rpcd start
    /etc/init.d/dnsmasq start
    /etc/init.d/network start
    /etc/init.d/odhcpd start
    /etc/init.d/uhttpd start
    /etc/init.d/log start
    /etc/init.d/dropbear start
    /etc/init.d/mwan3 restart
    /etc/init.d/firewall restart
    echo "Entering sleep... (success)"
    # Sleep forever.
    while true; do sleep 100; done
kind: ConfigMap
metadata:
  name: sdewan-safe-sh
  namespace: default

