#!/usr/bin/python
# -*- coding:utf-8 -*-

# Author: Pablo Saavedra Rodinho
# Contact: pablo.saavedra@interoud.com

"""
Customs check for Zabbix to gather information about Openvz dumps
"""

from optparse import OptionParser

import os
import sys
import subprocess

reload(sys)
sys.setdefaultencoding('utf-8')

import ConfigParser
import simplejson as json

import time
from datetime import datetime
import struct
import socket

import urllib2

DEV_NULL=open('/dev/null', "w")

conffile = "./chic.cfg"

logfile = "/dev/null"
loglevel = 20
workdir = "./chic/"
suffix = ""
prefix = ""

# command line options parser ##################################################

parser = OptionParser()

parser.add_option("-w", "--workdir", dest="workdir", default=workdir,
        help="Work directory (default: %s)" % workdir)
parser.add_option("-l", "--logfile",
        dest="logfile", help="Log file (default: %s)" % logfile,
        default=logfile)
parser.add_option("-p", "--prefix",
        dest="prefix", help="File prefix (default: %s)" % prefix,
        default=prefix)
parser.add_option("-s", "--suffix",
        dest="suffix", help="File suffix (default: %s)" % suffix,
        default=suffix)
parser.add_option("--loglevel",
        dest="loglevel", help="Log level (default: %s)" % loglevel,
        default=loglevel)
(options, args) = parser.parse_args()

workdir = options.workdir
logfile = options.logfile
loglevel = options.loglevel
suffix = options.suffix
prefix = options.prefix

# logging ######################################################################
import logging
hdlr = logging.FileHandler(logfile)
hdlr.setFormatter(logging.Formatter('%(levelname)s %(asctime)s %(message)s'))
logger = logging.getLogger('chic')
logger.addHandler(hdlr)
logger.setLevel(int(loglevel))


# setting up ###################################################################
logger.info("Default encoding: %s" % sys.getdefaultencoding())


################################################################################
def main():
    global workdir
    res = {"data":[]}
    try:
      files = os.listdir(workdir)
      for f in files:
        if suffix != "" and not f.endswith(suffix):
            continue
        if prefix != "" and not f.startswith(prefix):
            continue
        _d = {}
        _d["{#FILE}"]=workdir + "/" + f
        res["data"].append(_d)
    except Exception, e:
        logger.error("Raised exception: %s" % e)
    print json.dumps(res)


# main #########################################################################
if __name__ == '__main__':
    main()



