示例#1
0
文件: RdsApi.php 项目: recipe/scalr
 /**
  * CreateDBInstance action
  *
  * Creates a new DB instance.
  *
  * @param   CreateDBInstanceRequestData $request Created DB Instance request object
  * @return  DBInstanceData  Returns created DBInstance
  * @throws  ClientException
  * @throws  RdsException
  */
 public function createDBInstance(CreateDBInstanceRequestData $request)
 {
     $result = null;
     $options = $request->getQueryArray();
     if ($this->rds->getApiClientType() === Aws::CLIENT_SOAP) {
         if (isset($options['DBSecurityGroups.member.1']) || isset($options['VpcSecurityGroupIds.member.1'])) {
             foreach ($options as $k => $v) {
                 if (strpos($k, 'DBSecurityGroups.member.') !== false) {
                     $options['DBSecurityGroups']['DBSecurityGroupName'][] = $v;
                     unset($options[$k]);
                 } elseif (strpos($k, 'VpcSecurityGroupIds.member.') !== false) {
                     $options['VpcSecurityGroupIds']['VpcSecurityGroupId'][] = $v;
                     unset($options[$k]);
                 }
             }
         }
     }
     $response = $this->client->call(ucfirst(__FUNCTION__), $options);
     if ($response->getError() === false) {
         $sxml = simplexml_load_string($response->getRawContent());
         if (!$this->exist($sxml->CreateDBInstanceResult)) {
             throw new RdsException(sprintf(self::UNEXPECTED, 'create DBIntance'));
         }
         $result = $this->_loadDBInstanceData($sxml->CreateDBInstanceResult->DBInstance);
     }
     return $result;
 }