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();
}
}
}