Scalr\Model\Entity\Account\Environment::aws PHP Method

aws() public method

This method ensures that aws instance is always from the current environment scope.
public aws ( string | DBServer | DBFarmRole | DBEBSVolume $awsRegion = null, string $awsAccessKeyId = null, string $awsSecretAccessKey = null, string $certificate = null, string $privateKey = null ) : Aws
$awsRegion string | DBServer | DBFarmRole | DBEBSVolume optional The region or object which has both Scalr_Environment instance and cloud location itself
$awsAccessKeyId string optional The AccessKeyId
$awsSecretAccessKey string optional The SecretAccessKey
$certificate string optional Contains x.509 certificate
$privateKey string optional The private key for the certificate
return Scalr\Service\Aws Returns Aws instance
    public function aws($awsRegion = null, $awsAccessKeyId = null, $awsSecretAccessKey = null, $certificate = null, $privateKey = null)
    {
        $arguments = func_get_args();
        if (count($arguments) <= 1) {
            $arguments[0] = isset($arguments[0]) ? $arguments[0] : null;
            //Adds Environment as second parameter
            $arguments[1] = $this;
        }
        //Retrieves an instance from the DI container
        return call_user_func_array([\Scalr::getContainer(), 'aws'], $arguments);
    }

Usage Example

Exemplo n.º 1
0
 /**
  * {@inheritdoc}
  * @see \Scalr\Modules\PlatformModuleInterface::getOrphanedServers()
  */
 public function getOrphanedServers(Entity\Account\Environment $environment, $cloudLocation, $instanceIds = null)
 {
     if (empty($cloudLocation)) {
         return [];
     }
     $aws = $environment->aws($cloudLocation);
     $orphans = [];
     $nextToken = null;
     do {
         try {
             /* @var $results ReservationList */
             $results = $aws->ec2->instance->describe($instanceIds, null, $nextToken, empty($instanceIds) ? 1000 : null);
         } catch (Exception $e) {
             throw new Exception(sprintf("Cannot get list of servers for platform ec2: %s", $e->getMessage()));
         }
         if (count($results)) {
             foreach ($results as $reservation) {
                 /* @var $reservation ReservationData */
                 foreach ($reservation->instancesSet as $instance) {
                     /* @var $instance InstanceData */
                     if (StatusAdapter::load($instance->instanceState->name)->isTerminated()) {
                         continue;
                     }
                     // check whether scalr tag exists
                     foreach ($instance->tagSet as $tag) {
                         /* @var $tag ResourceTagSetData */
                         if ($tag->key == "scalr-meta") {
                             continue 2;
                         }
                     }
                     $orphans[] = new OrphanedServer($instance->instanceId, $instance->instanceType, $instance->imageId, $instance->instanceState->name, $instance->launchTime->setTimezone(new \DateTimeZone("UTC")), $instance->privateIpAddress, $instance->ipAddress, $instance->keyName, $instance->vpcId, $instance->subnetId, $instance->architecture, $instance->groupSet->toArray(), $instance->tagSet->toArray());
                 }
             }
         }
         if (empty($instanceIds)) {
             $nextToken = $results->getNextToken();
         }
         unset($results);
     } while ($nextToken);
     return $orphans;
 }