fog 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. data/Gemfile.lock +11 -6
  2. data/changelog.txt +49 -0
  3. data/fog.gemspec +5 -4
  4. data/lib/fog.rb +1 -1
  5. data/lib/fog/aws/cloud_formation.rb +124 -0
  6. data/lib/fog/aws/elb.rb +4 -1
  7. data/lib/fog/aws/iam.rb +6 -0
  8. data/lib/fog/aws/parsers/cloud_formation/basic.rb +12 -0
  9. data/lib/fog/aws/parsers/cloud_formation/create_stack.rb +19 -0
  10. data/lib/fog/aws/parsers/cloud_formation/describe_stack_events.rb +31 -0
  11. data/lib/fog/aws/parsers/cloud_formation/describe_stack_resources.rb +31 -0
  12. data/lib/fog/aws/parsers/cloud_formation/describe_stacks.rb +72 -0
  13. data/lib/fog/aws/parsers/cloud_formation/get_template.rb +19 -0
  14. data/lib/fog/aws/parsers/cloud_formation/validate_template.rb +52 -0
  15. data/lib/fog/aws/parsers/iam/login_profile.rb +27 -0
  16. data/lib/fog/aws/parsers/iam/upload_server_certificate.rb +26 -0
  17. data/lib/fog/aws/parsers/rds/authorize_db_security_group_ingress.rb +38 -0
  18. data/lib/fog/aws/parsers/rds/create_db_instance.rb +34 -0
  19. data/lib/fog/aws/parsers/rds/create_db_instance_read_replica.rb +34 -0
  20. data/lib/fog/aws/parsers/rds/create_db_parameter_group.rb +35 -0
  21. data/lib/fog/aws/parsers/rds/create_db_security_group.rb +38 -0
  22. data/lib/fog/aws/parsers/rds/create_db_snapshot.rb +35 -0
  23. data/lib/fog/aws/parsers/rds/db_parser.rb +123 -0
  24. data/lib/fog/aws/parsers/rds/delete_db_instance.rb +35 -0
  25. data/lib/fog/aws/parsers/rds/delete_db_parameter_group.rb +27 -0
  26. data/lib/fog/aws/parsers/rds/delete_db_security_group.rb +33 -0
  27. data/lib/fog/aws/parsers/rds/delete_db_snapshot.rb +34 -0
  28. data/lib/fog/aws/parsers/rds/describe_db_instances.rb +36 -0
  29. data/lib/fog/aws/parsers/rds/describe_db_parameter_groups.rb +38 -0
  30. data/lib/fog/aws/parsers/rds/describe_db_parameters.rb +44 -0
  31. data/lib/fog/aws/parsers/rds/describe_db_security_groups.rb +39 -0
  32. data/lib/fog/aws/parsers/rds/describe_db_snapshots.rb +39 -0
  33. data/lib/fog/aws/parsers/rds/modify_db_instance.rb +34 -0
  34. data/lib/fog/aws/parsers/rds/modify_db_parameter_group.rb +28 -0
  35. data/lib/fog/aws/parsers/rds/reboot_db_instance.rb +35 -0
  36. data/lib/fog/aws/parsers/rds/restore_db_instance_from_db_snapshot.rb +34 -0
  37. data/lib/fog/aws/parsers/rds/restore_db_instance_to_point_in_time.rb +35 -0
  38. data/lib/fog/aws/parsers/rds/revoke_db_security_group_ingress.rb +39 -0
  39. data/lib/fog/aws/parsers/rds/security_group_parser.rb +39 -0
  40. data/lib/fog/aws/parsers/rds/snapshot_parser.rb +40 -0
  41. data/lib/fog/aws/rds.rb +161 -0
  42. data/lib/fog/aws/rds/models/parameter.rb +21 -0
  43. data/lib/fog/aws/rds/models/parameter_group.rb +36 -0
  44. data/lib/fog/aws/rds/models/parameter_groups.rb +27 -0
  45. data/lib/fog/aws/rds/models/parameters.rb +37 -0
  46. data/lib/fog/aws/rds/models/security_group.rb +73 -0
  47. data/lib/fog/aws/rds/models/security_groups.rb +43 -0
  48. data/lib/fog/aws/rds/models/server.rb +105 -0
  49. data/lib/fog/aws/rds/models/servers.rb +27 -0
  50. data/lib/fog/aws/rds/models/snapshot.rb +49 -0
  51. data/lib/fog/aws/rds/models/snapshots.rb +45 -0
  52. data/lib/fog/aws/requests/cloud_formation/create_stack.rb +71 -0
  53. data/lib/fog/aws/requests/cloud_formation/delete_stack.rb +30 -0
  54. data/lib/fog/aws/requests/cloud_formation/describe_stack_events.rb +44 -0
  55. data/lib/fog/aws/requests/cloud_formation/describe_stack_resources.rb +43 -0
  56. data/lib/fog/aws/requests/cloud_formation/describe_stacks.rb +42 -0
  57. data/lib/fog/aws/requests/cloud_formation/get_template.rb +32 -0
  58. data/lib/fog/aws/requests/cloud_formation/validate_template.rb +34 -0
  59. data/lib/fog/aws/requests/elb/create_load_balancer.rb +4 -0
  60. data/lib/fog/aws/requests/iam/create_login_profile.rb +36 -0
  61. data/lib/fog/aws/requests/iam/delete_login_profile.rb +31 -0
  62. data/lib/fog/aws/requests/iam/delete_server_certificate.rb +32 -0
  63. data/lib/fog/aws/requests/iam/get_login_profile.rb +35 -0
  64. data/lib/fog/aws/requests/iam/update_login_profile.rb +33 -0
  65. data/lib/fog/aws/requests/iam/upload_server_certificate.rb +45 -0
  66. data/lib/fog/aws/requests/rds/authorize_db_security_group_ingress.rb +43 -0
  67. data/lib/fog/aws/requests/rds/create_db_instance.rb +56 -0
  68. data/lib/fog/aws/requests/rds/create_db_instance_read_replica.rb +42 -0
  69. data/lib/fog/aws/requests/rds/create_db_parameter_group.rb +41 -0
  70. data/lib/fog/aws/requests/rds/create_db_security_group.rb +37 -0
  71. data/lib/fog/aws/requests/rds/create_db_snapshot.rb +36 -0
  72. data/lib/fog/aws/requests/rds/delete_db_instance.rb +40 -0
  73. data/lib/fog/aws/requests/rds/delete_db_parameter_group.rb +36 -0
  74. data/lib/fog/aws/requests/rds/delete_db_security_group.rb +36 -0
  75. data/lib/fog/aws/requests/rds/delete_db_snapshot.rb +36 -0
  76. data/lib/fog/aws/requests/rds/describe_db_instances.rb +42 -0
  77. data/lib/fog/aws/requests/rds/describe_db_parameter_groups.rb +45 -0
  78. data/lib/fog/aws/requests/rds/describe_db_parameters.rb +46 -0
  79. data/lib/fog/aws/requests/rds/describe_db_security_groups.rb +39 -0
  80. data/lib/fog/aws/requests/rds/describe_db_snapshots.rb +42 -0
  81. data/lib/fog/aws/requests/rds/modify_db_instance.rb +54 -0
  82. data/lib/fog/aws/requests/rds/modify_db_parameter_group.rb +55 -0
  83. data/lib/fog/aws/requests/rds/reboot_db_instance.rb +34 -0
  84. data/lib/fog/aws/requests/rds/restore_db_instance_from_db_snapshot.rb +34 -0
  85. data/lib/fog/aws/requests/rds/restore_db_instance_to_point_in_time.rb +35 -0
  86. data/lib/fog/aws/requests/rds/revoke_db_security_group_ingress.rb +44 -0
  87. data/lib/fog/aws/simpledb.rb +21 -7
  88. data/lib/fog/bin.rb +2 -1
  89. data/lib/fog/bin/aws.rb +8 -0
  90. data/lib/fog/bin/virtual_box.rb +52 -0
  91. data/lib/fog/cdn/aws.rb +9 -8
  92. data/lib/fog/cdn/rackspace.rb +6 -6
  93. data/lib/fog/cdn/requests/rackspace/post_container.rb +30 -0
  94. data/lib/fog/cdn/requests/rackspace/put_container.rb +1 -1
  95. data/lib/fog/compute.rb +6 -3
  96. data/lib/fog/compute/aws.rb +11 -7
  97. data/lib/fog/compute/bluebox.rb +5 -6
  98. data/lib/fog/compute/brightbox.rb +3 -0
  99. data/lib/fog/compute/go_grid.rb +5 -6
  100. data/lib/fog/compute/linode.rb +5 -6
  101. data/lib/fog/compute/models/aws/flavors.rb +19 -18
  102. data/lib/fog/compute/models/aws/server.rb +23 -0
  103. data/lib/fog/compute/models/aws/tag.rb +1 -1
  104. data/lib/fog/compute/models/brightbox/server.rb +7 -1
  105. data/lib/fog/compute/models/virtual_box/medium.rb +87 -0
  106. data/lib/fog/compute/models/virtual_box/medium_format.rb +34 -0
  107. data/lib/fog/compute/models/virtual_box/mediums.rb +32 -0
  108. data/lib/fog/compute/models/virtual_box/nat_engine.rb +65 -0
  109. data/lib/fog/compute/models/virtual_box/nat_redirect.rb +91 -0
  110. data/lib/fog/compute/models/virtual_box/nat_redirects.rb +41 -0
  111. data/lib/fog/compute/models/virtual_box/network_adapter.rb +82 -0
  112. data/lib/fog/compute/models/virtual_box/network_adapters.rb +42 -0
  113. data/lib/fog/compute/models/virtual_box/server.rb +241 -0
  114. data/lib/fog/compute/models/virtual_box/servers.rb +41 -0
  115. data/lib/fog/compute/models/virtual_box/storage_controller.rb +83 -0
  116. data/lib/fog/compute/models/virtual_box/storage_controllers.rb +38 -0
  117. data/lib/fog/compute/models/voxel/servers.rb +7 -6
  118. data/lib/fog/compute/new_servers.rb +5 -6
  119. data/lib/fog/compute/parsers/aws/monitor_unmonitor_instances.rb +35 -0
  120. data/lib/fog/compute/rackspace.rb +7 -7
  121. data/lib/fog/compute/requests/aws/delete_tags.rb +12 -9
  122. data/lib/fog/compute/requests/aws/monitor_instances.rb +52 -0
  123. data/lib/fog/compute/requests/aws/revoke_security_group_ingress.rb +24 -8
  124. data/lib/fog/compute/requests/aws/unmonitor_instances.rb +53 -0
  125. data/lib/fog/compute/requests/brightbox/activate_console_server.rb +20 -0
  126. data/lib/fog/compute/requests/brightbox/add_listeners_load_balancer.rb +20 -0
  127. data/lib/fog/compute/requests/brightbox/remove_listeners_load_balancer.rb +20 -0
  128. data/lib/fog/compute/slicehost.rb +5 -6
  129. data/lib/fog/compute/virtual_box.rb +48 -0
  130. data/lib/fog/compute/voxel.rb +30 -27
  131. data/lib/fog/core.rb +1 -0
  132. data/lib/fog/core/attributes.rb +3 -1
  133. data/lib/fog/core/collection.rb +2 -2
  134. data/lib/fog/core/credentials.rb +13 -3
  135. data/lib/fog/core/scp.rb +0 -4
  136. data/lib/fog/core/service.rb +0 -8
  137. data/lib/fog/core/ssh.rb +0 -4
  138. data/lib/fog/dns.rb +3 -3
  139. data/lib/fog/dns/aws.rb +8 -8
  140. data/lib/fog/dns/bluebox.rb +5 -7
  141. data/lib/fog/dns/dnsimple.rb +7 -7
  142. data/lib/fog/dns/linode.rb +5 -6
  143. data/lib/fog/dns/models/dnsimple/record.rb +11 -1
  144. data/lib/fog/dns/models/dnsimple/records.rb +7 -7
  145. data/lib/fog/dns/models/dnsimple/zones.rb +2 -1
  146. data/lib/fog/dns/requests/dnsimple/get_record.rb +34 -0
  147. data/lib/fog/dns/slicehost.rb +5 -6
  148. data/lib/fog/dns/zerigo.rb +5 -7
  149. data/lib/fog/providers.rb +2 -1
  150. data/lib/fog/providers/aws.rb +10 -8
  151. data/lib/fog/providers/virtual_box.rb +11 -0
  152. data/lib/fog/storage.rb +21 -0
  153. data/lib/fog/storage/aws.rb +16 -32
  154. data/lib/fog/storage/google.rb +6 -27
  155. data/lib/fog/storage/local.rb +7 -7
  156. data/lib/fog/storage/models/rackspace/directory.rb +1 -1
  157. data/lib/fog/storage/models/rackspace/file.rb +1 -0
  158. data/lib/fog/storage/rackspace.rb +5 -27
  159. data/lib/fog/storage/requests/aws/put_object.rb +2 -2
  160. data/lib/fog/storage/requests/aws/upload_part.rb +1 -1
  161. data/lib/fog/storage/requests/google/put_object.rb +2 -2
  162. data/lib/fog/storage/requests/rackspace/put_object.rb +1 -1
  163. data/tests/aws/requests/cloud_formation/stack_tests.rb +130 -0
  164. data/tests/aws/requests/iam/login_profile_tests.rb +64 -0
  165. data/tests/aws/requests/rds/helper.rb +169 -0
  166. data/tests/aws/requests/rds/instance_tests.rb +129 -0
  167. data/tests/aws/requests/rds/model_tests.rb +98 -0
  168. data/tests/aws/requests/rds/parameter_group_tests.rb +68 -0
  169. data/tests/aws/requests/rds/parameter_request_tests.rb +35 -0
  170. data/tests/compute/models/aws/server_monitor_tests.rb +47 -0
  171. data/tests/compute/models/server_tests.rb +7 -23
  172. data/tests/compute/parsers/aws/monitor_unmonitor_instances_tests.rb +49 -0
  173. data/tests/compute/requests/aws/security_group_tests.rb +69 -52
  174. data/tests/compute/requests/aws/tag_tests.rb +5 -5
  175. data/tests/compute/requests/brightbox/helper.rb +7 -6
  176. data/tests/compute/requests/brightbox/server_tests.rb +5 -0
  177. data/tests/compute/requests/voxel/server_tests.rb +2 -3
  178. data/tests/storage/requests/aws/bucket_tests.rb +10 -0
  179. metadata +148 -12
@@ -1,10 +1,10 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- fog (0.6.0)
4
+ fog (0.7.0)
5
5
  builder
6
6
  excon (>= 0.5.5)
7
- formatador (>= 0.0.16)
7
+ formatador (>= 0.1.1)
8
8
  json
9
9
  mime-types
10
10
  net-ssh (>= 2.0.23)
@@ -16,7 +16,9 @@ GEM
16
16
  specs:
17
17
  builder (3.0.0)
18
18
  excon (0.5.6)
19
- formatador (0.0.16)
19
+ ffi (0.6.3)
20
+ rake (>= 0.8.7)
21
+ formatador (0.1.1)
20
22
  json (1.5.1)
21
23
  mime-types (1.16)
22
24
  net-ssh (2.1.0)
@@ -24,8 +26,10 @@ GEM
24
26
  rake (0.8.7)
25
27
  rspec (1.3.1)
26
28
  ruby-hmac (0.4.0)
27
- shindo (0.2.2)
28
- formatador (>= 0.0.16)
29
+ shindo (0.3.3)
30
+ formatador (>= 0.1.1)
31
+ virtualbox (0.8.3)
32
+ ffi (~> 0.6.3)
29
33
 
30
34
  PLATFORMS
31
35
  ruby
@@ -34,4 +38,5 @@ DEPENDENCIES
34
38
  fog!
35
39
  rake
36
40
  rspec (= 1.3.1)
37
- shindo (= 0.2.2)
41
+ shindo (= 0.3.3)
42
+ virtualbox (= 0.8.3)
@@ -1,3 +1,52 @@
1
+ 0.7.0 03/14/2011
2
+ ================
3
+
4
+ [aws] added ap-northeast-1 (tokyo) region options
5
+
6
+ [aws|cloudformation] add basic support. thanks crazed
7
+
8
+ [aws|elb] add support for configuring https
9
+
10
+ [aws|iam]
11
+ add support for server certificates. thanks bensie
12
+ add support for login profiles. thanks fcheung
13
+
14
+ [aws|rds]
15
+ support basic rds operations. thanks fcheung
16
+ add support for restoring servers and security groups. thanks ktheory
17
+
18
+ [cdn|rackspace] use post_container to update
19
+
20
+ [compute]
21
+ [aws]
22
+ fix tag.destroy. thanks eabbott
23
+ allow deleting all tags (instead of just specific ones)
24
+ fix revoke_security_group method signature
25
+ FLAVORS is now a constant
26
+ allow for modifying server monitoring. thanks gilles
27
+ [brightbox] thanks tokengeek
28
+ Added listener management (add/remove) requests for Load Balancers
29
+ Added new Server console activation request
30
+ Added activate_console method to Brightbox servers
31
+ Set Server#private_ip_address to be the first interface
32
+ [rackspace] 'official' workaround for awful caching
33
+ [virtualbox] rough proof of concept/initial implementation
34
+
35
+ [core]
36
+ fix behavior of slice on collections. thanks eabbott
37
+ fix reset_data to be instance method on mock connection (and work)
38
+ [credentials]
39
+ handle undefined ENV['HOME']
40
+ Allow string keys in credentials file [issue 179]. thanks ryanlower
41
+
42
+ [dns|dnsimple] fix misc bugs in models. thanks ijonas
43
+
44
+ [storage]
45
+ use shared parse_data across providers
46
+ [rackspace]
47
+ pass through explicit content-type
48
+ fix bug preventing file uploads to be streamed
49
+
1
50
  0.6.0 02/28/2011
2
51
  ================
3
52
 
@@ -7,8 +7,8 @@ Gem::Specification.new do |s|
7
7
  ## If your rubyforge_project name is different, then edit it and comment out
8
8
  ## the sub! line in the Rakefile
9
9
  s.name = 'fog'
10
- s.version = '0.6.0'
11
- s.date = '2011-02-28'
10
+ s.version = '0.7.0'
11
+ s.date = '2011-03-18'
12
12
  s.rubyforge_project = 'fog'
13
13
 
14
14
  ## Make sure your summary is short. The description may be as long
@@ -44,7 +44,7 @@ Gem::Specification.new do |s|
44
44
  ## that are needed for an end user to actually USE your code.
45
45
  s.add_dependency('builder')
46
46
  s.add_dependency('excon', '>=0.5.5')
47
- s.add_dependency('formatador', '>=0.0.16')
47
+ s.add_dependency('formatador', '>=0.1.1')
48
48
  s.add_dependency('json')
49
49
  s.add_dependency('mime-types')
50
50
  s.add_dependency('net-ssh', '>=2.0.23')
@@ -55,7 +55,8 @@ Gem::Specification.new do |s|
55
55
  ## those that are only needed during development
56
56
  s.add_development_dependency('rake')
57
57
  s.add_development_dependency('rspec', '1.3.1')
58
- s.add_development_dependency('shindo', '0.2.2')
58
+ s.add_development_dependency('shindo', '0.3.3')
59
+ s.add_development_dependency('virtualbox', '0.8.3')
59
60
 
60
61
  s.files = `git ls-files`.split("\n")
61
62
  s.test_files = `git ls-files -- {spec,tests}/*`.split("\n")
data/lib/fog.rb CHANGED
@@ -3,7 +3,7 @@ require File.join(File.dirname(__FILE__), 'fog', 'core')
3
3
  module Fog
4
4
 
5
5
  unless const_defined?(:VERSION)
6
- VERSION = '0.6.0'
6
+ VERSION = '0.7.0'
7
7
  end
8
8
 
9
9
  end
@@ -0,0 +1,124 @@
1
+ module Fog
2
+ module AWS
3
+ class CloudFormation < Fog::Service
4
+
5
+ requires :aws_access_key_id, :aws_secret_access_key
6
+ recognizes :host, :path, :port, :scheme, :persistent
7
+
8
+ request_path 'fog/aws/requests/cloud_formation'
9
+ request :create_stack
10
+ request :delete_stack
11
+ request :describe_stack_events
12
+ request :describe_stack_resources
13
+ request :describe_stacks
14
+ request :get_template
15
+ request :validate_template
16
+
17
+ class Mock
18
+
19
+ def initialize(options={})
20
+ Fog::Mock.not_implemented
21
+ end
22
+
23
+ end
24
+
25
+ class Real
26
+
27
+ # Initialize connection to CloudFormation
28
+ #
29
+ # ==== Notes
30
+ # options parameter must include values for :aws_access_key_id and
31
+ # :aws_secret_access_key in order to create a connection
32
+ #
33
+ # ==== Examples
34
+ # cf = CloudFormation.new(
35
+ # :aws_access_key_id => your_aws_access_key_id,
36
+ # :aws_secret_access_key => your_aws_secret_access_key
37
+ # )
38
+ #
39
+ # ==== Parameters
40
+ # * options<~Hash> - config arguments for connection. Defaults to {}.
41
+ #
42
+ # ==== Returns
43
+ # * CloudFormation object with connection to AWS.
44
+ def initialize(options={})
45
+ require 'fog/core/parser'
46
+ require 'json'
47
+
48
+ @aws_access_key_id = options[:aws_access_key_id]
49
+ @aws_secret_access_key = options[:aws_secret_access_key]
50
+ @hmac = Fog::HMAC.new('sha256', @aws_secret_access_key)
51
+
52
+ options[:region] ||= 'us-east-1'
53
+ @host = options[:host] || case options[:region]
54
+ when 'ap-northeast-1'
55
+ 'cloudformation.ap-northeast-1.amazonaws.com'
56
+ when 'ap-southeast-1'
57
+ 'cloudformation.ap-southeast-1.amazonaws.com'
58
+ when 'eu-west-1'
59
+ 'cloudformation.eu-west-1.amazonaws.com'
60
+ when 'us-east-1'
61
+ 'cloudformation.us-east-1.amazonaws.com'
62
+ when 'us-west-1'
63
+ 'cloudformation.us-west-1.amazonaws.com'
64
+ else
65
+ raise ArgumentError, "Unknown region: #{options[:region].inspect}"
66
+ end
67
+ @path = options[:path] || '/'
68
+ @port = options[:port] || 443
69
+ @scheme = options[:scheme] || 'https'
70
+ @connection = Fog::Connection.new("#{@scheme}://#{@host}:#{@port}#{@path}", options[:persistent])
71
+ end
72
+
73
+ def reload
74
+ @connection.reset
75
+ end
76
+
77
+ private
78
+
79
+ def request(params)
80
+ idempotent = params.delete(:idempotent)
81
+ parser = params.delete(:parser)
82
+
83
+ body = AWS.signed_params(
84
+ params,
85
+ {
86
+ :aws_access_key_id => @aws_access_key_id,
87
+ :hmac => @hmac,
88
+ :host => @host,
89
+ :path => @path,
90
+ :port => @port,
91
+ :version => '2010-05-15'
92
+ }
93
+ )
94
+
95
+ begin
96
+ response = @connection.request({
97
+ :body => body,
98
+ :expects => 200,
99
+ :idempotent => idempotent,
100
+ :headers => { 'Content-Type' => 'application/x-www-form-urlencoded' },
101
+ :host => @host,
102
+ :method => 'POST',
103
+ :parser => parser
104
+ })
105
+ rescue Excon::Errors::HTTPStatusError => error
106
+ if match = error.message.match(/<Code>(.*)<\/Code><Message>(.*)<\/Message>/)
107
+ raise case match[1].split('.').last
108
+ when 'NotFound'
109
+ Fog::AWS::Compute::NotFound.slurp(error, match[2])
110
+ else
111
+ Fog::AWS::Compute::Error.slurp(error, "#{match[1]} => #{match[2]}")
112
+ end
113
+ else
114
+ raise error
115
+ end
116
+ end
117
+
118
+ response
119
+ end
120
+
121
+ end
122
+ end
123
+ end
124
+ end
@@ -48,8 +48,11 @@ module Fog
48
48
  @aws_access_key_id = options[:aws_access_key_id]
49
49
  @aws_secret_access_key = options[:aws_secret_access_key]
50
50
  @hmac = Fog::HMAC.new('sha256', @aws_secret_access_key)
51
+
51
52
  options[:region] ||= 'us-east-1'
52
53
  @host = options[:host] || case options[:region]
54
+ when 'ap-northeast-1'
55
+ 'elasticloadbalancing.ap-northeast-1.amazonaws.com'
53
56
  when 'ap-southeast-1'
54
57
  'elasticloadbalancing.ap-southeast-1.amazonaws.com'
55
58
  when 'eu-west-1'
@@ -85,7 +88,7 @@ module Fog
85
88
  :host => @host,
86
89
  :path => @path,
87
90
  :port => @port,
88
- :version => '2009-11-25'
91
+ :version => '2010-07-01'
89
92
  }
90
93
  )
91
94
 
@@ -10,12 +10,16 @@ module Fog
10
10
  request :create_access_key
11
11
  request :create_group
12
12
  request :create_user
13
+ request :create_login_profile
13
14
  request :delete_access_key
14
15
  request :delete_group
15
16
  request :delete_group_policy
17
+ request :delete_login_profile
18
+ request :delete_server_certificate
16
19
  request :delete_signing_certificate
17
20
  request :delete_user
18
21
  request :delete_user_policy
22
+ request :get_login_profile
19
23
  request :get_user
20
24
  request :get_user_policy
21
25
  request :get_group
@@ -31,8 +35,10 @@ module Fog
31
35
  request :remove_user_from_group
32
36
  request :update_access_key
33
37
  request :update_group
38
+ request :update_login_profile
34
39
  request :update_user
35
40
  request :update_signing_certificate
41
+ request :upload_server_certificate
36
42
  request :upload_signing_certificate
37
43
 
38
44
  class Mock
@@ -0,0 +1,12 @@
1
+ module Fog
2
+ module Parsers
3
+ module AWS
4
+ module CloudFormation
5
+
6
+ class Basic < Fog::Parsers::Base
7
+
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,19 @@
1
+ module Fog
2
+ module Parsers
3
+ module AWS
4
+ module CloudFormation
5
+
6
+ class CreateStack < Fog::Parsers::Base
7
+
8
+ def end_element(name)
9
+ case name
10
+ when 'RequestId', 'StackId'
11
+ @response[name] = @value
12
+ end
13
+ end
14
+
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,31 @@
1
+ module Fog
2
+ module Parsers
3
+ module AWS
4
+ module CloudFormation
5
+
6
+ class DescribeStackEvents < Fog::Parsers::Base
7
+
8
+ def reset
9
+ @event = {}
10
+ @response = { 'StackEvents' => [] }
11
+ end
12
+
13
+ def end_element(name)
14
+ case name
15
+ when 'EventId', 'LogicalResourceId', 'PhysicalResourceId', 'ResourceProperties', 'ResourceStatus', 'ResourceStatusReason', 'ResourceType', 'StackId', 'StackName'
16
+ @event[name] = @value
17
+ when 'member'
18
+ @response['StackEvents'] << @event
19
+ @event = {}
20
+ when 'RequestId'
21
+ @response[name] = @value
22
+ when 'Timestamp'
23
+ @event[name] = Time.parse(@value)
24
+ end
25
+ end
26
+
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,31 @@
1
+ module Fog
2
+ module Parsers
3
+ module AWS
4
+ module CloudFormation
5
+
6
+ class DescribeStackResources < Fog::Parsers::Base
7
+
8
+ def reset
9
+ @resource = {}
10
+ @response = { 'StackResources' => [] }
11
+ end
12
+
13
+ def end_element(name)
14
+ case name
15
+ when 'StackId', 'StackName', 'LogicalResourceId', 'PhysicalResourceId', 'ResourceType', 'ResourceStatus'
16
+ @resource[name] = @value
17
+ when 'member'
18
+ @response['StackResources'] << @resource
19
+ @resource = {}
20
+ when 'RequestId'
21
+ @response[name] = @value
22
+ when 'Timestamp'
23
+ @resource[name] = Time.parse(@value)
24
+ end
25
+ end
26
+
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,72 @@
1
+ module Fog
2
+ module Parsers
3
+ module AWS
4
+ module CloudFormation
5
+
6
+ class DescribeStacks < Fog::Parsers::Base
7
+
8
+ def reset
9
+ @stack = { 'Outputs' => [], 'Parameters' => [] }
10
+ @output = {}
11
+ @parameter = {}
12
+ @response = { 'Stacks' => [] }
13
+ end
14
+
15
+ def start_element(name, attrs = [])
16
+ super
17
+ case name
18
+ when 'Outputs'
19
+ @in_outputs = true
20
+ when 'Parameters'
21
+ @in_parameters = true
22
+ end
23
+ end
24
+
25
+ def end_element(name)
26
+ if @in_outputs
27
+ case name
28
+ when 'OutputKey', 'OutputValue'
29
+ @output[name] = @value
30
+ when 'member'
31
+ @stack['Outputs'] << @output
32
+ @output = {}
33
+ when 'Outputs'
34
+ @in_outputs = false
35
+ end
36
+ elsif @in_parameters
37
+ case name
38
+ when 'ParameterKey', 'ParameterValue'
39
+ @parameter[name] = @value
40
+ when 'member'
41
+ @stack['Parameters'] << @parameter
42
+ @parameter = {}
43
+ when 'Parameters'
44
+ @in_parameters = false
45
+ end
46
+ else
47
+ case name
48
+ when 'member'
49
+ @response['Stacks'] << @stack
50
+ @stack = { 'Outputs' => [], 'Parameters' => [] }
51
+ when 'RequestId'
52
+ @response[name] = @value
53
+ when 'CreationTime'
54
+ @stack[name] = Time.parse(@value)
55
+ when 'DisableRollback'
56
+ case @value
57
+ when 'false'
58
+ @stack[name] = false
59
+ when 'true'
60
+ @stack[name] = true
61
+ end
62
+ when 'StackName', 'StackId', 'StackStatus'
63
+ @stack[name] = @value
64
+ end
65
+ end
66
+ end
67
+
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end