- Модуль: 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;
}