forked from fog/fog
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request fog#3377 from fog/eliminate_toplevel_bin
[AWS] Move key to class mapping to separate file
- Loading branch information
Showing
4 changed files
with
227 additions
and
116 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,129 @@ | ||
module Fog | ||
module AWS | ||
# @api private | ||
# | ||
# This is a temporary lookup helper for extracting into external module. | ||
# | ||
# Cleaner provider/service registration will replace this code. | ||
# | ||
class ServiceMapper | ||
def self.class_for(key) | ||
case key | ||
when :auto_scaling | ||
Fog::AWS::AutoScaling | ||
when :beanstalk | ||
Fog::AWS::ElasticBeanstalk | ||
when :cdn | ||
Fog::CDN::AWS | ||
when :cloud_formation | ||
Fog::AWS::CloudFormation | ||
when :cloud_watch | ||
Fog::AWS::CloudWatch | ||
when :compute | ||
Fog::Compute::AWS | ||
when :data_pipeline | ||
Fog::AWS::DataPipeline | ||
when :ddb, :dynamodb | ||
Fog::AWS::DynamoDB | ||
when :dns | ||
Fog::DNS::AWS | ||
when :elasticache | ||
Fog::AWS::Elasticache | ||
when :elb | ||
Fog::AWS::ELB | ||
when :emr | ||
Fog::AWS::EMR | ||
when :glacier | ||
Fog::AWS::Glacier | ||
when :iam | ||
Fog::AWS::IAM | ||
when :redshift | ||
Fog::AWS::Redshift | ||
when :sdb, :simpledb | ||
Fog::AWS::SimpleDB | ||
when :ses | ||
Fog::AWS::SES | ||
when :sqs | ||
Fog::AWS::SQS | ||
when :eu_storage, :storage | ||
Fog::Storage::AWS | ||
when :rds | ||
Fog::AWS::RDS | ||
when :sns | ||
Fog::AWS::SNS | ||
when :sts | ||
Fog::AWS::STS | ||
else | ||
# @todo Replace most instances of ArgumentError with NotImplementedError | ||
# @todo For a list of widely supported Exceptions, see: | ||
# => http://www.zenspider.com/Languages/Ruby/QuickRef.html#35 | ||
raise ArgumentError, "Unsupported #{self} service: #{key}" | ||
end | ||
end | ||
|
||
def self.[](service) | ||
@@connections ||= Hash.new do |hash, key| | ||
hash[key] = case key | ||
when :auto_scaling | ||
Fog::AWS::AutoScaling.new | ||
when :beanstalk | ||
Fog::AWS::ElasticBeanstalk.new | ||
when :cdn | ||
Fog::Logger.warning("AWS[:cdn] is not recommended, use CDN[:aws] for portability") | ||
Fog::CDN.new(:provider => 'AWS') | ||
when :cloud_formation | ||
Fog::AWS::CloudFormation.new | ||
when :cloud_watch | ||
Fog::AWS::CloudWatch.new | ||
when :compute | ||
Fog::Logger.warning("AWS[:compute] is not recommended, use Compute[:aws] for portability") | ||
Fog::Compute.new(:provider => 'AWS') | ||
when :data_pipeline | ||
Fog::AWS::DataPipeline.new | ||
when :ddb, :dynamodb | ||
Fog::AWS::DynamoDB.new | ||
when :dns | ||
Fog::Logger.warning("AWS[:dns] is not recommended, use DNS[:aws] for portability") | ||
Fog::DNS.new(:provider => 'AWS') | ||
when :elasticache | ||
Fog::AWS::Elasticache.new | ||
when :elb | ||
Fog::AWS::ELB.new | ||
when :emr | ||
Fog::AWS::EMR.new | ||
when :glacier | ||
Fog::AWS::Glacier.new | ||
when :iam | ||
Fog::AWS::IAM.new | ||
when :redshift | ||
Fog::AWS::Redshift.new | ||
when :rds | ||
Fog::AWS::RDS.new | ||
when :eu_storage | ||
Fog::Storage.new(:provider => 'AWS', :region => 'eu-west-1') | ||
when :sdb, :simpledb | ||
Fog::AWS::SimpleDB.new | ||
when :ses | ||
Fog::AWS::SES.new | ||
when :sqs | ||
Fog::AWS::SQS.new | ||
when :storage | ||
Fog::Logger.warning("AWS[:storage] is not recommended, use Storage[:aws] for portability") | ||
Fog::Storage.new(:provider => 'AWS') | ||
when :sns | ||
Fog::AWS::SNS.new | ||
when :sts | ||
Fog::AWS::STS.new | ||
else | ||
raise ArgumentError, "Unrecognized service: #{key.inspect}" | ||
end | ||
end | ||
@@connections[service] | ||
end | ||
|
||
def self.services | ||
Fog::AWS.services | ||
end | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,121 +1,13 @@ | ||
class AWS < Fog::Bin | ||
class << self | ||
def class_for(key) | ||
case key | ||
when :auto_scaling | ||
Fog::AWS::AutoScaling | ||
when :beanstalk | ||
Fog::AWS::ElasticBeanstalk | ||
when :cdn | ||
Fog::CDN::AWS | ||
when :cloud_formation | ||
Fog::AWS::CloudFormation | ||
when :cloud_watch | ||
Fog::AWS::CloudWatch | ||
when :compute | ||
Fog::Compute::AWS | ||
when :data_pipeline | ||
Fog::AWS::DataPipeline | ||
when :ddb, :dynamodb | ||
Fog::AWS::DynamoDB | ||
when :dns | ||
Fog::DNS::AWS | ||
when :elasticache | ||
Fog::AWS::Elasticache | ||
when :elb | ||
Fog::AWS::ELB | ||
when :emr | ||
Fog::AWS::EMR | ||
when :glacier | ||
Fog::AWS::Glacier | ||
when :iam | ||
Fog::AWS::IAM | ||
when :redshift | ||
Fog::AWS::Redshift | ||
when :sdb, :simpledb | ||
Fog::AWS::SimpleDB | ||
when :ses | ||
Fog::AWS::SES | ||
when :sqs | ||
Fog::AWS::SQS | ||
when :eu_storage, :storage | ||
Fog::Storage::AWS | ||
when :rds | ||
Fog::AWS::RDS | ||
when :sns | ||
Fog::AWS::SNS | ||
when :sts | ||
Fog::AWS::STS | ||
else | ||
# @todo Replace most instances of ArgumentError with NotImplementedError | ||
# @todo For a list of widely supported Exceptions, see: | ||
# => http://www.zenspider.com/Languages/Ruby/QuickRef.html#35 | ||
raise ArgumentError, "Unsupported #{self} service: #{key}" | ||
end | ||
end | ||
def self.services | ||
Fog::AWS::ServiceMapper.services | ||
end | ||
|
||
def [](service) | ||
@@connections ||= Hash.new do |hash, key| | ||
hash[key] = case key | ||
when :auto_scaling | ||
Fog::AWS::AutoScaling.new | ||
when :beanstalk | ||
Fog::AWS::ElasticBeanstalk.new | ||
when :cdn | ||
Fog::Logger.warning("AWS[:cdn] is not recommended, use CDN[:aws] for portability") | ||
Fog::CDN.new(:provider => 'AWS') | ||
when :cloud_formation | ||
Fog::AWS::CloudFormation.new | ||
when :cloud_watch | ||
Fog::AWS::CloudWatch.new | ||
when :compute | ||
Fog::Logger.warning("AWS[:compute] is not recommended, use Compute[:aws] for portability") | ||
Fog::Compute.new(:provider => 'AWS') | ||
when :data_pipeline | ||
Fog::AWS::DataPipeline | ||
when :ddb, :dynamodb | ||
Fog::AWS::DynamoDB.new | ||
when :dns | ||
Fog::Logger.warning("AWS[:dns] is not recommended, use DNS[:aws] for portability") | ||
Fog::DNS.new(:provider => 'AWS') | ||
when :elasticache | ||
Fog::AWS::Elasticache.new | ||
when :elb | ||
Fog::AWS::ELB.new | ||
when :emr | ||
Fog::AWS::EMR.new | ||
when :glacier | ||
Fog::AWS::Glacier.new | ||
when :iam | ||
Fog::AWS::IAM.new | ||
when :redshift | ||
Fog::AWS::Redshift.new | ||
when :rds | ||
Fog::AWS::RDS.new | ||
when :eu_storage | ||
Fog::Storage.new(:provider => 'AWS', :region => 'eu-west-1') | ||
when :sdb, :simpledb | ||
Fog::AWS::SimpleDB.new | ||
when :ses | ||
Fog::AWS::SES.new | ||
when :sqs | ||
Fog::AWS::SQS.new | ||
when :storage | ||
Fog::Logger.warning("AWS[:storage] is not recommended, use Storage[:aws] for portability") | ||
Fog::Storage.new(:provider => 'AWS') | ||
when :sns | ||
Fog::AWS::SNS.new | ||
when :sts | ||
Fog::AWS::STS.new | ||
else | ||
raise ArgumentError, "Unrecognized service: #{key.inspect}" | ||
end | ||
end | ||
@@connections[service] | ||
end | ||
def self.[](key) | ||
Fog::AWS::ServiceMapper[key] | ||
end | ||
|
||
def services | ||
Fog::AWS.services | ||
end | ||
def self.class_for(key) | ||
Fog::AWS::ServiceMapper.class_for(key) | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters