#!/opt/dosis2/bin/python2.7-venv

import glob
import os
import sys

from typing import List, Dict


def __generate_ubuntu_openvpn_service_names():
    # type: () -> List[str]
    service_names = []
    for f in glob.glob('/etc/openvpn/*.conf'):
        service_names.append(
            'openvpn@%s.service' % os.path.splitext(
                os.path.basename(f))[0])
    return service_names


def __get_service_translations(operating_system):
    # type: (str) -> Dict[str, List[str]]
    translations = {
        'apache': {
            'Ubuntu': ['apache2'],
            'CentOS': ['httpd']
        },
        'memcached': {
            'Ubuntu': ['memcached'],
            'CentOS': ['memcached']
        },
        'cups': {
            'Ubuntu': ['cups'],
            'CentOS': ['cups']
        },
        'openvpn': {
            'Ubuntu': __generate_ubuntu_openvpn_service_names(),
            'CentOS': ['openvpn']
        },
        'l60': {
            'Ubuntu': ['dosis-l60'],
            'CentOS': ['dosis_l60']
        },
        'pmis': {
            'Ubuntu': ['dosis-pmis'],
            'CentOS': ['dosis_pmis']
        },
        'extprint': {
            'Ubuntu': ['dosis-extprint'],
            'CentOS': ['dosis_extprint']
        },
        'postgresql': {
            'Ubuntu': ['postgresql'],
            'CentOS': ['postgresql-9.2']
        },
        'dbmonitor': {
            'Ubuntu': ['dosis-dbmonitor'],
            'CentOS': ['dosis_dbmonitor']
        },
        'alerter': {
            'Ubuntu': ['dosis-alerter'],
            'CentOS': ['dosis_alerter']
        }
    }

    return {name: values[operating_system] for name, values in translations.items()}


def main():
    operating_system, service_name = sys.argv[1], sys.argv[2]
    for servicename in __get_service_translations(operating_system)[service_name]:
        print(servicename)


main()
