public function _cloudCredentialsType($from, $to, $action) { switch ($action) { case static::ACT_CONVERT_TO_OBJECT: /* @cloudCredentialsType $from Entity\CloudCredentials */ $to->cloudCredentialsType = static::CLOUD_CREDENTIALS_TYPE_RACKSPACE; break; case static::ACT_CONVERT_TO_ENTITY: /* @var $to Entity\CloudCredentials */ if (!isset($from->isUk)) { $to->cloud = SERVER_PLATFORMS::RACKSPACENG_US; $from->keystoneUrl = static::RACKSPACE_KEYSTONE_URL_US; $this->_keystoneUrl($from, $to, static::ACT_CONVERT_TO_ENTITY); } break; case static::ACT_GET_FILTER_CRITERIA: return [['cloud' => ['$in' => PlatformFactory::getRackspacePlatforms()]]]; } }
public function _cloudCredentialsType($from, $to, $action) { switch ($action) { case static::ACT_CONVERT_TO_OBJECT: /* @var $from Entity\CloudCredentials */ $to->cloudCredentialsType = static::$cloudsMap[$from->cloud]; break; case static::ACT_CONVERT_TO_ENTITY: /* @var $to Entity\CloudCredentials */ $to->cloud = array_flip(static::$cloudsMap)[$from->cloudCredentialsType]; break; case static::ACT_GET_FILTER_CRITERIA: switch ($from->cloudCredentialsType) { case static::CLOUD_CREDENTIALS_TYPE_OPENSTACK: $cloud = ['$in' => PlatformFactory::getCanonicalOpenstackPlatforms()]; break; case static::CLOUD_CREDENTIALS_TYPE_CLOUDSTACK: $cloud = ['$in' => PlatformFactory::getCloudstackBasedPlatforms()]; break; case static::CLOUD_CREDENTIALS_TYPE_RACKSPACE: $cloud = ['$in' => PlatformFactory::getRackspacePlatforms()]; break; default: $clouds = array_flip(static::$cloudsMap); if (empty($clouds[$from->cloudCredentialsType])) { throw new ApiErrorException(400, ErrorMessage::ERR_INVALID_VALUE, "Unknown cloudCredentialsType '{$from->cloudCredentialsType}'"); } $cloud = $clouds[$from->cloudCredentialsType]; break; } return [['cloud' => $cloud]]; } }