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)
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)