Exemplo n.º 1
0
 function _testS3Bucket()
 {
     $AmazonS3 = new AmazonS3("0EJNVE9QFYY3TD554T02", "VOtWnbI2PmsqKOqDNVVgfLVsEnGD/6miiYDY552S");
     $res = $AmazonS3->ListBuckets();
     $this->assertTrue(is_array($res->Bucket), "ListBuckets returned array");
     $res = $AmazonS3->CreateBucket("MySQLDumps");
     $this->assertTrue($res, "Bucket successfull created");
     $res = $AmazonS3->CreateObject("fonts/test.ttf", "offload-public", "/tmp/PhotoEditService.wsdl", "plain/text");
     $this->assertTrue($res, "Object successfull created");
     $res = $AmazonS3->DownloadObject("fonts/test.ttf", "offload-public");
     $this->assertTrue($res, "Object successfull downloaded");
     $res = $AmazonS3->DeleteObject("fonts/test.ttf", "offload-public");
     $this->assertTrue($res, "Object successfull removed");
 }
Exemplo n.º 2
0
 function _testS3Bucket()
 {
     $AmazonS3 = new AmazonS3("", "");
     $res = $AmazonS3->ListBuckets();
     $this->assertTrue(is_array($res->Bucket), "ListBuckets returned array");
     $res = $AmazonS3->CreateBucket("MySQLDumps");
     $this->assertTrue($res, "Bucket successfull created");
     $res = $AmazonS3->CreateObject("fonts/test.ttf", "offload-public", "/tmp/PhotoEditService.wsdl", "plain/text");
     $this->assertTrue($res, "Object successfull created");
     $res = $AmazonS3->DownloadObject("fonts/test.ttf", "offload-public");
     $this->assertTrue($res, "Object successfull downloaded");
     $res = $AmazonS3->DeleteObject("fonts/test.ttf", "offload-public");
     $this->assertTrue($res, "Object successfull removed");
 }
Exemplo n.º 3
0
 public function RemoveServerSnapshot(DBRole $DBRole)
 {
     foreach ($DBRole->getImageId(SERVER_PLATFORMS::EC2) as $location => $imageId) {
         try {
             $EC2Client = Scalr_Service_Cloud_Aws::newEc2($location, $DBRole->getEnvironmentObject()->getPlatformConfigValue(self::PRIVATE_KEY), $DBRole->getEnvironmentObject()->getPlatformConfigValue(self::CERTIFICATE));
             try {
                 $DescribeImagesType = new DescribeImagesType();
                 $DescribeImagesType->imagesSet = new stdClass();
                 $DescribeImagesType->imagesSet->item[] = array("imageId" => $imageId);
                 $ami_info = $EC2Client->DescribeImages($DescribeImagesType);
             } catch (Exception $e) {
                 if (stristr($e->getMessage(), "Failure Signing Data") || stristr($e->getMessage(), "is no longer available") || stristr($e->getMessage(), "does not exist") || stristr($e->getMessage(), "Not authorized for image")) {
                     return true;
                 } else {
                     throw $e;
                 }
             }
             $platfrom = (string) $ami_info->imagesSet->item->platform;
             $rootDeviceType = (string) $ami_info->imagesSet->item->rootDeviceType;
             if ($rootDeviceType == 'ebs') {
                 $EC2Client->DeregisterImage($imageId);
                 $snapshotId = (string) $ami_info->imagesSet->item->blockDeviceMapping->item->ebs->snapshotId;
                 if ($snapshotId) {
                     $EC2Client->DeleteSnapshot($snapshotId);
                 }
             } else {
                 $image_path = (string) $ami_info->imagesSet->item->imageLocation;
                 $chunks = explode("/", $image_path);
                 $bucket_name = $chunks[0];
                 if (count($chunks) == 3) {
                     $prefix = $chunks[1];
                 } else {
                     $prefix = str_replace(".manifest.xml", "", $chunks[1]);
                 }
                 try {
                     $bucket_not_exists = false;
                     $S3Client = new AmazonS3($DBRole->getEnvironmentObject()->getPlatformConfigValue(self::ACCESS_KEY), $DBRole->getEnvironmentObject()->getPlatformConfigValue(self::SECRET_KEY));
                     $objects = $S3Client->ListBucket($bucket_name, $prefix);
                 } catch (Exception $e) {
                     if (stristr($e->getMessage(), "The specified bucket does not exist")) {
                         $bucket_not_exists = true;
                     }
                 }
                 if ($ami_info) {
                     if (!$bucket_not_exists) {
                         foreach ($objects as $object) {
                             $S3Client->DeleteObject($object->Key, $bucket_name);
                         }
                         $bucket_not_exists = true;
                     }
                     if ($bucket_not_exists) {
                         $EC2Client->DeregisterImage($imageId);
                     }
                 }
             }
         } catch (Exception $e) {
             if (stristr($e->getMessage(), "is no longer available") || stristr($e->getMessage(), "Not authorized for image")) {
                 continue;
             } else {
                 throw $e;
             }
         }
     }
 }