Class: AWS

Inherits:
Fog::Bin show all
Defined in:
lib/fog/bin/aws.rb

Class Method Summary collapse

Methods inherited from Fog::Bin

available?, collections

Class Method Details

.[](service) ⇒ Object



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
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
# File 'lib/fog/bin/aws.rb', line 46

def [](service)
  @@connections ||= Hash.new do |hash, key|
    hash[key] = case key
    when :auto_scaling
      Fog::AWS::AutoScaling.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 Comptue[:aws] for portability")
      Fog::Compute.new(:provider => 'AWS')
    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 :iam
      Fog::AWS::IAM.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
    else
      raise ArgumentError, "Unrecognized service: #{key.inspect}"
    end
  end
  @@connections[service]
end

.class_for(key) ⇒ Object



4
5
6
7
8
9
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
# File 'lib/fog/bin/aws.rb', line 4

def class_for(key)
  case key
  when :auto_scaling
    Fog::AWS::AutoScaling
  when :cdn
    Fog::CDN::AWS
  when :cloud_formation
    Fog::AWS::CloudFormation
  when :cloud_watch
    Fog::AWS::CloudWatch
  when :compute
    Fog::Compute::AWS
  when :dns
    Fog::DNS::AWS
  when :elasticache
    Fog::AWS::Elasticache
  when :elb
    Fog::AWS::ELB
  when :emr
    Fog::AWS::EMR
  when :iam
    Fog::AWS::IAM
  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
  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



94
95
96
# File 'lib/fog/bin/aws.rb', line 94

def services
  Fog::AWS.services
end