SnapshotCreationComplete() public method

public SnapshotCreationComplete ( $snapshotId, $metaData = [] )
Esempio n. 1
0
 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()}");
     }
 }
Esempio n. 2
0
 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()}");
             }
         }
     }
 }
Esempio n. 3
0
 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());
     }
 }
Esempio n. 4
0
File: Ec2.php Progetto: recipe/scalr
 /**
  * {@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()}");
             }
         }
     }
 }