include_once "classes/Check.php"; include_once "classes/Property.php"; // Base dir for scripts $script_dir = "check-scripts"; // Get check info // Create check object $check = new Check($check_id); // Start timer and exec check script $time_start = microtime(true); $script = "{$script_dir}/" . $check->get_parsed_check_script(); $check_result = exec_check($script); // Now create a new Event object // Store the info we know from Check object // and check results $event = new Event(); $event->set_status($check_result['status']); $event->set_info_msg($check_result['message']); $event->set_performance_data($check_result['perf_data']); $event->set_check_id($check->get_check_id()); $event->set_script($script); $event->set_check_name($check->get_name()); $event->set_hostname($check->get_hostname()); $event->set_key1($check->get_key1()); $event->set_key2($check->get_key2()); // Now we can use handle_event() to figure out if this is a new // or exitsing event. It will do all the updating for us // and call notify() in the event class $event->handle_event(); $time_end = microtime(true); $time = $time_end - $time_start; //print status line
} // New verify if we have enough info if (!is_numeric($mydata['status'])) { $msg = "Invalid request: status not numeric"; header("HTTP/1.0 400 {$msg}"); print $msg; exit; } else { // If return status > 3, means invalid status, rewrite to unknown (3) if ($mydata['status'] > 3) { //print "Warning rewrote status value from ". $mydata['status'] ." to 3\n"; $mydata['status'] = 3; } } $event = new Event(); $event->set_status($mydata['status']); $event->set_info_msg($mydata['message']); $event->set_script("Submitted Check"); if (is_numeric($mydata['check_id'])) { // if this is the case we have the check_id that makes live easy. $event->set_check_id($mydata['check_id']); $event->set_check_name($mydata['checkname']); $event->set_hostname($mydata['hostname']); } else { // Then we need hostname with checkname and keys if (!isset($mydata['hostname']) || $mydata['hostname'] == '' || !isset($mydata['checkname']) || $mydata['checkname'] == '') { $msg = "Invalid request: Expecting either check_id or hostname AND checkname"; header("HTTP/1.0 400 {$msg}"); print $msg; exit; }
function event_controller() { global $mysqli, $redis, $user, $session, $route, $timestore_adminkey; global $feed; include "Modules/feed/feed_model.php"; $feed = new Feed($mysqli, $redis, $timestore_adminkey); require "Modules/event/event_model.php"; $event = new Event($mysqli, $redis); $userid = $session['userid']; if ($route->action == 'add' && $session['write']) { $eventfeed = intval(get('eventfeed')); $eventtype = intval(get('eventtype')); $eventvalue = floatval(get('eventvalue')); $action = intval(get('action')); $setfeed = intval(get('setfeed')); $setemail = get('setemail'); $setvalue = floatval(get('setvalue')); $callcurl = get('callcurl'); $mutetime = get('mutetime'); $priority = get('priority'); $message = get('message'); $mqtttopic = get('mqtttopic'); $mqttqos = get('mqttqos'); $event->add($userid, $eventfeed, $eventtype, $eventvalue, $action, $setfeed, $setemail, $setvalue, $callcurl, $message, $mutetime, $priority, $mqtttopic, $mqttqos); $result = "Event added"; } if ($route->action == 'edit' && $session['write']) { $eventid = intval(get('eventid')); $eventfeed = intval(get('eventfeed')); $eventtype = intval(get('eventtype')); $eventvalue = floatval(get('eventvalue')); $action = intval(get('action')); $setfeed = intval(get('setfeed')); $setemail = get('setemail'); $setvalue = floatval(get('setvalue')); $callcurl = get('callcurl'); $mutetime = get('mutetime'); $priority = get('priority'); $message = get('message'); $mqtttopic = get('mqtttopic'); $mqttqos = get('mqttqos'); $event->update($userid, $eventid, $eventfeed, $eventtype, $eventvalue, $action, $setfeed, $setemail, $setvalue, $callcurl, $message, $mutetime, $priority, $mqtttopic, $mqttqos); $result = "Event updated"; } else { if ($route->action == 'delete' && $session['write']) { $id = intval(get('id')); $event->delete($userid, $id); $result = "Event deleted"; } else { if ($route->action == 'status' && $session['write']) { $id = intval(get('id')); $status = intval(get('status')); $event->set_status($userid, $id, $status); $result = "Event deleted"; } else { if ($route->action == 'test' && $session['write']) { $id = intval(get('id')); $feedid = intval(get('feedid')); $event->test($userid, $id, $feedid); $result = "Event Test Sent"; } else { if ($route->action == 'settings' && $session['write']) { $settings = $event->get_settings($session['userid']); $result = view("Modules/event/event_settings_view.php", array('settings' => $settings)); } else { if ($route->action == 'savesettings' && $session['write']) { // Store userlang in database $prowlkey = post('prowlkey'); $nmakey = post('nmakey'); $smtpserver = post('smtpserver'); $smtpuser = post('smtpuser'); $salt = $user->get_salt($session['userid']); $smtppassword = trim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $salt, post('smtppassword'), MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND)))); $smtpport = preg_replace('/[^\\w\\s-]/', '', post('smtpport')); $consumerkey = post('consumerkey'); $consumersecret = post('consumersecret'); $usertoken = post('usertoken'); $usersecret = post('usersecret'); $mqttbrokerip = post('mqttbrokerip'); $mqttbrokerport = post('mqttbrokerport'); $mqttusername = post('mqttusername'); $mqttpassword = trim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $salt, post('mqttpassword'), MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND)))); $result = $event->set_settings($session['userid'], $prowlkey, $consumerkey, $consumersecret, $usertoken, $usersecret, $smtpserver, $smtpuser, $smtppassword, $smtpport, $nmakey, $mqttbrokerip, $mqttbrokerport, $mqttusername, $mqttpassword); } else { if ($session['write']) { $list = $event->eventlist($userid); $feeds = $feed->get_user_feeds($userid); $result = view("Modules/event/event_list.php", array('event_list' => $list, 'feeds' => $feeds)); } } } } } } } return array('content' => $result); }