#!/bin/bash
set -e
RET=0

if [ -n "$1" ]
then
    FIX=1
fi

# brctl show | grep -o "qvb.*" | sed 's/qv.//g' | while read LINE; do ovs-vsctl show | grep -q $LINE && echo "$LINE is there" || (echo "$LINE is missing"; sudo /bin/ip link delete "qvb${LINE}"); done
for LINE in $( sudo /bin/ip tuntap | awk '{ print $1 }' | sed -e 's/^tap//g' -e 's/^qbr//g' -e 's/://g' | sort -u )
do
    if sudo ovs-vsctl show | grep -q $LINE
    then
        true
    else
        if sudo /bin/ip link show "qvb${LINE}"
        then
            echo "$LINE is missing in ovs-db" &>/dev/null
            if [ -n "$FIX" ]
            then
                echo "FIXING: ip link delete qvb${LINE}"
                sudo /bin/ip link delete "qvb${LINE}" 
            fi 
            RET=1
        fi
    fi
done

if [ "$RET" -gt 0 ]
then
    echo "Missing bridge-ovs-links found"
else
    echo "OK"
fi

if [ "$RET" -eq 0 ]
then
    echo "OK: No missing bridge-ovs-links found"
fi

exit ${RET}
