%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/modules/cluster/admin/ |
Current File : /home/bitrix/www/bitrix/modules/cluster/admin/cluster_dbnode_list.php |
<? require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php"); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/cluster/prolog.php"); IncludeModuleLangFile(__FILE__); if(!$USER->IsAdmin()) $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); $sTableID = "tbl_cluster_dbnode_list"; $oSort = new CAdminSorting($sTableID, "ID", "ASC"); $lAdmin = new CAdminList($sTableID, $oSort); if($arID = $lAdmin->GroupAction()) { foreach($arID as $ID) { if(strlen($ID)<=0) continue; $ID = IntVal($ID); switch($_REQUEST['action']) { case "delete": $arNode = CClusterDBNode::GetByID($ID); if( is_array($arNode) && $arNode["ROLE_ID"] == "MODULE" && $arNode["STATUS"] == "READY" ) CClusterDBNode::Delete($arNode["ID"]); break; } } } $arHeaders = array( array( "id" => "ID", "content" => GetMessage("CLU_DBNODE_LIST_ID"), "align" => "right", "default" => true, ), array( "id" => "FLAG", "content" => GetMessage("CLU_DBNODE_LIST_FLAG"), "align" => "center", "default" => true, ), array( "id" => "ACTIVE", "content" => GetMessage("CLU_DBNODE_LIST_ACTIVE"), "align" => "center", "default" => true, ), array( "id" => "STATUS", "content" => GetMessage("CLU_DBNODE_LIST_STATUS"), "align" => "center", "default" => true, ), array( "id" => "NAME", "content" => GetMessage("CLU_DBNODE_LIST_NAME"), "align" => "left", "default" => true, ), array( "id" => "MODULES", "content" => GetMessage("CLU_DBNODE_LIST_MODULES"), "align" => "left", "default" => true, ), array( "id" => "DESCRIPTION", "content" => GetMessage("CLU_DBNODE_LIST_DESCRIPTION"), "align" => "left", "default" => false, ), array( "id" => "DB_HOST", "content" => GetMessage("CLU_DBNODE_LIST_DB_HOST"), "align" => "left", "default" => false, ), array( "id" => "DB_NAME", "content" => GetMessage("CLU_DBNODE_LIST_DB_NAME"), "align" => "left", "default" => false, ), array( "id" => "DB_LOGIN", "content" => GetMessage("CLU_DBNODE_LIST_DB_LOGIN"), "align" => "left", "default" => false, ), ); $lAdmin->AddHeaders($arHeaders); $strUptimeError = ""; $cData = new CClusterDBNode; $rsData = $cData->GetList( array(//Order "ID" => "ASC", ) ,array(//Filter "=ROLE_ID" => array("MAIN", "MODULE"), "=MASTER_ID" => false, ) ); $rsData = new CAdminResult($rsData, $sTableID); while($arRes = $rsData->Fetch()): $row =& $lAdmin->AddRow($arRes["ID"], $arRes); $uptime = CClusterDBNode::GetUpTime($arRes["ID"]); $arModules = CClusterDBNode::GetModules($arRes["ID"]); if($arRes["ACTIVE"] == "Y") { if($arRes["STATUS"] == "OFFLINE" && $uptime !== false) { CClusterDBNode::SetOnline($arRes["ID"]); $arRes["STATUS"] = "ONLINE"; } elseif($arRes["STATUS"] == "ONLINE" && count($arModules) <= 0 && $arRes["ROLE_ID"] == "MODULE") { $ob = new CClusterDBNode; $ob->Update($arRes["ID"], array("STATUS"=>"READY")); $arRes["STATUS"] = "READY"; } elseif($arRes["STATUS"] == "READY" && count($arModules) > 0) { $ob = new CClusterDBNode; $ob->Update($arRes["ID"], array("STATUS"=>"ONLINE")); $arRes["STATUS"] = "ONLINE"; } elseif($arRes["STATUS"] == "READY" && $arRes["ROLE_ID"] == "MAIN") { $ob = new CClusterDBNode; $ob->Update($arRes["ID"], array("STATUS"=>"ONLINE")); $arRes["STATUS"] = "ONLINE"; } } if($arRes["ID"] > 1) $row->AddViewField("ID", '<a href="cluster_dbnode_edit.php?lang='.LANGUAGE_ID.'&ID='.$arRes["ID"].'">'.$arRes["ID"].'</a>'); if($arRes["ACTIVE"] == "Y" && $arRes["STATUS"] == "ONLINE") $htmlFLAG = '<div class="lamp-green"></div>'; else $htmlFLAG = '<div class="lamp-red"></div>'; if($uptime === false) $htmlFLAG .= GetMessage("CLU_DBNODE_NOCONNECTION"); elseif($uptime > 0) $htmlFLAG .= GetMessage("CLU_DBNODE_UPTIME")."<br>".FormatDate(array( "s" => "sdiff", "i" => "idiff", "H" => "Hdiff", "" => "ddiff", ), time()-$uptime); else { $strUptimeError = $uptime; $htmlFLAG .= GetMessage("CLU_DBNODE_UPTIME")."<br>".GetMessage("CLU_DBNODE_UPTIME_UNKNOWN").'<span class="required"><sup>1</sup></span>'; } $row->AddViewField("FLAG", $htmlFLAG); if($arRes["ACTIVE"] == "Y") $row->AddViewField("ACTIVE", GetMessage("MAIN_YES")); else $row->AddViewField("ACTIVE", GetMessage("MAIN_NO")); $row->AddViewField("MODULES", implode("<br>", $arModules)); $arActions = array(); if($arRes["ROLE_ID"] == "MODULE") { $arActions[] = array( "ICON" => "edit", "DEFAULT" => true, "TEXT" => GetMessage("CLU_DBNODE_LIST_EDIT"), "ACTION" => $lAdmin->ActionRedirect('cluster_dbnode_edit.php?lang='.LANGUAGE_ID.'&ID='.$arRes["ID"]) ); } if($arRes["ROLE_ID"] == "MODULE") { if($arRes["STATUS"] == "READY") { if($DB->type == "MYSQL") $arActions[] = array( "TEXT" => GetMessage("CLU_DBNODE_LIST_START_USING_DB"), "ACTION" => "javascript:WizardWindow.Open('bitrix:cluster.module_move','".bitrix_sessid()."&__wiz_node_id=".$arRes["ID"]."&__wiz_status=".$arRes["STATUS"]."')", ); $arActions[] = array( "ICON"=>"delete", "TEXT"=>GetMessage("CLU_DBNODE_LIST_DELETE"), "ACTION"=>"if(confirm('".GetMessage("CLU_DBNODE_LIST_DELETE_CONF")."')) ".$lAdmin->ActionDoGroup($arRes["ID"], "delete") ); } elseif($arRes["STATUS"] == "ONLINE") { if($DB->type == "MYSQL") $arActions[] = array( "TEXT" => GetMessage("CLU_DBNODE_LIST_STOP_USING_DB"), "ACTION" => "javascript:WizardWindow.Open('bitrix:cluster.module_move','".bitrix_sessid()."&__wiz_node_id=".$arRes["ID"]."&__wiz_status=".$arRes["STATUS"]."')", ); } } if(!empty($arActions)) $row->AddActions($arActions); endwhile; if($strUptimeError) { $lAdmin->BeginEpilogContent(); echo BeginNote(), '<span class="required"><sup>1</sup></span>', $strUptimeError, EndNote(); $lAdmin->EndEpilogContent(); } $lAdmin->AddFooter( array( array( "title" => GetMessage("MAIN_ADMIN_LIST_SELECTED"), "value"=>$rsData->SelectedRowsCount(), ), array( "counter"=>true, "title"=>GetMessage("MAIN_ADMIN_LIST_CHECKED"), "value"=>"0", ), ) ); if($DB->type == "MYSQL") { $link = "javascript:WizardWindow.Open('bitrix:cluster.dbnode_add','".bitrix_sessid()."')"; $title = GetMessage("CLU_DBNODE_LIST_ADD_TITLE1"); } else { $link = "/bitrix/admin/cluster_dbnode_edit.php?lang=".LANGUAGE_ID; $title = GetMessage("CLU_DBNODE_LIST_ADD_TITLE2"); } $aContext = array( array( "TEXT" => GetMessage("CLU_DBNODE_LIST_ADD"), "LINK" => $link, "TITLE" => $title, "ICON" => "btn_new", ), array( "TEXT" => GetMessage("CLU_DBNODE_LIST_REFRESH"), "LINK" => "cluster_dbnode_list.php?lang=".LANGUAGE_ID, ), ); $lAdmin->AddAdminContextMenu($aContext, /*$bShowExcel=*/false); $lAdmin->CheckListMode(); $APPLICATION->SetTitle(GetMessage("CLU_DBNODE_LIST_TITLE")); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); if($message) echo $message->Show(); $lAdmin->DisplayList(); $htmlModules = '<ul style="font-size:100%">'; foreach(GetModuleEvents("cluster", "OnGetTableList", true) as $arEvent) { $ar = ExecuteModuleEventEx($arEvent); if(is_array($ar)) $htmlModules .= '<li>'.$ar["MODULE"]->MODULE_NAME; } $htmlModules .= '</ul>'; echo BeginNote(), GetMessage("CLU_DBNODE_LIST_NOTE1"), $htmlModules, GetMessage("CLU_DBNODE_LIST_NOTE2"), EndNote(); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php"); ?>