Scalr\Observer\MessagingEventObserver::OnHostUp PHP Method

OnHostUp() public method

See also: Scalr\Observer\AbstractEventObserver::OnHostUp()
public OnHostUp ( HostUpEvent $event )
$event HostUpEvent
    public function OnHostUp(HostUpEvent $event)
    {
        $servers = DBFarm::LoadByID($this->FarmID)->GetServersByFilter(['status' => [SERVER_STATUS::INIT, SERVER_STATUS::RUNNING]]);
        $event->msgExpected = count($servers);
        foreach ((array) $servers as $dbServer) {
            if (!$dbServer->isScalarized) {
                $event->msgExpected--;
                continue;
            }
            try {
                $msg = new Scalr_Messaging_Msg_HostUp();
                $msg->setServerMetaData($event->DBServer);
                $msg->roleName = $event->DBServer->GetFarmRoleObject()->GetRoleObject()->name;
                $msg = Scalr_Scripting_Manager::extendMessage($msg, $event, $event->DBServer, $dbServer);
                if ($event->DBServer->farmRoleId != 0) {
                    foreach (Scalr_Role_Behavior::getListForFarmRole($event->DBServer->GetFarmRoleObject()) as $behavior) {
                        $msg = $behavior->extendMessage($msg, $event->DBServer);
                    }
                }
                $msg = $dbServer->SendMessage($msg, false, true);
                if ($msg) {
                    $event->msgCreated++;
                } else {
                    throw new Exception("Empty MSG: {$dbServer->serverId} ({$event->DBServer->serverId})");
                }
            } catch (Exception $e) {
                \Scalr::getContainer()->logger(__CLASS__)->fatal("MessagingEventObserver::OnHostUp failed: {$e->getMessage()}");
            }
        }
        if ($event->DBServer->GetProperty(SERVER_PROPERTIES::DB_MYSQL_MASTER) == 1 && $event->DBServer->IsSupported("0.7")) {
            $this->sendNewMasterUpMessage($event->DBServer, "", $event);
        }
        if ($event->DBServer->GetProperty(Scalr_Db_Msr::REPLICATION_MASTER) == 1) {
            $this->sendNewDbMsrMasterUpMessage($event->DBServer, $event);
        }
    }