%PDF- %PDF-
Direktori : /proc/self/root/proc/self/root/etc/ansible/roles/memcached/templates/ |
Current File : //proc/self/root/proc/self/root/etc/ansible/roles/memcached/templates/memcached_cluster_node.php.j2 |
<? // {{ ansible_managed }} // {{ memcached_server }} $_SERVER["DOCUMENT_ROOT"] = '{{ item.DocumentRoot }}'; $DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"]; define("NO_KEEP_STATISTIC", true); define("NOT_CHECK_PERMISSIONS",true); define('BX_NO_ACCELERATOR_RESET', true); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); if(!CModule::IncludeModule('cluster')) { // skip memcached registration if module cluster not installed echo "Not found cluster module for {{ item.SiteName }}"; return 0; }; // register variables for node $mcHost = "{{ inventory_hostname }}"; $mcStatus = "{{ memcached_status|default('ONLINE') }}"; $mcPort = "{{ memcached_port|default('11211') }}"; $mcWeight = 100; $groupId = 1; // return values $OK = array( 0, 'Ok' ); $ERR = array( 1, 'Error'); $dbNode = new CClusterDBNode; $rsNodes = $dbNode->GetList( array(), array( "=ROLE_ID" => array("MAIN"), "=MASTER_ID" => false, "=STATUS" => "ONLINE", ) ); if($arNode = $rsNodes->Fetch()) { $groupId = $arNode["GROUP_ID"]; } else { $returnResult = $ERR; echo "Can't find db master: ". $returnResult[1]; return $returnResult[0]; } // return values $OK = array( 0, 'Ok' ); $ERR = array( 1, 'Error'); $arMemcacheServers = CClusterMemcache::LoadConfig(); $arServer = false; if(is_array($arMemcacheServers)) { foreach($arMemcacheServers as $server) { if($server["HOST"] == $mcHost && $server["PORT"] == $mcPort) { $arServer = $server; } } } $ob = new CClusterMemcache; $arFields = array( "GROUP_ID" => $groupId, "HOST" => $mcHost, "PORT" => $mcPort, "WEIGHT" => $mcWeight, ); if(is_array($arServer)) { if ($mcStatus == "OFFLINE") { $res = $ob->Pause($arServer["ID"]); } else { $res = $ob->Update($arServer["ID"], $arFields); if(intval($res) > 0) $ob->Resume($res); } } else { $res = $ob->Add($arFields); if(intval($res) > 0) $ob->Resume($res); } $returnResult = intval($res)>0 ? $OK : $ERR; echo "Update claster memcached node: ". $returnResult[1]; return $returnResult[0]; ?>