#!/usr/bin/python3

import sys
import subprocess
from hook_invoker_lib.service import Service
from hook_invoker_lib.hook import print_err

def stop_service(name):
    if name == 'nfs-server':
        unexport_nfs()

    service = Service(name)
    if service is None:
        print('skip non-existent service {}'.format(name))
        return

    if not service.need_care:
        print('skip not enabled service {}'.format(name))
        return

    print('Stop {} service'.format(name))
    try:
        if service.is_inactive:
            return

        if not service.stop():
            print_err('stop {} failed'.format(name))
            return
    finally:
        pass

def unexport_nfs():
    try:
        subprocess.call(['exportfs', '-ua'], stdout=subprocess.DEVNULL, timeout=10)
        print('All NFS exports have been removed')
    except subprocess.CalledProcessError as e:
        print_err('unexport NFS shares failed: {}'.format(e.stderr))

if __name__ == "__main__":
    srv_names = ['smbd', 'nfs-server']
    for name in srv_names:
        stop_service(name)

    sys.exit(0)
