Scalr\Service\Aws::getRegion PHP Method

getRegion() public method

Gets region
public getRegion ( ) : string
return string Returns region that has been provided for instance
    public function getRegion()
    {
        return $this->region;
    }

Usage Example

Beispiel #1
0
 /**
  * Get db instance details
  *
  * @param Aws                    $aws
  * @param DBInstanceData         $dbinstance
  * @param SecurityGroupList|null $vpcSglist      optional
  * @param DBClusterList|null     $clusters       optional
  * @return mixed
  * @throws Scalr_Exception_Core
  */
 private function getDbInstanceData(Aws $aws, DBInstanceData $dbinstance, $vpcSglist = null, $clusters = null)
 {
     $cloudLocation = $aws->getRegion();
     $createdTime = $dbinstance->instanceCreateTime;
     $dbinstance = $dbinstance->toArray(true);
     foreach ($dbinstance['VpcSecurityGroups'] as &$vpcSg) {
         $vpcSecurityGroupName = null;
         if (isset($vpcSglist)) {
             foreach ($vpcSglist as $vpcSqData) {
                 /* @var $vpcSqData \Scalr\Service\Aws\Ec2\DataType\SecurityGroupData */
                 if ($vpcSqData->groupId == $vpcSg['VpcSecurityGroupId']) {
                     $vpcSecurityGroupName = $vpcSqData->groupName;
                     $vpcId = $vpcSqData->vpcId;
                     break;
                 }
             }
         }
         $vpcSg = ['vpcSecurityGroupId' => $vpcSg['VpcSecurityGroupId'], 'vpcSecurityGroupName' => $vpcSecurityGroupName];
     }
     $dbinstance['VpcId'] = !empty($vpcId) ? $vpcId : null;
     $dbinstance['DBSubnetGroupName'] = isset($dbinstance['DBSubnetGroup']['DBSubnetGroupName']) ? $dbinstance['DBSubnetGroup']['DBSubnetGroupName'] : null;
     foreach ($dbinstance['DBSecurityGroups'] as &$dbSg) {
         $dbSg = $dbSg['DBSecurityGroupName'];
     }
     foreach ($dbinstance['OptionGroupMembership'] as &$member) {
         $dbinstance['OptionGroupName'] = $member['OptionGroupName'];
         break;
     }
     foreach ($dbinstance['DBParameterGroups'] as &$param) {
         $dbinstance['DBParameterGroup'] = $param['DBParameterGroupName'];
         break;
     }
     $dbinstance['Address'] = $dbinstance['Endpoint']['Address'];
     $dbinstance['Port'] = (string) $dbinstance['Endpoint']['Port'];
     $dbinstance['InstanceCreateTime'] = Scalr_Util_DateTime::convertTz($createdTime);
     $dbinstance['AllocatedStorage'] = (string) $dbinstance['AllocatedStorage'];
     if ($dbinstance['StorageEncrypted']) {
         /* @var $key Aws\Kms\DataType\AliasData */
         foreach ($aws->kms->alias->list() as $key) {
             if (str_replace($key->aliasName, "key/{$key->targetKeyId}", $key->aliasArn) == $dbinstance['KmsKeyId']) {
                 $dbinstance['KmsKeyId'] = $key->aliasName;
                 break;
             }
         }
     }
     if (!empty($dbinstance['DBClusterIdentifier']) && isset($clusters)) {
         foreach ($clusters as $cluster) {
             /* @var $cluster DBClusterData */
             if ($cluster->dBClusterIdentifier == $dbinstance['DBClusterIdentifier']) {
                 foreach ($cluster->dBClusterMembers as $member) {
                     /* @var $member ClusterMemberData */
                     if ($dbinstance['DBInstanceIdentifier'] == $member->dBInstanceIdentifier) {
                         $dbinstance['isReplica'] = !$member->isClusterWriter;
                         break;
                     }
                 }
                 $dbinstance['MultiAZ'] = true;
                 break;
             }
         }
     } else {
         $dbinstance['isReplica'] = !empty($dbinstance['ReadReplicaSourceDBInstanceIdentifier']) ? true : false;
         $dbinstance['MultiAZ'] = $dbinstance['MultiAZ'];
     }
     /* @var $cloudResource CloudResource */
     $cloudResource = CloudResource::findPk($dbinstance['DBInstanceIdentifier'], CloudResource::TYPE_AWS_RDS, $this->getEnvironmentId(), \SERVER_PLATFORMS::EC2, $cloudLocation);
     if ($cloudResource) {
         $dbinstance['farmId'] = $cloudResource->farmId;
         $dbinstance['farmName'] = $this->db->GetOne("SELECT name FROM farms WHERE id=? LIMIT 1", [$cloudResource->farmId]);
     }
     return $dbinstance;
 }