Esempio n. 1
0
def main():
    handler = logging.StreamHandler(sys.stderr)
    LOG = logging.getLogger()
    LOG.addHandler(handler)

    options = get_options()

    LOG.setLevel(logging.DEBUG if options.debug else logging.INFO)

    zapi = ZabbixAPI(server=options.server)

    try:
        json_data = (json.load(open(options.file, "r"))
                     if options.file else json.loads(options.expression))
        zapi.login(options.username, options.password)
    except Exception as e:
        die(str(e))

    def execute_command(js):
        try:
            cls, method = js["method"].split(".", 1)
        except:
            print >> sys.stderr, "missing method name"
            return False
        try:
            obj = getattr(zapi, cls)
        except:
            print >> sys.stderr, "class %s not found" % cls
            return False
        try:
            print json.dumps(
                getattr(obj, method)(js.get("params", {})),
                **({
                    "indent": 4
                } if options.indent else {}))
        except Exception as e:
            print >> sys.stderr, str(e)
            return False
        return True

    if isinstance(json_data, list):
        for i in json_data:
            if not (execute_command(i) or options.keep_going):
                sys.exit(1)
    else:
        if not execute_command(json_data):
            sys.exit(1)
Esempio n. 2
0
def main():
    handler = logging.StreamHandler(sys.stderr)
    LOG = logging.getLogger()
    LOG.addHandler(handler)

    options = get_options()

    LOG.setLevel(logging.DEBUG if options.debug else logging.INFO)

    zapi = ZabbixAPI(server=options.server)

    try:
        json_data = (json.load(open(options.file, "r")) if options.file
                     else json.loads(options.expression))
        zapi.login(options.username, options.password)
    except Exception as e:
        die(str(e))

    def execute_command(js):
        try:
            cls, method = js["method"].split(".", 1)
        except:
            print >> sys.stderr, "missing method name"
            return False
        try:
            obj = getattr(zapi, cls)
        except:
            print >> sys.stderr, "class %s not found" % cls
            return False
        try:
            print json.dumps(
                getattr(obj, method)(js.get("params", {})),
                **({"indent": 4} if options.indent else {}))
        except Exception as e:
            print >> sys.stderr, str(e)
            return False
        return True

    if isinstance(json_data, list):
        for i in json_data:
            if not (execute_command(i) or options.keep_going):
                sys.exit(1)
    else:
        if not execute_command(json_data):
            sys.exit(1)