• Модуль: cluster
  • Путь к файлу: ~/bitrix/modules/cluster/classes/general/dbnode.php
  • Класс: CAllClusterDBNode
  • Вызов: CAllClusterDBNode::getServerList
static function getServerList()
{
	global $DB;
	$result = array();
	$rsData = $DB->Query("
		SELECT ID, GROUP_ID, ROLE_ID, DB_HOST
		FROM b_cluster_dbnode
		ORDER BY GROUP_ID, ID
	");
	while ($arData = $rsData->Fetch())
	{
		if ($arData["ROLE_ID"] == "SLAVE" || $arData["ROLE_ID"] == "MASTER")
			$edit_url = "/bitrix/admin/cluster_slave_edit.php?lang=".LANGUAGE_ID."&group_id=".$arData["GROUP_ID"]."&ID=".$arData["ID"];
		elseif ($arData["ROLE_ID"] == "MODULE")
			$edit_url = "/bitrix/admin/cluster_dbnode_edit.php?lang=".LANGUAGE_ID."&ID=".$arData["ID"];
		else
			$edit_url = "";

		$host = "";
		$match = array();
		if (
			preg_match("/\(\s*HOST\s*=\s*([^)]+)\)/i", $arData["DB_HOST"], $match)
			|| preg_match("/^([^:]+)(:|)/", $arData["DB_HOST"], $match)
		)
		{
			if ($match[1] !== 'localhost' && $match[1] !== '127.0.0.1')
				$host = $arData["DB_HOST"];
		}

		$result[] = array(
			"ID" => $arData["ID"],
			"GROUP_ID" => $arData["GROUP_ID"],
			"SERVER_TYPE" => "database",
			"ROLE_ID" => $arData["ROLE_ID"],
			"HOST" => $arData["DB_HOST"],
			"DEDICATED" => $host == ""? "N": "Y",
			"EDIT_URL" => $edit_url,
		);
	}
	return $result;
}