Example #1
0
 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');
         }
     }
 }
Example #2
0
 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');
         }
     }
 }
Example #3
0
 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;
 }
Example #4
0
 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;
 }