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