/**
* Handle message from scalarizr
*
* @param Scalr_Messaging_Msg $message
* @param DBServer $dbServer
*/
public function handleMessage(Scalr_Messaging_Msg $message, DBServer $dbServer)
{
switch (get_class($message)) {
case "Scalr_Messaging_Msg_HostUpdate":
if ($message->base->apiPort) {
$currentApiPort = $dbServer->getPort(DBServer::PORT_API);
$this->logger->warn(new FarmLogMessage($dbServer->farmId, "Scalarizr API port was changed from {$currentApiPort} to {$message->base->apiPort}", $dbServer->serverId));
$dbServer->SetProperty(SERVER_PROPERTIES::SZR_API_PORT, $message->base->apiPort);
}
if ($message->base->messagingPort) {
$currentCtrlPort = $dbServer->getPort(DBServer::PORT_CTRL);
$this->logger->warn(new FarmLogMessage($dbServer->farmId, "Scalarizr CTRL port was changed from {$currentCtrlPort} to {$message->base->messagingPort}", $dbServer->serverId));
$dbServer->SetProperty(SERVER_PROPERTIES::SZR_CTRL_PORT, $message->base->messagingPort);
}
break;
case "Scalr_Messaging_Msg_HostUp":
try {
if (!empty($message->volumes) && $dbServer->farmRoleId) {
$storage = new FarmRoleStorage($dbServer->GetFarmRoleObject());
$storage->setVolumes($dbServer, $message->volumes);
}
} catch (Exception $e) {
$this->logger->error(new FarmLogMessage($dbServer->farmId, "Error in role message handler: {$e->getMessage()}", $dbServer->serverId));
}
if (isset($message->base) && isset($message->base->hostname)) {
$dbServer->SetProperty(self::SERVER_BASE_HOSTNAME, $message->base->hostname);
}
break;
}
}