Class: Fog::AWS::ServiceMapper Private

Inherits:
Object
  • Object
show all
Defined in:
lib/fog/aws/service_mapper.rb

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

This is a temporary lookup helper for extracting into external module.

Cleaner provider/service registration will replace this code.

Class Method Summary collapse

Class Method Details

.[](service) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# File 'lib/fog/aws/service_mapper.rb', line 64

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

.class_for(key) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/fog/aws/service_mapper.rb', line 10

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

.servicesObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



124
125
126
# File 'lib/fog/aws/service_mapper.rb', line 124

def self.services
  Fog::AWS.services
end