private function sendNewMasterUpMessage($newMasterServer, $snapURL = "", AbstractServerEvent $event)
{
$dbFarmRole = $newMasterServer->GetFarmRoleObject();
$servers = $dbFarmRole->GetServersByFilter(array('status' => array(SERVER_STATUS::INIT, SERVER_STATUS::RUNNING)));
if ($dbFarmRole->GetSetting(Scalr_Role_DbMsrBehavior::ROLE_NO_DATA_BUNDLE_FOR_SLAVES) == 1) {
//No need to send newMasterUp because there is no data bundle from which slave can start
}
foreach ($servers as $dbServer) {
if (!$dbServer->isScalarized) {
continue;
}
$msg = new Scalr_Messaging_Msg_Mysql_NewMasterUp($snapURL);
$msg->setServerMetaData($newMasterServer);
$msg = Scalr_Scripting_Manager::extendMessage($msg, $event, $newMasterServer, $dbServer);
$msg->replPassword = $dbFarmRole->GetSetting(Entity\FarmRoleSetting::MYSQL_REPL_PASSWORD);
$msg->rootPassword = $dbFarmRole->GetSetting(Entity\FarmRoleSetting::MYSQL_ROOT_PASSWORD);
if ($newMasterServer->isOpenstack()) {
$msg->logPos = $dbFarmRole->GetSetting(Entity\FarmRoleSetting::MYSQL_LOG_POS);
$msg->logFile = $dbFarmRole->GetSetting(Entity\FarmRoleSetting::MYSQL_LOG_FILE);
$snapshot = Scalr_Storage_Snapshot::init();
try {
$snapshot->loadById($dbFarmRole->GetSetting(Entity\FarmRoleSetting::MYSQL_SCALR_SNAPSHOT_ID));
$msg->snapshotConfig = $snapshot->getConfig();
} catch (Exception $e) {
$this->Logger->error(new FarmLogMessage($event->DBServer, "Cannot get snaphotConfig for newMysqlMasterUp message: {$e->getMessage()}"));
}
}
$dbServer->SendMessage($msg, false, true);
}
}