Пример #1
0
 function AdjustServerID($arNode, $nodeDB)
 {
     $rs = $nodeDB->Query("show variables like 'server_id'", false, '', array("fixed_connection" => true));
     if ($ar = $rs->Fetch()) {
         if ($ar["Value"] != $arNode["SERVER_ID"]) {
             $ob = new CClusterDBNode();
             $ob->Update($arNode["ID"], array("SERVER_ID" => $ar["Value"]));
         }
     }
 }
Пример #2
0
            } elseif (strlen($last_id)) {
                $DB->Query("\n\t\t\t\t\tUPDATE b_cluster_table\n\t\t\t\t\tSET LAST_ID = " . $last_id . "\n\t\t\t\t\t,REC_COUNT = " . $i . "\n\t\t\t\t\tWHERE ID = '" . $arTable["ID"] . "'\n\t\t\t\t", false, '', array("fixed_connection" => true));
            } else {
                $DB->Query("\n\t\t\t\t\tDELETE FROM b_cluster_table\n\t\t\t\t\tWHERE ID = '" . $arTable["ID"] . "'\n\t\t\t\t", false, '', array("fixed_connection" => true));
            }
        } else {
            if ($to_node_id > 1) {
                COption::SetOptionString($_REQUEST["module"], "dbnode_id", $to_node_id);
            } else {
                COption::SetOptionString($_REQUEST["module"], "dbnode_id", "N");
            }
            COption::SetOptionString($_REQUEST["module"], "dbnode_status", 'ok');
            CClusterDBNode::SetOnline($to_node_id);
            $ob = new CClusterDBNode();
            if ($from_node_id > 1) {
                $ob->Update($from_node_id, array("STATUS" => "READY"));
            }
        }
    } while (is_array($arTable) && time() < $end_time);
    if (is_array($arTable)) {
        echo GetMessage('CLUWIZ_TABLE_PROGRESS', array("#table_name#" => $arTable["TABLE_NAME"], "#records#" => $i));
        echo "<script>MoveTables(2)</script>";
    } else {
        if ($_REQUEST["status"] == "READY") {
            echo GetMessage("CLUWIZ_ALL_DONE1");
        } else {
            echo GetMessage("CLUWIZ_ALL_DONE2");
        }
        echo '<script>EnableButton();</script>';
    }
}
        $strFatalError = GetMessage("CLU_DBNODE_EDIT_ERROR");
    } elseif ($arNode["ROLE_ID"] == "SLAVE") {
        $strFatalError = GetMessage("CLU_DBNODE_EDIT_ERROR");
    }
}
if ($strFatalError) {
    require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php";
    ShowError($strFatalError);
    require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_admin.php";
}
if ($REQUEST_METHOD == "POST" && check_bitrix_sessid()) {
    if ($save != "" || $apply != "") {
        $ob = new CClusterDBNode();
        $arFields = array("ACTIVE" => $_POST["ACTIVE"], "SORT" => $_POST["SORT"], "NAME" => $_POST["NAME"], "DB_HOST" => $_POST["DB_HOST"], "DB_NAME" => $_POST["DB_NAME"], "DB_LOGIN" => $_POST["DB_LOGIN"], "DB_PASSWORD" => $_POST["DB_PASSWORD"], "DESCRIPTION" => $_POST["DESCRIPTION"]);
        if ($ID > 0) {
            $res = $ob->Update($ID, $arFields);
        } else {
            $arFields["ROLE_ID"] = "MODULE";
            $arFields["STATUS"] = "READY";
            $arFields["GROUP_ID"] = $group_id;
            $res = $ID = $ob->Add($arFields);
        }
        if ($res) {
            if ($apply != "") {
                LocalRedirect("/bitrix/admin/cluster_dbnode_edit.php?ID=" . $ID . "&lang=" . LANGUAGE_ID . "&" . $tabControl->ActiveTabParam() . '&group_id=' . $group_id);
            } else {
                LocalRedirect("/bitrix/admin/cluster_dbnode_list.php?lang=" . LANGUAGE_ID . '&group_id=' . $group_id);
            }
        } else {
            if ($e = $APPLICATION->GetException()) {
                $message = new CAdminMessage(GetMessage("CLU_DBNODE_EDIT_SAVE_ERROR"), $e);
Пример #4
0
 $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);