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

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

"""
Check a remote memcache server

"""
from optparse import OptionParser

import memcache
import random

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

logfile = "/dev/stdout"
loglevel = 20
ip = "127.0.0.1"
port = 11211

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

parser = OptionParser()

parser.add_option("-i", "--ip", dest="ip",
        help="Memcache IP (default: %s)" % ip,
        default=ip)
parser.add_option("-p", "--port", dest="port",
        help="Memcache port (default: %s)" % port,
        default=port)
parser.add_option("-l", "--logfile",
        dest="logfile", help="Log file (default: %s)" % logfile,
        default=logfile)
parser.add_option("--loglevel",
        dest="loglevel", help="Log level (default: %s)" % loglevel,
        default=loglevel)
(options, args) = parser.parse_args()


logfile = options.logfile
loglevel = options.loglevel
ip = options.ip
port = options.port


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


# setting up ###################################################################

try:
    mc = memcache.Client([ip + ':' + port], debug=0)
    key = "testkey_" + str(random.randint(0,1000000000000000))

    mc.set(key, key)
    value = mc.get(key)
    mc.delete(key)

    if value == key:
        print "Ok"
    else:
        print "Fail"
except Exception, e:
    print "Fail: %s" % e



