Scalr\Modules\Platforms\Ec2\Observers\EbsObserver::OnHostInit PHP 메소드

OnHostInit() 공개 메소드

또한 보기: Scalr\Observer\AbstractEventObserver::OnHostInit()
public OnHostInit ( HostInitEvent $event )
$event HostInitEvent
    public function OnHostInit(\HostInitEvent $event)
    {
        if ($event->DBServer->platform != \SERVER_PLATFORMS::EC2) {
            return;
        }
        $DBFarmRole = $event->DBServer->GetFarmRoleObject();
        if ($DBFarmRole->GetSetting(Entity\FarmRoleSetting::AWS_USE_EBS)) {
            if (!$this->DB->GetOne("\n                    SELECT id FROM ec2_ebs\n                    WHERE farm_roleid=? AND server_index=? AND ismanual='0'\n                    LIMIT 1\n                ", array($event->DBServer->farmRoleId, $event->DBServer->index))) {
                if (in_array($DBFarmRole->GetSetting(Entity\FarmRoleSetting::AWS_EBS_TYPE), [CreateVolumeRequestData::VOLUME_TYPE_IO1, CreateVolumeRequestData::VOLUME_TYPE_STANDARD, CreateVolumeRequestData::VOLUME_TYPE_GP2, CreateVolumeRequestData::VOLUME_TYPE_ST1, CreateVolumeRequestData::VOLUME_TYPE_SC1])) {
                    $type = $DBFarmRole->GetSetting(Entity\FarmRoleSetting::AWS_EBS_TYPE);
                } else {
                    $type = 'standard';
                }
                $DBEBSVolume = new \DBEBSVolume();
                $DBEBSVolume->attachmentStatus = \EC2_EBS_ATTACH_STATUS::CREATING;
                $DBEBSVolume->isManual = 0;
                $DBEBSVolume->ec2AvailZone = $DBFarmRole->GetSetting(Entity\FarmRoleSetting::AWS_AVAIL_ZONE);
                $DBEBSVolume->ec2Region = $event->DBServer->GetProperty(\EC2_SERVER_PROPERTIES::REGION);
                $DBEBSVolume->farmId = $DBFarmRole->FarmID;
                $DBEBSVolume->farmRoleId = $DBFarmRole->ID;
                $DBEBSVolume->serverId = $event->DBServer->serverId;
                $DBEBSVolume->serverIndex = $event->DBServer->index;
                $DBEBSVolume->size = $DBFarmRole->GetSetting(Entity\FarmRoleSetting::AWS_EBS_SIZE);
                $DBEBSVolume->type = $type;
                $DBEBSVolume->iops = $DBFarmRole->GetSetting(Entity\FarmRoleSetting::AWS_EBS_IOPS);
                $DBEBSVolume->snapId = $DBFarmRole->GetSetting(Entity\FarmRoleSetting::AWS_EBS_SNAPID);
                $DBEBSVolume->isFsExists = $DBFarmRole->GetSetting(Entity\FarmRoleSetting::AWS_EBS_SNAPID) ? 1 : 0;
                $DBEBSVolume->mount = $DBFarmRole->GetSetting(Entity\FarmRoleSetting::AWS_EBS_MOUNT);
                $DBEBSVolume->mountPoint = $DBFarmRole->GetSetting(Entity\FarmRoleSetting::AWS_EBS_MOUNTPOINT);
                $DBEBSVolume->mountStatus = $DBFarmRole->GetSetting(Entity\FarmRoleSetting::AWS_EBS_MOUNT) ? \EC2_EBS_MOUNT_STATUS::AWAITING_ATTACHMENT : \EC2_EBS_MOUNT_STATUS::NOT_MOUNTED;
                $DBEBSVolume->clientId = $event->DBServer->GetFarmObject()->ClientID;
                $DBEBSVolume->envId = $event->DBServer->envId;
                $DBEBSVolume->Save();
            }
        }
    }