• Модуль: scale
  • Путь к файлу: ~/bitrix/modules/scale/lib/serversdata.php
  • Класс: BitrixScaleServersData
  • Вызов: ServersData::getList
static function getList()
{
	$result = array();
	$shellAdapter = new ShellAdapter();
	$execRes = $shellAdapter->syncExec("sudo -u root /opt/webdir/bin/wrapper_ansible_conf -o json");
	$serversData = $shellAdapter->getLastOutput();

	if($execRes)
	{
		$arData = json_decode($serversData, true);

		//mgmt server must be first
		if(isset($arData["params"]) && is_array($arData["params"]))
		{
			foreach($arData["params"] as $hostname => $server)
			{
				try
				{
					$server["BX_ENV_VER"] = static::getBxEnvVer($hostname);
					$bxInfo = static::getBxInfo($hostname);
					$server["BX_INFO"] = $bxInfo;

					if(isset($bxInfo["bx_last_password_change"]))
						$server["LAST_PASSWORD_CHANGE"] = $bxInfo["bx_last_password_change"];

					if(!$server["BX_ENV_VER"] || !Helper::checkBxEnvVersion($server["BX_ENV_VER"]))
						$server["BX_ENV_NEED_UPDATE"] = true;
					else
						$server["BX_ENV_NEED_UPDATE"] = false;

				}
				catch(ServerBxInfoException $e)
				{
					$server["BX_INFO_ERROR"] = $e->getMessage();
				}

				$result[$hostname] = $server;
			}

			sortByColumn($result, array( "host_id" => array(SORT_NUMERIC, SORT_ASC)));
		}
	}

	return $result;
}