#!/usr/bin/env python

import os
import subprocess
import json
import socket
import logging

LOG_PATH = "/var/log/logname.log"
FORWARD_PATH = "/etc/logstash-forwarder.conf"
LOG_LEVEL = logging.DEBUG


# Set up logpath
if not os.path.isfile(LOG_PATH):

    logging.info("No {0} file. Calling: sudo touch {1}".format(LOG_PATH, LOG_PATH))
    subprocess.call("sudo touch {0}".format(LOG_PATH), shell=True)

    logging.info("Setting perms. Calling: sudo chmod 666 {0}".format(LOG_PATH))
    subprocess.call("sudo chmod 666 {0}".format(LOG_PATH), shell=True)

# Set up forwarding
if os.path.isfile(FORWARD_PATH):

    logging.info("Forwarding {0} to logstash...".format(FORWARD_PATH))
    try:
        with open(FORWARD_PATH, "r+") as f:
        data = json.load(jsonFile)

        try:
            if LOG_PATH not in data['files'][0]['paths']:
                data['files'][0]['paths'].append(LOG_PATH)
                jsonFile = open("/etc/logstash-forwarder.conf", "w+")
                jsonFile.write(json.dumps(data))

        except KeyError:
            logging.error("Could not set logstash: {0} is not well formated.".format(FORWARD_PATH))

    except IOError:
        logging.error("Could not open {0}".format(FORWARD_PATH))

else:
    hostname = socket.gethostname()

    #Search for logstash-forwarder locations per each host
    if "prodvpn" in hostname:
        logging.warning("Forwarder should be in {0}. Please set up a forwarder and try again.".format(FORWARD_PATH))