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]]; } }
public function _cloudCredentialsType($from, $to, $action) { switch ($action) { case static::ACT_CONVERT_TO_OBJECT: /* @var $from Entity\CloudCredentials */ $to->cloudCredentialsType = static::CLOUD_CREDENTIALS_TYPE_OPENSTACK; break; case static::ACT_CONVERT_TO_ENTITY: /* @var $to Entity\CloudCredentials */ $to->cloud = $this->getOpenstackProvider($from); break; case static::ACT_GET_FILTER_CRITERIA: return [['cloud' => ['$in' => PlatformFactory::getCanonicalOpenstackPlatforms()]]]; } }