#!/bin/sh -e
#
# Test if the smbadmin account is created

ADMINUSER=smbadmin
DOMAIN=SKOLELINUX

if test -r /etc/debian-edu/config ; then
    . /etc/debian-edu/config
fi

# Only Main-Server install samba
if echo "$PROFILE" | egrep -q 'Main-Server' ; then
    :
else
    exit 0
fi

# Check if a deb package is installed.  Return true if it is, and
# false if it isn't.
deb_installed() {
    RET=$( dpkg -s $1 2>/dev/null | awk '/Status\:/ {print $4}' )
    if [ "$RET" = "installed" ] ; then
        :
    else
        false
    fi
}

if /usr/bin/ldapsearch -LLL -x \
    "(&(cn=$ADMINUSER)(objectClass=simpleSecurityObject))" \
    >/dev/null 2>&1 ; then
    echo "success: $0: smbadmin simpleSecurityObject exists in ldap"
else
    echo "error: $0: smbadmin simpleSecurityObject does not exists in ldap"
fi

if /usr/bin/ldapsearch -LLL -x \
    "(&(objectclass=sambadomain)(sambadomainname=$DOMAIN))" \
    > /dev/null 2>&1 ; then
    echo "success: $0: sambadomain object for domain $DOMAIN exists in ldap"
else
    echo "error: $0: sambadomain object for domain $DOMAIN does not exists in ldap"
fi

# Only test if samba is installed
if  deb_installed samba ; then
    :
else
    echo "info: $0: samba is not installed"
    exit 0
fi

if pidof smbd > /dev/null ; then
    echo "success: $0: samba is running."
else
    echo "error: $0: samba is not running."
    exit 1
fi

port=netbios-ns 
proto=udp

if netstat -a --numeric-hosts 2>&1 | grep ":$port " | grep -q "^$proto" ; then
    echo "success: $0: Netbios name service is listening on $port/$proto."
else
    echo "error: $0: Netbios name service is not listening on $port/$proto."
fi

port=netbios-ssn
proto=tcp

if netstat -a --numeric-hosts 2>&1 | grep ":$port " | grep -q "^$proto" ; then
    echo "success: $0: Netbios session service is listening on $port/$proto."
else
    echo "error: $0: Netbios session service is not listening on $port/$proto."
fi

if which net >/dev/null 2>&1 ; then
    echo "success: $0: found net binary."
    if net groupmap list | grep -q '^Domain Admins ' ; then
	echo "success: $0: found Domain Admins in samba groupmap."
    else
	echo "error: $0: missing Domain Admins in samba groupmap."
    fi
else
    echo "error: $0: missing net binary."
fi

exit 0
