Пример #1
0
                        for ($i = 0; $i < count($serverInfo['agent']['drive']); $i++) {
                            if (isset($serverInfo['agent']['drive'][$i]['letter']) && $serverInfo['agent']['drive'][$i]['letter'] === $driveLetter) {
                                $serverInfo['agent']['drive'][$i] = $serverMonitors->getMonitor($monitorId, 'drive');
                            }
                        }
                    } else {
                        MonitisApp::addError($resp['error']);
                    }
                }
            } else {
                $params = array('agentkey' => $agentKey, 'driveLetter' => $driveLetter, 'freeLimit' => $freeLimit, 'name' => 'drive_' . $driveLetter . '@' . $serverInfo['hostname'], 'tag' => $serverInfo['hostname'] . '_whmcs');
                $resp = MonitisApi::addDriveMonitor($params);
                if ($resp) {
                    if ($resp['status'] == 'ok') {
                        $newID = $resp['data']['testId'];
                        $pubKey = MonitisApi::monitorPublicKey(array('moduleType' => 'drive', 'monitorId' => $newID));
                        $values = array('server_id' => $serverInfo['id'], 'available' => MonitisConf::$settings['drive']['available'], 'agent_id' => $agentId, 'monitor_id' => $newID, 'monitor_type' => 'drive', 'client_id' => MONITIS_CLIENT_ID, 'publickey' => $pubKey);
                        insert_query('mod_monitis_int_monitors', $values);
                        MonitisApp::addMessage('Drive Monitor successfully added');
                        for ($i = 0; $i < count($serverInfo['agent']['drive']); $i++) {
                            if (isset($serverInfo['agent']['drive'][$i]['driveLetter']) && $serverInfo['agent']['drive'][$i]['driveLetter'] === $driveLetter) {
                                $serverInfo['agent']['drive'][$i] = $serverMonitors->getMonitor($resp['data']['testId'], 'drive');
                            }
                        }
                    } else {
                        MonitisApp::addError($resp['error']);
                    }
                }
            }
    }
}
Пример #2
0
 public function associateDrives($whmcsDrives, $agentInfo, $serverID)
 {
     $result = array("status" => "warning", "msg" => "No agent or agent is stopped");
     if ($agentInfo && isset($agentInfo['drives'])) {
         $agentId = $agentInfo['agentId'];
         $monDrives = $agentInfo['drives'];
         $whmcs_drives = null;
         if ($whmcsDrives) {
             $whmcs_drives = array();
             for ($i = 0; $i < count($whmcsDrives); $i++) {
                 $mon = MonitisHelper::in_array($monDrives, 'id', $whmcsDrives[$i]['monitor_id']);
                 if ($mon) {
                     $whmcs_drives[] = $whmcsDrives[$i];
                 } else {
                     monitisSqlHelper::altQuery('DELETE FROM ' . MONITIS_INTERNAL_TABLE . ' WHERE monitor_id=' . $whmcsDrives[$i]['monitor_id']);
                 }
             }
         }
         $ids = array();
         for ($i = 0; $i < count($monDrives); $i++) {
             $drive = $monDrives[$i];
             if (isset($drive['id'])) {
                 if (!$whmcs_drives || !MonitisHelper::in_array($whmcs_drives, 'monitor_id', $drive['id'])) {
                     $ids[] = $drive['id'];
                 }
             }
         }
         $cnt = count($ids);
         if ($ids && $cnt > 0) {
             for ($i = 0; $i < $cnt; $i++) {
                 $monitorID = $ids[$i];
                 $pubKey = MonitisApi::monitorPublicKey(array('moduleType' => 'drive', 'monitorId' => $monitorID));
                 $values = array('server_id' => $serverID, 'available' => MonitisConf::$settings['drive']['available'], 'agent_id' => $agentId, 'monitor_id' => $monitorID, 'monitor_type' => 'drive', 'client_id' => MONITIS_CLIENT_ID, "publickey" => $pubKey);
                 insert_query('mod_monitis_int_monitors', $values);
             }
             $result["status"] = 'ok';
             $result["msg"] = 'Add ' . $cnt . ' drive(s)';
         } else {
             $result["status"] = 'warning';
             $result["msg"] = 'No drive monitor for add';
         }
     }
     return $result;
 }
Пример #3
0
 static function addDefaultPing($client_id, $server, $external)
 {
     $url = $server['ipaddress'];
     $name = $server['hostname'];
     $result = array('status' => 'error', 'msg' => 'Empty hostname or ip address ');
     if (empty($url) || empty($name)) {
         return $result;
     }
     $locationIDs = array_map("intval", MonitisConf::$settings['ping']['locationIds']);
     $monParams = array('type' => 'ping', 'name' => $name . '_ping', 'url' => $url, 'interval' => MonitisConf::$settings['ping']['interval'], 'timeout' => MonitisConf::$settings['ping']['timeout'], 'locationIds' => implode(',', $locationIDs), 'tag' => $name . '_whmcs');
     $resp = MonitisApi::createExternalPing($monParams);
     if (isset($resp['data']) && isset($resp['data']['testId'])) {
         $newID = $resp['data']['testId'];
         if ($external && self::isWhmcsMonitor('monitor_id', $newID, $external)) {
             $result["status"] = 'warning';
             $result["msg"] = 'Ping monitor already exists';
         } else {
             $pubKey = MonitisApi::monitorPublicKey(array('moduleType' => 'external', 'monitorId' => $newID));
             $values = array("server_id" => $server['id'], "available" => MonitisConf::$settings['ping']['available'], "monitor_id" => $newID, "monitor_type" => "ping", "client_id" => $client_id, "publickey" => $pubKey);
             @insert_query('mod_monitis_ext_monitors', $values);
             $result["status"] = 'ok';
             $result["msg"] = 'Ping monitor created successfully';
         }
     } else {
         $result["status"] = 'error';
         $result["msg"] = $resp["error"];
     }
     return $result;
 }