%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/modules/bitrixcloud/classes/general/ |
Current File : //home/bitrix/www/bitrix/modules/bitrixcloud/classes/general/monitoring_webservice.php |
<?php IncludeModuleLangFile(__FILE__); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/update_client.php"); class CBitrixCloudMonitoringWebService extends CBitrixCloudWebService { private $addParams = array(); private $addStr = ""; /** * Returns URL to backup webservice * * @param array[string]string $arParams * @return string * */ protected function getActionURL($arParams = /*.(array[string]string).*/ array()) { $arParams["license"] = md5(LICENSE_KEY); $arParams["spd"] = CUpdateClient::getSpd(); $arParams["CHHB"] = $_SERVER["HTTP_HOST"]; $arParams["CSAB"] = $_SERVER["SERVER_ADDR"]; foreach($this->addParams as $key => $value) $arParams[$key] = $value; $url = COption::GetOptionString("bitrixcloud", "monitoring_policy_url"); $url = CHTTP::urlAddParams($url, $arParams, array( "encode" => true, )).$this->addStr; return $url; } /** * Returns action response XML and check CRC * * @param string $action * @return CDataXML * @throws CBitrixCloudException */ protected function monitoring_action($action) { $obXML = $this->action($action); $node = $obXML->SelectNodes("/control"); if (is_object($node)) { $spd = $node->getAttribute("crc_code"); if(strlen($spd) > 0) CUpdateClient::setSpd($spd); } else { throw new CBitrixCloudException(GetMessage("BCL_MON_WS_SERVER", array( "#STATUS#" => "-1", )), $this->getServerResult()); } return $obXML; } /** * * @return CDataXML * @throws CBitrixCloudException */ public function actionGetList() { $this->addStr = ""; $this->addParams = array( "lang" => LANGUAGE_ID, ); return $this->monitoring_action("monitoring_get_list"); } /** * * @return CDataXML * @throws CBitrixCloudException */ public function actionStart($domain, $is_https, $language_id, $emails, $tests) { $this->addStr = ""; $this->addParams = array( "domain" => $domain, "domain_is_https" => $is_https? "Y": "N", "lang" => $language_id, ); if (is_array($emails)) { foreach($emails as $email) { $email = trim($email); if (strlen($email) > 0) $this->addStr .= "&ar_emails[]=".urlencode($email); } } if (is_array($tests)) { foreach($tests as $test) { $test = trim($test); if (strlen($test) > 0) $this->addStr .= "&ar_tests[]=".urlencode($test); } } $option = CBitrixCloudOption::getOption('monitoring_devices'); $devices = $option->getArrayValue(); foreach($devices as $domain_device) { if (list ($myDomain, $myDevice) = explode("|", $domain_device, 2)) { if ($myDomain === $domain) $this->addStr .= "&ar_devices[]=".urlencode($myDevice); } } $this->monitoring_action("monitoring_start"); } /** * * @return CDataXML * @throws CBitrixCloudException */ public function actionStop($domain) { $this->addStr = ""; $this->addParams = array( "domain" => $domain, "lang" => LANGUAGE_ID, ); return $this->monitoring_action("monitoring_stop"); } /** * * @return CDataXML * @throws CBitrixCloudException */ public function actionGetInfo() { $this->addStr = ""; $this->addParams = array( "lang" => LANGUAGE_ID, "interval" => COption::GetOptionString("bitrixcloud", "monitoring_interval"), ); return $this->monitoring_action("monitoring_get_info"); } }