def monitor_service(svc,symbol,value): cmd = __config__[svc] cName = cmd.split()[0] __cmd__ = os.sep.join([__plugins__,cName]) if (os.path.exists(__cmd__)): cmd = cmd.replace(cName,__cmd__).replace(symbol,value) logger.debug('(+++) %s=%s' % (svc,cmd)) __results__ = utils.shellexecute(cmd) results = [str(item).strip() for item in __results__[0]] retcode = [str(item).strip() for item in __results__[-1]] logger.info('(+++) cmd-->results=%s' % (results)) logger.info('(+++) cmd-->retcode=%s' % (retcode)) data = "%s\\t%s\\t%s\\t%s\n" % (options.host, svc, 0 if (len(retcode) == 0) else 1, results[0]) logger.debug('(+++) data=%s' % (data)) payload = utils.SmartObject() payload.oper = "login" payload.username = __username__ payload.password = __password__ payload.send_nsca = data __cfg__ = None __results__ = utils.shellexecute(__find_send_nsca_cfg__) results = [str(f).strip() for f in __results__[0] if (os.path.exists(str(f).strip()))] if (len(results) > 0): __cfg__ = results[0] logger.info('__results__=%s [%s]' % (__results__,len(__results__))) logger.info('__cfg__=%s' % (__cfg__)) payload.cfg = __cfg__ headers = {'Content-Type':'application/json', 'Accept':'application/json'} r = requests.post('%s/nsca/nagios/send/nsca' % (options.url),data=simplejson.dumps(payload.__dict__), headers=headers) logger.debug('r.status_code=%s' % (r.status_code)) logger.debug('r.json()=%s' % (r.json())) if (r.status_code == 200): try: response = utils.SmartObject(args=r.json()) logger.debug('response=%s' % (response.__dict__)) matches = __re1__.search(response.status[0] if (utils.isList(response.status)) else response.status) if (response.status) else None if (matches): groups = utils.SmartObject(args=matches.groupdict()) logger.debug('(+++) matches=%s [%s]' % (matches,groups.__dict__)) if (groups.num): logger.debug('(+++) groups.num=%s' % (groups.num)) except Exception, ex: logger.exception('EXCEPTION: %s' % (utils.formattedException(details=ex)))
host1 = utils.SmartObject() host1.use = "generic-host" host1.host_name = options.host host1.alias = options.host host1.address = options.ip payload.host1 = host1.__dict__ command1 = utils.SmartObject() command1.command_name = "dummy_command_%s" % (options.host) command1.command_line = "echo \"0\"" payload.command1 = command1.__dict__ if (payload.partitions): logger.info('1. payload.partitions=%s' % (payload.partitions)) results = utils.shellexecute(payload.partitions) logger.info('2 results=%s' % (results)) partition_names = [str(r).strip() for r in results[0]] if (utils.isList(results)) else results logger.info('3 payload.partition_names=%s' % (payload.partition_names)) for partition in partition_names: services.append(partition) count = 1 for svc in services: service = utils.SmartObject() service.use = "generic-service" service.host_name = options.host service.service_description = svc service.active_checks_enabled = "0" service.passive_checks_enabled = "1" service.check_command = command1.command_name