public SnapshotCreationComplete ( $snapshotId, $metaData = [] ) |
public function CheckServerSnapshotStatus(BundleTask $BundleTask) { $DBServer = DBServer::LoadByID($BundleTask->serverId); $RDSClient = $this->getRdsClient($DBServer->GetEnvironmentObject(), $DBServer->GetProperty(RDS_SERVER_PROPERTIES::REGION)); try { $info = $RDSClient->DescribeDBSnapshots(null, $BundleTask->snapshotId); $info = $info->DescribeDBSnapshotsResult->DBSnapshots->DBSnapshot; if ($info->Status == 'available') { $BundleTask->SnapshotCreationComplete($BundleTask->snapshotId); } elseif ($info->Status == 'creating') { return; } else { Logger::getLogger(__CLASS__)->error("CheckServerSnapshotStatus ({$BundleTask->id}) status = {$info->Status}"); } } catch (Exception $e) { Logger::getLogger(__CLASS__)->fatal("CheckServerSnapshotStatus ({$BundleTask->id}): {$e->getMessage()}"); } }
public function CheckServerSnapshotStatus(BundleTask $BundleTask) { if ($BundleTask->bundleType == SERVER_SNAPSHOT_CREATION_TYPE::EC2_WIN2003) { } else { if (in_array($BundleTask->bundleType, array(SERVER_SNAPSHOT_CREATION_TYPE::EC2_EBS_HVM, SERVER_SNAPSHOT_CREATION_TYPE::EC2_WIN200X))) { try { $DBServer = DBServer::LoadByID($BundleTask->serverId); $EC2Client = Scalr_Service_Cloud_Aws::newEc2($DBServer->GetProperty(EC2_SERVER_PROPERTIES::REGION), $DBServer->GetEnvironmentObject()->getPlatformConfigValue(self::PRIVATE_KEY), $DBServer->GetEnvironmentObject()->getPlatformConfigValue(self::CERTIFICATE)); $DescribeImagesType = new DescribeImagesType(); $DescribeImagesType->imagesSet->item[] = array("imageId" => $BundleTask->snapshotId); $ami_info = $EC2Client->DescribeImages($DescribeImagesType); $ami_info = $ami_info->imagesSet->item; $BundleTask->Log(sprintf("Checking snapshot creation status: %s", $ami_info->imageState)); $metaData = $BundleTask->getSnapshotDetails(); if ($ami_info->imageState == 'available') { $metaData['szr_version'] = $DBServer->GetProperty(SERVER_PROPERTIES::SZR_VESION); if ($ami_info->rootDeviceType == 'ebs') { $tags[] = ROLE_TAGS::EC2_EBS; } if ($ami_info->virtualizationType == 'hvm') { $tags[] = ROLE_TAGS::EC2_HVM; } $metaData['tags'] = $tags; $BundleTask->SnapshotCreationComplete($BundleTask->snapshotId, $metaData); } else { $BundleTask->Log("CheckServerSnapshotStatus: AMI status = {$ami_info->imageState}. Waiting..."); } } catch (Exception $e) { Logger::getLogger(__CLASS__)->fatal("CheckServerSnapshotStatus ({$BundleTask->id}): {$e->getMessage()}"); } } } }
public function CheckServerSnapshotStatus(BundleTask $BundleTask) { try { $DBServer = DBServer::LoadByID($BundleTask->serverId); if ($BundleTask->bundleType != SERVER_SNAPSHOT_CREATION_TYPE::OSTACK_WINDOWS) { return; } $BundleTask->status = SERVER_SNAPSHOT_CREATION_STATUS::IN_PROGRESS; $client = $this->getOsClient($DBServer->GetEnvironmentObject(), $DBServer->GetProperty(OPENSTACK_SERVER_PROPERTIES::CLOUD_LOCATION)); $info = $client->servers->getImage($BundleTask->snapshotId); switch ($info->status) { case 'SAVING': $BundleTask->Log(sprintf(_("Creating new image. Progress: %s%%"), $info->progress)); break; case "DELETED": $BundleTask->SnapshotCreationFailed("Image was removed"); break; case "ERROR": $BundleTask->SnapshotCreationFailed("Image is in ERROR state"); break; case "ACTIVE": $BundleTask->SnapshotCreationComplete($BundleTask->snapshotId, array()); break; default: var_dump($info); break; } } catch (Exception $e) { $BundleTask->SnapshotCreationFailed($e->getMessage()); } }
/** * {@inheritdoc} * @see IPlatformModule::CheckServerSnapshotStatus() */ public function CheckServerSnapshotStatus(BundleTask $BundleTask) { if ($BundleTask->bundleType == SERVER_SNAPSHOT_CREATION_TYPE::EC2_WIN2003) { } else { if (in_array($BundleTask->bundleType, array(SERVER_SNAPSHOT_CREATION_TYPE::EC2_EBS_HVM, SERVER_SNAPSHOT_CREATION_TYPE::EC2_WIN200X))) { try { $DBServer = DBServer::LoadByID($BundleTask->serverId); $aws = $DBServer->GetEnvironmentObject()->aws($DBServer); $ami = $aws->ec2->image->describe($BundleTask->snapshotId)->get(0); $BundleTask->Log(sprintf("Checking snapshot creation status: %s", $ami->imageState)); $metaData = $BundleTask->getSnapshotDetails(); if ($ami->imageState == 'available') { $metaData['szr_version'] = $DBServer->GetProperty(SERVER_PROPERTIES::SZR_VESION); if ($ami->rootDeviceType == 'ebs') { $tags[] = ROLE_TAGS::EC2_EBS; } if ($ami->virtualizationType == 'hvm') { $tags[] = ROLE_TAGS::EC2_HVM; } $metaData['tags'] = $tags; $BundleTask->SnapshotCreationComplete($BundleTask->snapshotId, $metaData); } else { $BundleTask->Log("CheckServerSnapshotStatus: AMI status = {$ami->imageState}. Waiting..."); } } catch (Exception $e) { Logger::getLogger(__CLASS__)->fatal("CheckServerSnapshotStatus ({$BundleTask->id}): {$e->getMessage()}"); } } } }