#!/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 = "tar.lzo"

# 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("-s", "--suffix",
        dest="suffix", help="Dump 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


# 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 f.endswith(suffix):
          _vzdump,_openvz,_id,_date,_hourandextension = f.split("-")
          _d = {}
          _d["{#VZDUMPFILE}"]=workdir + "/" + f
          _d["{#VZDUMPFILE2}"]=workdir + "/" + _vzdump + "-" + _openvz + \
"-"  + _id + "-" + "*" + _hourandextension.split(".")[-1]
          # _d["{#VZDUMPFILE}"]=_d["{#VZDUMPFILE}"].replace("/","\/")
          _d["{#VZDUMPID}"]=_id
          res["data"].append(_d)
    except Exception, e:
        logger.error("Raised exception: %s" % e)
    print json.dumps(res)


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



