Scalr\Modules\Platforms\Ec2\Observers\EbsObserver::OnHostUp PHP Метод

OnHostUp() публичный Метод

См. также: Scalr\Observer\AbstractEventObserver::OnHostUp()
public OnHostUp ( HostUpEvent $event )
$event HostUpEvent
    public function OnHostUp(\HostUpEvent $event)
    {
        if ($event->DBServer->platform != \SERVER_PLATFORMS::EC2) {
            return;
        }
        // Scalarizr will attach and mount volumes by itself
        if ($event->DBServer->IsSupported("0.7.36")) {
            return;
        }
        $volumes = $this->DB->GetAll("SELECT volume_id FROM ec2_ebs WHERE farm_roleid=? AND server_index=?", array($event->DBServer->farmRoleId, $event->DBServer->index));
        $this->Logger->info(new FarmLogMessage(!empty($this->FarmID) ? $this->FarmID : null, sprintf(_("Found %s volumes for server: %s"), count($volumes), $event->DBServer->serverId), !empty($event->DBServer->serverId) ? $event->DBServer->serverId : null, !empty($event->DBServer->envId) ? $event->DBServer->envId : null, !empty($event->DBServer->farmRoleId) ? $event->DBServer->farmRoleId : null));
        foreach ($volumes as $volume) {
            if ($volume['volume_id']) {
                $this->Logger->info(new FarmLogMessage(!empty($this->FarmID) ? $this->FarmID : null, sprintf(_("Preparing volume #%s for attaching to server: %s."), $volume['volume_id'], $event->DBServer->serverId), !empty($event->DBServer->serverId) ? $event->DBServer->serverId : null, !empty($event->DBServer->envId) ? $event->DBServer->envId : null, !empty($event->DBServer->farmRoleId) ? $event->DBServer->farmRoleId : null));
                try {
                    $DBEBSVolume = \DBEBSVolume::loadByVolumeId($volume['volume_id']);
                    $DBEBSVolume->serverId = $event->DBServer->serverId;
                    $DBEBSVolume->attachmentStatus = \EC2_EBS_ATTACH_STATUS::ATTACHING;
                    $DBEBSVolume->mountStatus = $DBEBSVolume->mount ? \EC2_EBS_MOUNT_STATUS::AWAITING_ATTACHMENT : \EC2_EBS_MOUNT_STATUS::NOT_MOUNTED;
                    $DBEBSVolume->save();
                } catch (\Exception $e) {
                    $this->Logger->fatal($e->getMessage());
                }
            }
        }
    }