• Модуль: scale
  • Путь к файлу: ~/bitrix/modules/scale/lib/actionmodifyer.php
  • Класс: BitrixScaleActionModifyer
  • Вызов: ActionModifyer::mysqlAddSlave
static function mysqlAddSlave($actionId, $actionParams, $hostname, $userParamsValues)
{
	$action =  new Action("MYSQL_ADD_SLAVE_MODIFYER", array(
			"START_COMMAND_TEMPLATE" => "sudo -u root /opt/webdir/bin/bx-mysql -a options -o json",
			"LOG_LEVEL" => Logger::LOG_LEVEL_DISABLE
		),
		"",
		array()
	);

	$action->start();
	$actRes = $action->getResult();

	$needModeInfo = false;

	if(isset($actRes["MYSQL_ADD_SLAVE_MODIFYER"]["OUTPUT"]["DATA"]["params"]["options"])
		&& is_array($actRes["MYSQL_ADD_SLAVE_MODIFYER"]["OUTPUT"]["DATA"]["params"]["options"])
	)
	{
		foreach($actRes["MYSQL_ADD_SLAVE_MODIFYER"]["OUTPUT"]["DATA"]["params"]["options"] as $option)
		{
			if($option == "cluster_password" || $option == "replica_password")
			{
				$actionParams["START_COMMAND_TEMPLATE"] .=" --".$option."=".BitrixScaleHelper::generatePass();
			}
			elseif($option == "mysql_password")
			{
				$actionParams["START_COMMAND_TEMPLATE"] .=" --".$option."=##USER_PARAMS:MYSQL_PASS##";

				if(!isset($actionParams["USER_PARAMS"]))
					$actionParams["USER_PARAMS"] = array();

				$actionParams["USER_PARAMS"]["MYSQL_PASS"] = array(
						"NAME" => Loc::getMessage("SCALE_AM_MYAR_MYSQL_PASS"),
						"TYPE" => "PASSWORD",
						"REQUIRED" => "Y",
						"VERIFY_TWICE" => "Y"
				);

				$needModeInfo = true;
			}
		}

		if($needModeInfo)
			throw new NeedMoreUserInfoException("Need more user's info", $actionParams);
	}

	return $actionParams;
}