static function requestPost($action, $params, $user) { //$authToken = $user['auth_token']; $authToken = MonitisConf::$authToken; if ($authToken) { $params['validation'] = 'token'; $params['version'] = MONITIS_API_VERSION; $params['action'] = $action; $params['timestamp'] = date("Y-m-d H:i:s", time()); $params['apikey'] = $user['api_key']; $params['authToken'] = $authToken; $query = http_build_query($params); $ch = curl_init(self::$endpoint); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $query); if (MONITIS_SSL_NOVERIFY) { curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); } $result = curl_exec($ch); monitisLog("client requestPost **** action = <b>{$action}</b><p>{$query}</p><p>{$result}</p>"); //$resp = json_decode($result, true); $resp = self::jsonDecode($result); if (@$resp['error'] && @$resp['errorCode'] && $resp['errorCode'] == 4) { if (MonitisConf::update_token()) { return self::requestPost($action, $params); } else { return array('status' => 'error', 'msg' => 'Monitis server not response'); } } //else return $resp; } else { if (MonitisConf::update_token()) { return self::requestPost($action, $params); } else { return array('status' => 'error', 'msg' => 'Monitis server not response'); } } }
static function requestPost($action, $params) { // TODO: error handling when JSON is not returned //$authToken = self::authToken(); $authToken = MonitisConf::$authToken; if ($authToken) { $params['authToken'] = $authToken; $params['validation'] = 'token'; $params['version'] = MONITIS_API_VERSION; $params['action'] = $action; $params['apikey'] = MonitisConf::$apiKey; $query = http_build_query($params); $ch = curl_init(self::$endpoint); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $query); if (MONITIS_SSL_NOVERIFY) { curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); } $result = curl_exec($ch); curl_close($ch); monitisLog("POST requestPost **** action = <b>{$action}</b><p>{$query}</p><p>{$result}</p>"); //$json = json_decode($result, true); $json = self::jsonDecode($result); if ($json && isset($json['errorCode']) && $json['errorCode'] == 4) { if (MonitisConf::update_token()) { return self::requestPost($action, $params); } else { return array('status' => 'error', 'msg' => 'Monitis server not response'); } } return $json; } else { if (MonitisConf::update_token()) { return self::requestPost($action, $params); } else { return array('status' => 'error', 'msg' => 'Monitis server not response'); } } }
static function createMonitor(&$product) { $monitor_type = $product['monitor_type']; $userid = $product['userid']; $product["tag"] = '' . $userid . '_whmcs'; $result = array("status" => 'ok', "monitor_id" => 0, "monitor_type" => $monitor_type); monitisLog($product, 'createMonitor UserID=' . $userid); if (!empty($product['web_site'])) { $settings = null; if (!empty($product["settings"])) { $settings = json_decode($product['settings'], true); } else { $settings = MonitisConf::$settings[$monitor_type]; } // get client api_key and secret_key, if the client does not exist to create $resp = monitisClientApi::userApiInfoById($product['userid']); if ($resp['status'] == 'ok' && isset($resp['data']) && $resp['data']) { //$resp = monitisClientApi::userToken($userid); //if($resp['status'] == 'ok') { // $userInfo = $resp; $response = null; $userInfo = $resp['data']; if ($product['producttype'] == 'product' && $monitor_type == 'ping' && isset($settings['timeoutPing'])) { $settings['timeout'] = $settings['timeoutPing']; } $response = monitisClientApi::addExternalMonitor($product, $settings, $userInfo); if (@$response['status'] == 'ok' || isset($response['error']) && @$response['errorCode'] == 11) { $monitor_id = $response['data']['testId']; $result["monitor_id"] = $monitor_id; $resp = self::linkMonitor($monitor_id, $product, 'external'); $result['status'] = $resp['status']; $result['msg'] = $resp['msg']; // activate monitor $mon = array('user_id' => $userid, 'monitor_id' => $monitor_id); monitisClientApi::activateExternal($mon); } else { $result["status"] = 'error'; if (empty($response['error'])) { $result["msg"] = 'Unknown error / Monitis api server problem'; } else { $result["msg"] = $response['error']; } } } else { $result["status"] = 'error'; $result["msg"] = $resp['msg']; } } else { $result["status"] = 'error'; $result["msg"] = 'Domain and dedicated IP fields are empty'; } return $result; }
static function addAllDefault($client_id, $server, $whmcs = null) { $response = array('ping' => array("status" => 'warning', "msg" => 'No autocreate'), 'agent' => array('status' => 'warning', 'msg' => 'The server does not have agent.'), 'internal_monitors' => array('drive' => array("status" => 'warning', "msg" => 'does not exist'))); $external = null; $internal = null; if ($whmcs) { $external = isset($whmcs['ext']) && $whmcs['ext'] ? $whmcs['ext'] : null; $internal = isset($whmcs['int']) && $whmcs['int'] ? $whmcs['int'] : null; } if (MonitisConf::$settings['ping']['autocreate'] > 0) { // || MonitisConf::$settings['ping']['autolink'] > 0 $response['ping'] = self::addDefaultPing($client_id, $server, $external); } $agents = MonitisApi::getAgent($server['hostname']); if ($agents && count($agents) > 0) { //$agents = $agents[0]; if (isset($agents[0]['status']) && $agents[0]['status'] == 'running') { $response['agent'] = array('status' => 'ok', 'msg' => ''); $resp = self::addDefaultAgents($client_id, $server, $internal, $agents); $response['internal_monitors']['cpu'] = $resp["cpu"]; $response['internal_monitors']['memory'] = $resp["memory"]; $oInt = new internalClass(); $agentInfo = $oInt->getAgentInfo($server['hostname']); if ($agentInfo) { $whmcs_drives = monitisWhmcsServer::intMonitorsByType($agentInfo['agentId'], 'drive'); $rep = $oInt->associateDrives($whmcs_drives, $agentInfo, $server['id']); $response['internal_monitors']["drive"] = $rep; } else { $response['internal_monitors']["drive"]["status"] = 'error'; $response['internal_monitors']["drive"]["msg"] = 'Agent error'; } } else { $response['agent']['msg'] = 'Agent stopped'; // link agent monitors } } monitisLog($response, 'addAllDefault - add All Default Monitors'); return $response; }