fog 0.10.0 → 0.11.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.
- data/.gitignore +2 -1
- data/Rakefile +90 -1
- data/bin/fog +5 -1
- data/changelog.txt +156 -0
- data/docs/_layouts/default.html +1 -0
- data/docs/about/press.markdown +4 -0
- data/docs/compute/index.markdown +4 -0
- data/docs/storage/index.markdown +4 -0
- data/fog.gemspec +3 -3
- data/lib/fog.rb +1 -1
- data/lib/fog/aws/iam.rb +7 -6
- data/lib/fog/aws/models/rds/server.rb +27 -23
- data/lib/fog/aws/parsers/iam/get_group.rb +2 -2
- data/lib/fog/aws/requests/iam/update_server_certificate.rb +37 -0
- data/lib/fog/bin.rb +2 -1
- data/lib/fog/bin/dynect.rb +30 -0
- data/lib/fog/bin/rackspace.rb +4 -0
- data/lib/fog/cdn.rb +4 -0
- data/lib/fog/cdn/aws.rb +6 -0
- data/lib/fog/cdn/parsers/aws/get_invalidation_list.rb +43 -0
- data/lib/fog/cdn/parsers/aws/get_streaming_distribution_list.rb +59 -0
- data/lib/fog/cdn/parsers/aws/streaming_distribution.rb +59 -0
- data/lib/fog/cdn/requests/aws/delete_streaming_distribution.rb +28 -0
- data/lib/fog/cdn/requests/aws/get_invalidation_list.rb +42 -0
- data/lib/fog/cdn/requests/aws/get_streaming_distribution.rb +50 -0
- data/lib/fog/cdn/requests/aws/get_streaming_distribution_list.rb +59 -0
- data/lib/fog/cdn/requests/aws/post_streaming_distribution.rb +78 -0
- data/lib/fog/cdn/requests/aws/put_streaming_distribution_config.rb +83 -0
- data/lib/fog/compute.rb +6 -2
- data/lib/fog/compute/aws.rb +12 -1
- data/lib/fog/compute/brightbox.rb +22 -12
- data/lib/fog/compute/models/aws/image.rb +5 -0
- data/lib/fog/compute/models/aws/server.rb +19 -22
- data/lib/fog/compute/models/aws/tag.rb +1 -1
- data/lib/fog/compute/models/bluebox/server.rb +2 -18
- data/lib/fog/compute/models/brightbox/account.rb +1 -1
- data/lib/fog/compute/models/brightbox/server.rb +2 -2
- data/lib/fog/compute/models/go_grid/server.rb +2 -18
- data/lib/fog/compute/models/linode/server.rb +5 -5
- data/lib/fog/compute/models/ninefold/server.rb +2 -2
- data/lib/fog/compute/models/rackspace/server.rb +2 -18
- data/lib/fog/compute/models/server.rb +27 -0
- data/lib/fog/compute/models/slicehost/server.rb +2 -18
- data/lib/fog/compute/models/storm_on_demand/server.rb +3 -3
- data/lib/fog/compute/models/voxel/server.rb +2 -2
- data/lib/fog/compute/parsers/aws/describe_images.rb +15 -3
- data/lib/fog/compute/parsers/aws/describe_instances.rb +1 -1
- data/lib/fog/compute/parsers/aws/describe_security_groups.rb +31 -7
- data/lib/fog/compute/requests/aws/describe_images.rb +33 -14
- data/lib/fog/compute/requests/aws/describe_volumes.rb +1 -0
- data/lib/fog/compute/requests/aws/modify_image_attribute.rb +39 -0
- data/lib/fog/compute/requests/aws/modify_instance_attribute.rb +37 -0
- data/lib/fog/compute/requests/aws/modify_snapshot_attribute.rb +10 -10
- data/lib/fog/compute/requests/aws/register_image.rb +54 -13
- data/lib/fog/compute/requests/aws/run_instances.rb +5 -0
- data/lib/fog/compute/requests/aws/stop_instances.rb +2 -1
- data/lib/fog/compute/requests/brightbox/activate_console_server.rb +2 -8
- data/lib/fog/compute/requests/brightbox/add_listeners_load_balancer.rb +2 -8
- data/lib/fog/compute/requests/brightbox/add_nodes_load_balancer.rb +2 -8
- data/lib/fog/compute/requests/brightbox/create_api_client.rb +2 -8
- data/lib/fog/compute/requests/brightbox/create_cloud_ip.rb +2 -8
- data/lib/fog/compute/requests/brightbox/create_image.rb +2 -8
- data/lib/fog/compute/requests/brightbox/create_load_balancer.rb +2 -8
- data/lib/fog/compute/requests/brightbox/create_server.rb +2 -8
- data/lib/fog/compute/requests/brightbox/destroy_api_client.rb +2 -8
- data/lib/fog/compute/requests/brightbox/destroy_cloud_ip.rb +2 -8
- data/lib/fog/compute/requests/brightbox/destroy_image.rb +2 -8
- data/lib/fog/compute/requests/brightbox/destroy_load_balancer.rb +2 -8
- data/lib/fog/compute/requests/brightbox/destroy_server.rb +2 -8
- data/lib/fog/compute/requests/brightbox/get_account.rb +2 -8
- data/lib/fog/compute/requests/brightbox/get_api_client.rb +2 -8
- data/lib/fog/compute/requests/brightbox/get_cloud_ip.rb +2 -8
- data/lib/fog/compute/requests/brightbox/get_image.rb +2 -8
- data/lib/fog/compute/requests/brightbox/get_interface.rb +2 -8
- data/lib/fog/compute/requests/brightbox/get_load_balancer.rb +2 -8
- data/lib/fog/compute/requests/brightbox/get_server.rb +2 -8
- data/lib/fog/compute/requests/brightbox/get_server_type.rb +2 -8
- data/lib/fog/compute/requests/brightbox/get_user.rb +2 -8
- data/lib/fog/compute/requests/brightbox/get_zone.rb +2 -8
- data/lib/fog/compute/requests/brightbox/list_api_clients.rb +2 -8
- data/lib/fog/compute/requests/brightbox/list_cloud_ips.rb +2 -8
- data/lib/fog/compute/requests/brightbox/list_images.rb +2 -8
- data/lib/fog/compute/requests/brightbox/list_load_balancers.rb +2 -8
- data/lib/fog/compute/requests/brightbox/list_server_types.rb +2 -8
- data/lib/fog/compute/requests/brightbox/list_servers.rb +2 -8
- data/lib/fog/compute/requests/brightbox/list_users.rb +2 -8
- data/lib/fog/compute/requests/brightbox/list_zones.rb +2 -8
- data/lib/fog/compute/requests/brightbox/map_cloud_ip.rb +2 -8
- data/lib/fog/compute/requests/brightbox/remove_listeners_load_balancer.rb +2 -8
- data/lib/fog/compute/requests/brightbox/remove_nodes_load_balancer.rb +2 -8
- data/lib/fog/compute/requests/brightbox/reset_ftp_password_account.rb +2 -8
- data/lib/fog/compute/requests/brightbox/shutdown_server.rb +2 -8
- data/lib/fog/compute/requests/brightbox/snapshot_server.rb +2 -8
- data/lib/fog/compute/requests/brightbox/start_server.rb +2 -8
- data/lib/fog/compute/requests/brightbox/stop_server.rb +2 -8
- data/lib/fog/compute/requests/brightbox/unmap_cloud_ip.rb +2 -8
- data/lib/fog/compute/requests/brightbox/update_account.rb +2 -8
- data/lib/fog/compute/requests/brightbox/update_api_client.rb +2 -8
- data/lib/fog/compute/requests/brightbox/update_image.rb +2 -8
- data/lib/fog/compute/requests/brightbox/update_load_balancer.rb +2 -8
- data/lib/fog/compute/requests/brightbox/update_server.rb +2 -8
- data/lib/fog/compute/requests/brightbox/update_user.rb +2 -8
- data/lib/fog/core.rb +1 -0
- data/lib/fog/core/credentials.rb +1 -1
- data/lib/fog/core/errors.rb +3 -1
- data/lib/fog/core/json.rb +20 -0
- data/lib/fog/core/provider.rb +3 -1
- data/lib/fog/core/service.rb +5 -0
- data/lib/fog/dns.rb +8 -1
- data/lib/fog/dns/dynect.rb +80 -0
- data/lib/fog/dns/models/dynect/record.rb +67 -0
- data/lib/fog/dns/models/dynect/records.rb +53 -0
- data/lib/fog/dns/models/dynect/zone.rb +60 -0
- data/lib/fog/dns/models/dynect/zones.rb +29 -0
- data/lib/fog/dns/requests/dynect/delete_record.rb +24 -0
- data/lib/fog/dns/requests/dynect/delete_zone.rb +21 -0
- data/lib/fog/dns/requests/dynect/get_node_list.rb +23 -0
- data/lib/fog/dns/requests/dynect/get_record.rb +25 -0
- data/lib/fog/dns/requests/dynect/get_zone.rb +22 -0
- data/lib/fog/dns/requests/dynect/post_record.rb +27 -0
- data/lib/fog/dns/requests/dynect/post_session.rb +36 -0
- data/lib/fog/dns/requests/dynect/post_zone.rb +32 -0
- data/lib/fog/dns/requests/dynect/put_zone.rb +26 -0
- data/lib/fog/dns/zerigo.rb +1 -1
- data/lib/fog/providers.rb +1 -0
- data/lib/fog/providers/dynect.rb +14 -0
- data/lib/fog/providers/rackspace.rb +1 -0
- data/lib/fog/rackspace/load_balancers.rb +179 -0
- data/lib/fog/rackspace/models/load_balancers/access_rule.rb +39 -0
- data/lib/fog/rackspace/models/load_balancers/access_rules.rb +29 -0
- data/lib/fog/rackspace/models/load_balancers/load_balancer.rb +216 -0
- data/lib/fog/rackspace/models/load_balancers/load_balancers.rb +27 -0
- data/lib/fog/rackspace/models/load_balancers/node.rb +58 -0
- data/lib/fog/rackspace/models/load_balancers/nodes.rb +29 -0
- data/lib/fog/rackspace/models/load_balancers/virtual_ip.rb +35 -0
- data/lib/fog/rackspace/models/load_balancers/virtual_ips.rb +32 -0
- data/lib/fog/rackspace/requests/load_balancers/create_access_rule.rb +24 -0
- data/lib/fog/rackspace/requests/load_balancers/create_load_balancer.rb +26 -0
- data/lib/fog/rackspace/requests/load_balancers/create_node.rb +27 -0
- data/lib/fog/rackspace/requests/load_balancers/create_virtual_ip.rb +20 -0
- data/lib/fog/rackspace/requests/load_balancers/delete_access_rule.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/delete_all_access_rules.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/delete_load_balancer.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/delete_node.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/delete_nodes.rb +17 -0
- data/lib/fog/rackspace/requests/load_balancers/delete_virtual_ip.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/get_connection_logging.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/get_connection_throttling.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/get_load_balancer.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/get_load_balancer_usage.rb +21 -0
- data/lib/fog/rackspace/requests/load_balancers/get_monitor.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/get_node.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/get_session_persistence.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/get_usage.rb +20 -0
- data/lib/fog/rackspace/requests/load_balancers/list_access_rules.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/list_algorithms.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/list_load_balancers.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/list_nodes.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/list_protocols.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/list_virtual_ips.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/remove_connection_throttling.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/remove_monitor.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/remove_session_persistence.rb +15 -0
- data/lib/fog/rackspace/requests/load_balancers/set_connection_logging.rb +21 -0
- data/lib/fog/rackspace/requests/load_balancers/set_connection_throttling.rb +22 -0
- data/lib/fog/rackspace/requests/load_balancers/set_monitor.rb +31 -0
- data/lib/fog/rackspace/requests/load_balancers/set_session_persistence.rb +21 -0
- data/lib/fog/rackspace/requests/load_balancers/update_load_balancer.rb +24 -0
- data/lib/fog/rackspace/requests/load_balancers/update_node.rb +26 -0
- data/lib/fog/storage.rb +5 -1
- data/lib/fog/storage/aws.rb +3 -0
- data/lib/fog/storage/models/aws/directory.rb +1 -3
- data/lib/fog/storage/models/aws/file.rb +1 -1
- data/lib/fog/storage/models/google/file.rb +1 -1
- data/lib/fog/storage/models/local/file.rb +8 -6
- data/lib/fog/storage/models/ninefold/file.rb +0 -1
- data/lib/fog/storage/requests/aws/copy_object.rb +1 -1
- data/lib/fog/storage/requests/aws/get_bucket.rb +14 -11
- data/lib/fog/storage/requests/aws/post_object_hidden_fields.rb +2 -4
- data/tests/aws/models/rds/server_tests.rb +4 -4
- data/tests/compute/models/aws/server_tests.rb +15 -1
- data/tests/compute/requests/aws/helper.rb +0 -4
- data/tests/compute/requests/aws/image_tests.rb +40 -9
- data/tests/compute/requests/brightbox/account_tests.rb +1 -1
- data/tests/compute/requests/brightbox/helper.rb +3 -0
- data/tests/compute/requests/brightbox/load_balancer_tests.rb +1 -1
- data/tests/compute/requests/voxel/server_tests.rb +2 -2
- data/tests/dns/helper.rb +18 -0
- data/tests/dns/models/record_tests.rb +3 -2
- data/tests/dns/models/records_tests.rb +2 -2
- data/tests/dns/models/zone_tests.rb +2 -2
- data/tests/dns/models/zones_tests.rb +1 -1
- data/tests/dns/requests/bluebox/dns_tests.rb +0 -12
- data/tests/dns/requests/dnsimple/dns_tests.rb +0 -12
- data/tests/dns/requests/dnsmadeeasy/dns_tests.rb +0 -12
- data/tests/dns/requests/dynect/dns_tests.rb +132 -0
- data/tests/dns/requests/linode/dns_tests.rb +1 -13
- data/tests/dns/requests/slicehost/dns_tests.rb +1 -13
- data/tests/helper.rb +1 -1
- data/tests/helpers/collection_helper.rb +2 -2
- data/tests/helpers/formats_helper.rb +2 -0
- data/tests/helpers/mock_helper.rb +4 -1
- data/tests/rackspace/helper.rb +24 -0
- data/tests/rackspace/load_balancer_tests.rb +21 -0
- data/tests/rackspace/models/access_list_tests.rb +12 -0
- data/tests/rackspace/models/access_lists_tests.rb +12 -0
- data/tests/rackspace/models/load_balancer_tests.rb +116 -0
- data/tests/rackspace/models/load_balancers_tests.rb +19 -0
- data/tests/rackspace/models/node_tests.rb +19 -0
- data/tests/rackspace/models/nodes_tests.rb +12 -0
- data/tests/rackspace/models/virtual_ip_tests.rb +16 -0
- data/tests/rackspace/models/virtual_ips_tests.rb +12 -0
- data/tests/rackspace/requests/access_list_tests.rb +56 -0
- data/tests/rackspace/requests/algorithm_tests.rb +19 -0
- data/tests/rackspace/requests/connection_logging_tests.rb +25 -0
- data/tests/rackspace/requests/connection_throttling_tests.rb +37 -0
- data/tests/rackspace/requests/helper.rb +112 -0
- data/tests/rackspace/requests/load_balancer_tests.rb +63 -0
- data/tests/rackspace/requests/load_balancer_usage_tests.rb +19 -0
- data/tests/rackspace/requests/monitor_tests.rb +46 -0
- data/tests/rackspace/requests/node_tests.rb +87 -0
- data/tests/rackspace/requests/protocol_tests.rb +21 -0
- data/tests/rackspace/requests/session_persistence_tests.rb +33 -0
- data/tests/rackspace/requests/usage_tests.rb +17 -0
- data/tests/rackspace/requests/virtual_ip_tests.rb +40 -0
- data/tests/storage/requests/aws/bucket_tests.rb +53 -0
- metadata +127 -8
- data/lib/fog/compute/requests/aws/modify_image_attributes.rb +0 -37
data/.gitignore
CHANGED
data/Rakefile
CHANGED
|
@@ -46,6 +46,15 @@ end
|
|
|
46
46
|
|
|
47
47
|
task :default => :test
|
|
48
48
|
|
|
49
|
+
namespace :test do
|
|
50
|
+
task :dynect do
|
|
51
|
+
[false].each do |mock|
|
|
52
|
+
sh("export FOG_MOCK=#{mock} && bundle exec shindont tests/dns/requests/dynect")
|
|
53
|
+
#sh("export FOG_MOCK=#{mock} && bundle exec shindont tests/dns/models/")
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
|
|
49
58
|
task :examples do
|
|
50
59
|
sh("export FOG_MOCK=false && bundle exec shindont examples")
|
|
51
60
|
# some don't provide mocks so we'll leave this out for now
|
|
@@ -137,7 +146,6 @@ task :release => :build do
|
|
|
137
146
|
sh "git tag v#{version}"
|
|
138
147
|
sh "git push origin master"
|
|
139
148
|
sh "git push origin v#{version}"
|
|
140
|
-
Rake::Task[:build].invoke # rebuild with updated changelog
|
|
141
149
|
sh "gem push pkg/#{name}-#{version}.gem"
|
|
142
150
|
Rake::Task[:docs].invoke
|
|
143
151
|
end
|
|
@@ -182,6 +190,18 @@ task :changelog do
|
|
|
182
190
|
changelog << ('=' * changelog[0].length)
|
|
183
191
|
changelog << ''
|
|
184
192
|
|
|
193
|
+
require 'multi_json'
|
|
194
|
+
github_data = MultiJson.decode(Excon.get('http://github.com/api/v2/json/repos/show/geemus/fog').body)
|
|
195
|
+
data = github_data['repository'].reject {|key, value| !['forks', 'open_issues', 'watchers'].include?(key)}
|
|
196
|
+
rubygems_data = MultiJson.decode(Excon.get('https://rubygems.org/api/v1/gems/fog.json').body)
|
|
197
|
+
data['downloads'] = rubygems_data['downloads']
|
|
198
|
+
stats = []
|
|
199
|
+
for key in data.keys.sort
|
|
200
|
+
stats << "'#{key}' => #{data[key]}"
|
|
201
|
+
end
|
|
202
|
+
changelog << "Stats! { #{stats.join(', ')} }"
|
|
203
|
+
changelog << ''
|
|
204
|
+
|
|
185
205
|
last_sha = `cat changelog.txt | head -1`.split(' ').last
|
|
186
206
|
shortlog = `git shortlog #{last_sha}..HEAD`
|
|
187
207
|
changes = {}
|
|
@@ -208,7 +228,10 @@ task :changelog do
|
|
|
208
228
|
for committer, commits in committers.to_a.sort {|x,y| y[1] <=> x[1]}
|
|
209
229
|
if [
|
|
210
230
|
'Aaron Suggs',
|
|
231
|
+
'Christopher Oliver',
|
|
232
|
+
'Dylan Egan',
|
|
211
233
|
'geemus',
|
|
234
|
+
'Henry Addison',
|
|
212
235
|
'Lincoln Stoll',
|
|
213
236
|
'Luqman Amjad',
|
|
214
237
|
'nightshade427',
|
|
@@ -238,6 +261,7 @@ task :changelog do
|
|
|
238
261
|
end
|
|
239
262
|
|
|
240
263
|
task :docs do
|
|
264
|
+
Rake::Task[:supported_services_docs].invoke
|
|
241
265
|
Rake::Task[:upload_fog_io].invoke
|
|
242
266
|
Rake::Task[:upload_rdoc].invoke
|
|
243
267
|
|
|
@@ -256,6 +280,71 @@ task :docs do
|
|
|
256
280
|
Formatador.display_line
|
|
257
281
|
end
|
|
258
282
|
|
|
283
|
+
task :supported_services_docs do
|
|
284
|
+
support, shared = {}, []
|
|
285
|
+
for key, values in Fog.services
|
|
286
|
+
unless values.length == 1
|
|
287
|
+
shared |= [key]
|
|
288
|
+
values.each do |value|
|
|
289
|
+
support[value] ||= {}
|
|
290
|
+
support[value][key] = '+'
|
|
291
|
+
end
|
|
292
|
+
else
|
|
293
|
+
value = values.first
|
|
294
|
+
support[value] ||= {}
|
|
295
|
+
support[value][:other] ||= []
|
|
296
|
+
support[value][:other] << key
|
|
297
|
+
end
|
|
298
|
+
end
|
|
299
|
+
shared.sort! {|x,y| x.to_s <=> y.to_s}
|
|
300
|
+
columns = [:provider] + shared + [:other]
|
|
301
|
+
data = []
|
|
302
|
+
for key in support.keys.sort {|x,y| x.to_s <=> y.to_s}
|
|
303
|
+
data << { :provider => key }.merge!(support[key])
|
|
304
|
+
end
|
|
305
|
+
|
|
306
|
+
table = ''
|
|
307
|
+
table << "<table border='1'>\n"
|
|
308
|
+
|
|
309
|
+
table << " <tr>"
|
|
310
|
+
for column in columns
|
|
311
|
+
table << "<th>#{column}</th>"
|
|
312
|
+
end
|
|
313
|
+
table << "</tr>\n"
|
|
314
|
+
|
|
315
|
+
for datum in data
|
|
316
|
+
table << " <tr>"
|
|
317
|
+
for column in columns
|
|
318
|
+
if value = datum[column]
|
|
319
|
+
case value
|
|
320
|
+
when Array
|
|
321
|
+
table << "<td>#{value.join(', ')}</td>"
|
|
322
|
+
when '+'
|
|
323
|
+
table << "<td style='text-align: center;'>#{value}</td>"
|
|
324
|
+
else
|
|
325
|
+
table << "<th>#{value}</th>"
|
|
326
|
+
end
|
|
327
|
+
else
|
|
328
|
+
table << "<td></td>"
|
|
329
|
+
end
|
|
330
|
+
end
|
|
331
|
+
table << "</tr>\n"
|
|
332
|
+
end
|
|
333
|
+
|
|
334
|
+
table << "</table>\n"
|
|
335
|
+
|
|
336
|
+
File.open('docs/about/supported_services.markdown', 'w') do |file|
|
|
337
|
+
file.puts <<-METADATA
|
|
338
|
+
---
|
|
339
|
+
layout: default
|
|
340
|
+
title: Supported Services
|
|
341
|
+
---
|
|
342
|
+
|
|
343
|
+
METADATA
|
|
344
|
+
file.puts(table)
|
|
345
|
+
end
|
|
346
|
+
end
|
|
347
|
+
|
|
259
348
|
task :upload_fog_io do
|
|
260
349
|
# connect to storage provider
|
|
261
350
|
Fog.credential = :geemus
|
data/bin/fog
CHANGED
|
@@ -5,7 +5,11 @@ require 'yaml'
|
|
|
5
5
|
Fog.credential = ARGV.first ? ARGV.first.to_sym : nil
|
|
6
6
|
Fog.mock! if ENV['FOG_MOCK']
|
|
7
7
|
if Fog.credentials.empty?
|
|
8
|
-
|
|
8
|
+
begin
|
|
9
|
+
Fog::Errors.missing_credentials
|
|
10
|
+
rescue Fog::Errors::LoadError => error
|
|
11
|
+
abort error.message
|
|
12
|
+
end
|
|
9
13
|
end
|
|
10
14
|
|
|
11
15
|
require 'fog/bin'
|
data/changelog.txt
CHANGED
|
@@ -1,3 +1,159 @@
|
|
|
1
|
+
0.11.0 08/18/2011 73bcee507a4732e071c58d85793b7f307eb377dc
|
|
2
|
+
==========================================================
|
|
3
|
+
|
|
4
|
+
Stats! { 'downloads' => 202791, 'forks' => 237, 'open_issues' => 20, 'watchers' => 1427 }
|
|
5
|
+
|
|
6
|
+
MVP! Brian Hartsock
|
|
7
|
+
|
|
8
|
+
[aws|cdn]
|
|
9
|
+
Added commands for streaming distribution lists. thanks Christopher Oliver
|
|
10
|
+
|
|
11
|
+
[aws|compute]
|
|
12
|
+
describe security groups parser was not taking into account ipPermissionsEgress and therefore returning unexpected results when the account had VPC groups. thanks Christopher Oliver
|
|
13
|
+
Added missing 'platform' attribute to server model and describe instances request. thanks Christopher Oliver
|
|
14
|
+
|
|
15
|
+
[aws|iam]
|
|
16
|
+
fix 'Path' handling for get_group response. thanks Nick Osborn
|
|
17
|
+
add missing update_server_certificate request. thanks Nick Osborn
|
|
18
|
+
|
|
19
|
+
[aws|rds]
|
|
20
|
+
Allow string or symbol hash keys. thanks Aaron Suggs
|
|
21
|
+
|
|
22
|
+
[aws|s3]
|
|
23
|
+
Added basic tests for get_bucket, fixed a bug in get_bucket with delimiter option, tests succeed for both mocked and real situation. thanks Erik Terpstra
|
|
24
|
+
policy should be base64 encoded and not contain new lines. thanks Fujimura Daisuke
|
|
25
|
+
Require 'multi_json' was lucked. thanks Fujimura Daisuke
|
|
26
|
+
|
|
27
|
+
[compute]
|
|
28
|
+
add server base class to contain shared stuff (scp/ssh). thanks geemus
|
|
29
|
+
|
|
30
|
+
[compute|aws]
|
|
31
|
+
Whitespace removal. thanks Dylan Egan
|
|
32
|
+
Allow image mocks to support state (except failed). thanks Dylan Egan
|
|
33
|
+
fix pluralization of modify_image_attribute. thanks geemus
|
|
34
|
+
update modify image/snapshot attribute to match latest API. thanks geemus
|
|
35
|
+
add modify_image_attribute. thanks geemus
|
|
36
|
+
add support for saving assigned tags at server creation time. thanks geemus
|
|
37
|
+
add docs for new options on run_instances. thanks geemus
|
|
38
|
+
guard tag creation against empty tag set. thanks geemus
|
|
39
|
+
fixes for bootstrap and placing attributes json. thanks geemus
|
|
40
|
+
identity not needed for setup. thanks geemus
|
|
41
|
+
fix for running nice with mocked test run. thanks geemus
|
|
42
|
+
|
|
43
|
+
[compute|brightbox]
|
|
44
|
+
Updated test for new expected response from server. thanks Paul Thornthwaite
|
|
45
|
+
Updated Account format test to allow valid_credit_card flag. thanks Paul Thornthwaite
|
|
46
|
+
Added IPv6 address to format now it is exposed to API. thanks Paul Thornthwaite
|
|
47
|
+
DRY up request method. thanks Paul Thornthwaite
|
|
48
|
+
Corrected attribute name. thanks Paul Thornthwaite
|
|
49
|
+
|
|
50
|
+
[compute|voxel]
|
|
51
|
+
position in format is string, not integer. thanks geemus
|
|
52
|
+
|
|
53
|
+
[dns]
|
|
54
|
+
dry generate_unique_domain to tests helper. thanks geemus
|
|
55
|
+
|
|
56
|
+
[dns|dynect]
|
|
57
|
+
cleanup of initial implementation. thanks geemus
|
|
58
|
+
fixes to play nice with mocked test runs. thanks geemus
|
|
59
|
+
|
|
60
|
+
[dns|zerigo]
|
|
61
|
+
add host/port/scheme to recognizes. thanks geemus
|
|
62
|
+
|
|
63
|
+
[docs]
|
|
64
|
+
add task to build/publish supported services matrix. thanks geemus
|
|
65
|
+
alphasort doc tasks. thanks geemus
|
|
66
|
+
|
|
67
|
+
[misc]
|
|
68
|
+
if creating an s3 directory (bucket), one needs to pass in :location as well as have the aws connection set to the correct region... thanks Adam Greene
|
|
69
|
+
- Write files as binary (otherwise UTF8 - ASCII errors can occur) - Check if File exists before trying to delete it (paperclip sometimes deletes files twice) - Check if Directory exists before trying to "cd" into it. thanks Andre Meij
|
|
70
|
+
Fix issue 464, add howto for European Rackspace cloud. thanks Andre Meij
|
|
71
|
+
Initial support for adding/deleting a load balancer (requests only). thanks Brian Hartsock
|
|
72
|
+
Complete lifecycle for a load balancer. thanks Brian Hartsock
|
|
73
|
+
Improved error handling. thanks Brian Hartsock
|
|
74
|
+
Model and collection for load balancers. thanks Brian Hartsock
|
|
75
|
+
Fixed issues with loading all LB params. thanks Brian Hartsock
|
|
76
|
+
Requests for nodes. thanks Brian Hartsock
|
|
77
|
+
Rackspace Load Balancers: model classes for nodes. thanks Brian Hartsock
|
|
78
|
+
Rackspace Load Balancers: requests for virtual ips. thanks Brian Hartsock
|
|
79
|
+
Added virtual IP models. thanks Brian Hartsock
|
|
80
|
+
Rackspace LB: Made some updates from the pull request. thanks Brian Hartsock
|
|
81
|
+
Rackspace LB: protocols, algorithms, and connection logging. thanks Brian Hartsock
|
|
82
|
+
Added access list requests. thanks Brian Hartsock
|
|
83
|
+
Rackspace LB: Added session persistence requests. thanks Brian Hartsock
|
|
84
|
+
Rackspace LB: Connection throttling requests. thanks Brian Hartsock
|
|
85
|
+
Rackspace LB: Fixed issues with connection logging model. thanks Brian Hartsock
|
|
86
|
+
Rackspace LB: Health Monitor requests. thanks Brian Hartsock
|
|
87
|
+
Rackspace LB: account usage request. thanks Brian Hartsock
|
|
88
|
+
Rackspace LB: Load Balancer Usage requests. thanks Brian Hartsock
|
|
89
|
+
Rackspace LB: Added model capabilities for a lot of additional actions. thanks Brian Hartsock
|
|
90
|
+
Rackspace LB: models for access lists. thanks Brian Hartsock
|
|
91
|
+
Rackspace LB: account usage call. thanks Brian Hartsock
|
|
92
|
+
Rackspace LB: Refactoring and cleanup. thanks Brian Hartsock
|
|
93
|
+
register_image mocking support. thanks Dylan Egan
|
|
94
|
+
Remove GENTOO_AMI. thanks Dylan Egan
|
|
95
|
+
Store it under the ID, not the name. thanks Dylan Egan
|
|
96
|
+
Allow tag filtering for images. thanks Dylan Egan
|
|
97
|
+
Set imageOwnerAlias to self. Not 100% on this, but it will allow you to search for images with 'owner-alias' => 'self'. thanks Dylan Egan
|
|
98
|
+
Back to using Owner. A couple of tests for it too. thanks Dylan Egan
|
|
99
|
+
Added support for delimiter option in Fog::Storage::AWS::Mock object. thanks Erik Terpstra
|
|
100
|
+
Link to EBS snapshots blog post. thanks Gavin Sandie
|
|
101
|
+
Add force stop functionality to AWS Instance. thanks John Ferlito
|
|
102
|
+
* Changed LoadError to Fog::Error::LoadError when missing configuration * When running from command line, rescue the exception, and print the help message. thanks Mark A. Miller
|
|
103
|
+
* Fix VirtualBox in compute case statement. thanks Mark A. Miller
|
|
104
|
+
Update to the latest VirtualBox gem while we're at it for good measure. thanks Mark A. Miller
|
|
105
|
+
add dynect DNS provider with session request implemented. thanks Michael Hale
|
|
106
|
+
add dynect provider and cleanup extra requires. thanks Michael Hale
|
|
107
|
+
enable mocking for dynect. thanks Michael Hale
|
|
108
|
+
parse session request and fix mock for tests. thanks Michael Hale
|
|
109
|
+
whoops forgot to add these files. thanks Michael Hale
|
|
110
|
+
temporary rake task for convenient testing. thanks Michael Hale
|
|
111
|
+
include /REST in all requests. thanks Michael Hale
|
|
112
|
+
change API-Token to Auth-Token. thanks Michael Hale
|
|
113
|
+
add zone request. thanks Michael Hale
|
|
114
|
+
fix API-Token in mock session request. thanks Michael Hale
|
|
115
|
+
always run both mock and non-mock tests. thanks Michael Hale
|
|
116
|
+
parse the list of zones returned. thanks Michael Hale
|
|
117
|
+
require builder in dynect. thanks Michael Hale
|
|
118
|
+
WIP: add stub model classes. thanks Michael Hale
|
|
119
|
+
tests passing. thanks Michael Hale
|
|
120
|
+
rename zone request to zones. thanks Michael Hale
|
|
121
|
+
add zone request to show information for a single zone. thanks Michael Hale
|
|
122
|
+
hook up zones model. thanks Michael Hale
|
|
123
|
+
hook up zones.get. thanks Michael Hale
|
|
124
|
+
dynect: add a bunch of stuff: node_list, list_any_records, handle 307 job redirect,. thanks Michael Hale
|
|
125
|
+
dynect: nicer filter api for records. thanks Michael Hale
|
|
126
|
+
Escape source object name when copying. thanks Pratik Naik
|
|
127
|
+
provide #providers for shared services. thanks geemus
|
|
128
|
+
|
|
129
|
+
[rackspace|load balancers]
|
|
130
|
+
fixed broken tests. thanks Brian Hartsock
|
|
131
|
+
|
|
132
|
+
[rackspace|load_balancers]
|
|
133
|
+
fixes to play nice with mock test runs. thanks geemus
|
|
134
|
+
fix typo in tests. thanks geemus
|
|
135
|
+
|
|
136
|
+
[rackspace|loadbalancers]
|
|
137
|
+
cleanup. thanks geemus
|
|
138
|
+
|
|
139
|
+
[release]
|
|
140
|
+
add newest MVP to changelog task MVP omit list. thanks geemus
|
|
141
|
+
add stats to changelog. thanks geemus
|
|
142
|
+
remove un-needed rebuild of gem. thanks geemus
|
|
143
|
+
|
|
144
|
+
[storage]
|
|
145
|
+
fix deprecated get_url usage. thanks geemus
|
|
146
|
+
|
|
147
|
+
[storage|aws]
|
|
148
|
+
simplify region accessor. thanks geemus
|
|
149
|
+
|
|
150
|
+
[storage|ninefold]
|
|
151
|
+
remove debug output. thanks geemus
|
|
152
|
+
|
|
153
|
+
[tests]
|
|
154
|
+
non-destructively generate id for get('fake') == nil tests. thanks geemus
|
|
155
|
+
|
|
156
|
+
|
|
1
157
|
0.10.0 07/25/2011 9ca8cffc000c417a792235438c12855a277fe1ce
|
|
2
158
|
==========================================================
|
|
3
159
|
|
data/docs/_layouts/default.html
CHANGED
|
@@ -61,6 +61,7 @@
|
|
|
61
61
|
<li><a href="/about/getting_started.html">Getting Started</a></li>
|
|
62
62
|
<li><a href="/about/press.html">Press</a></li>
|
|
63
63
|
<li><a href="/about/structure.html">Structure</a></li>
|
|
64
|
+
<li><a href="/about/supported_services.html">Supported Services</a></li>
|
|
64
65
|
<li><a href="/about/users.html">Users</a></li>
|
|
65
66
|
</ul>
|
|
66
67
|
|
data/docs/about/press.markdown
CHANGED
|
@@ -5,6 +5,10 @@ title: Press
|
|
|
5
5
|
|
|
6
6
|
Mentions and blog posts from elsewhere in reverse chronological order by day (and alphasorted for same days).
|
|
7
7
|
|
|
8
|
+
**August 1st, 2011**
|
|
9
|
+
|
|
10
|
+
* [Using EBS Snapshots with Fog](http://www.mediamolecule.com/lab/article/using_ebs_snapshots_with_fog/)
|
|
11
|
+
|
|
8
12
|
**June 21st, 2011**
|
|
9
13
|
|
|
10
14
|
* [Mocking fog When Using It With Carrierwave](http://www.engineyard.com/blog/2011/mocking-fog-when-using-it-with-carrierwave/)
|
data/docs/compute/index.markdown
CHANGED
|
@@ -81,6 +81,10 @@ Rackspace has <a href="http://www.rackspacecloud.com/cloud_hosting_products/serv
|
|
|
81
81
|
:rackspace_api_key => RACKSPACE_API_KEY
|
|
82
82
|
})
|
|
83
83
|
|
|
84
|
+
If you work with the European cloud from Rackspace you have to add the following:
|
|
85
|
+
|
|
86
|
+
:rackspace_auth_url => "lon.auth.api.rackspacecloud.com"
|
|
87
|
+
|
|
84
88
|
We will skip over learning how to do this the 'Rackspace Way' and instead jump right to using bootstrap to get their smallest Ubuntu 10.04 LTS server.
|
|
85
89
|
|
|
86
90
|
server = connection.servers.bootstrap
|
data/docs/storage/index.markdown
CHANGED
|
@@ -145,6 +145,10 @@ Rackspace has <a href="http://www.rackspacecloud.com/cloud_hosting_products/file
|
|
|
145
145
|
:rackspace_api_key => RACKSPACE_API_KEY
|
|
146
146
|
})
|
|
147
147
|
|
|
148
|
+
If you work with the European cloud from Rackspace you have to add the following:
|
|
149
|
+
|
|
150
|
+
:rackspace_auth_url => "lon.auth.api.rackspacecloud.com"
|
|
151
|
+
|
|
148
152
|
Then create, save, destroy as per fog-for-AWS. The `:public => true` option when creating directories (see above) is important for Rackspace; your folder and files won't be shared to Rackspace's CDN and hence your users without it. Similarly the `:public => true` on files is important for AWS and Google or they will be private.
|
|
149
153
|
|
|
150
154
|
## Local Storage
|
data/fog.gemspec
CHANGED
|
@@ -6,8 +6,8 @@ Gem::Specification.new do |s|
|
|
|
6
6
|
## If your rubyforge_project name is different, then edit it and comment out
|
|
7
7
|
## the sub! line in the Rakefile
|
|
8
8
|
s.name = 'fog'
|
|
9
|
-
s.version = '0.
|
|
10
|
-
s.date = '2011-
|
|
9
|
+
s.version = '0.11.0'
|
|
10
|
+
s.date = '2011-08-18'
|
|
11
11
|
s.rubyforge_project = 'fog'
|
|
12
12
|
|
|
13
13
|
## Make sure your summary is short. The description may be as long
|
|
@@ -53,7 +53,7 @@ Gem::Specification.new do |s|
|
|
|
53
53
|
s.add_development_dependency('rdoc')
|
|
54
54
|
s.add_development_dependency('rspec', '~>1.3.1')
|
|
55
55
|
s.add_development_dependency('shindo', '~>0.3.4')
|
|
56
|
-
s.add_development_dependency('virtualbox', '~>0.
|
|
56
|
+
s.add_development_dependency('virtualbox', '~>0.9.1')
|
|
57
57
|
|
|
58
58
|
s.files = `git ls-files`.split("\n")
|
|
59
59
|
s.test_files = `git ls-files -- {spec,tests}/*`.split("\n")
|
data/lib/fog.rb
CHANGED
data/lib/fog/aws/iam.rb
CHANGED
|
@@ -16,8 +16,8 @@ module Fog
|
|
|
16
16
|
request :create_access_key
|
|
17
17
|
request :create_account_alias
|
|
18
18
|
request :create_group
|
|
19
|
-
request :create_user
|
|
20
19
|
request :create_login_profile
|
|
20
|
+
request :create_user
|
|
21
21
|
request :delete_access_key
|
|
22
22
|
request :delete_account_alias
|
|
23
23
|
request :delete_group
|
|
@@ -27,17 +27,17 @@ module Fog
|
|
|
27
27
|
request :delete_signing_certificate
|
|
28
28
|
request :delete_user
|
|
29
29
|
request :delete_user_policy
|
|
30
|
-
request :get_login_profile
|
|
31
|
-
request :get_user
|
|
32
|
-
request :get_user_policy
|
|
33
30
|
request :get_group
|
|
34
31
|
request :get_group_policy
|
|
32
|
+
request :get_login_profile
|
|
35
33
|
request :get_server_certificate
|
|
34
|
+
request :get_user
|
|
35
|
+
request :get_user_policy
|
|
36
36
|
request :list_access_keys
|
|
37
37
|
request :list_account_aliases
|
|
38
|
+
request :list_group_policies
|
|
38
39
|
request :list_groups
|
|
39
40
|
request :list_groups_for_user
|
|
40
|
-
request :list_group_policies
|
|
41
41
|
request :list_server_certificates
|
|
42
42
|
request :list_signing_certificates
|
|
43
43
|
request :list_user_policies
|
|
@@ -48,8 +48,9 @@ module Fog
|
|
|
48
48
|
request :update_access_key
|
|
49
49
|
request :update_group
|
|
50
50
|
request :update_login_profile
|
|
51
|
-
request :
|
|
51
|
+
request :update_server_certificate
|
|
52
52
|
request :update_signing_certificate
|
|
53
|
+
request :update_user
|
|
53
54
|
request :upload_server_certificate
|
|
54
55
|
request :upload_signing_certificate
|
|
55
56
|
|
|
@@ -25,27 +25,24 @@ module Fog
|
|
|
25
25
|
attribute :preferred_backup_window, :aliases => 'PreferredBackupWindow'
|
|
26
26
|
attribute :preferred_maintenance_window, :aliases => 'PreferredMaintenanceWindow'
|
|
27
27
|
attribute :db_name, :aliases => 'DBName'
|
|
28
|
-
attribute :db_security_groups, :aliases => 'DBSecurityGroups'
|
|
28
|
+
attribute :db_security_groups, :aliases => 'DBSecurityGroups', :type => :array
|
|
29
29
|
attribute :db_parameter_groups, :aliases => 'DBParameterGroups'
|
|
30
30
|
attribute :backup_retention_period, :aliases => 'BackupRetentionPeriod', :type => :integer
|
|
31
31
|
attribute :license_model, :aliases => 'LicenseModel'
|
|
32
32
|
|
|
33
33
|
attr_accessor :password, :parameter_group_name, :security_group_names, :port
|
|
34
|
-
|
|
35
|
-
def initialize(attributes={})
|
|
36
|
-
self.flavor_id ||= 'db.m1.small'
|
|
37
|
-
super
|
|
38
|
-
end
|
|
39
34
|
|
|
40
35
|
def create_read_replica(replica_id, options={})
|
|
41
|
-
|
|
36
|
+
options[:security_group_names] ||= options['DBSecurityGroups']
|
|
37
|
+
params = self.class.new(options).attributes_to_params
|
|
38
|
+
connection.create_db_instance_read_replica(replica_id, id, params)
|
|
42
39
|
connection.servers.get(replica_id)
|
|
43
40
|
end
|
|
44
|
-
|
|
41
|
+
|
|
45
42
|
def ready?
|
|
46
43
|
state == 'available'
|
|
47
44
|
end
|
|
48
|
-
|
|
45
|
+
|
|
49
46
|
def destroy(snapshot_identifier=nil)
|
|
50
47
|
requires :id
|
|
51
48
|
connection.delete_db_instance(id, snapshot_identifier, snapshot_identifier.nil?)
|
|
@@ -56,51 +53,58 @@ module Fog
|
|
|
56
53
|
connection.reboot_db_instance(id)
|
|
57
54
|
true
|
|
58
55
|
end
|
|
59
|
-
|
|
56
|
+
|
|
60
57
|
def snapshots
|
|
61
58
|
requires :id
|
|
62
59
|
connection.snapshots(:server => self)
|
|
63
60
|
end
|
|
64
|
-
|
|
61
|
+
|
|
65
62
|
def modify(immediately, options)
|
|
66
|
-
|
|
63
|
+
options[:security_group_names] ||= options['DBSecurityGroups']
|
|
64
|
+
params = self.class.new(options).attributes_to_params
|
|
65
|
+
data = connection.modify_db_instance(id, immediately, params)
|
|
67
66
|
merge_attributes(data.body['ModifyDBInstanceResult']['DBInstance'])
|
|
68
|
-
true
|
|
67
|
+
true
|
|
69
68
|
end
|
|
70
|
-
|
|
69
|
+
|
|
71
70
|
def save
|
|
72
71
|
requires :engine
|
|
73
72
|
requires :allocated_storage
|
|
74
73
|
requires :master_username
|
|
75
74
|
requires :password
|
|
75
|
+
|
|
76
|
+
self.flavor_id ||= 'db.m1.small'
|
|
77
|
+
|
|
78
|
+
data = connection.create_db_instance(id, attributes_to_params)
|
|
79
|
+
merge_attributes(data.body['CreateDBInstanceResult']['DBInstance'])
|
|
80
|
+
true
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
# Converts attributes to a parameter hash suitable for requests
|
|
84
|
+
def attributes_to_params
|
|
76
85
|
options = {
|
|
77
86
|
'AllocatedStorage' => allocated_storage,
|
|
78
87
|
'AutoMinorVersionUpgrade' => auto_minor_version_upgrade,
|
|
79
88
|
'BackupRetentionPeriod' => backup_retention_period,
|
|
80
89
|
'DBName' => db_name,
|
|
81
|
-
'DBParameterGroupName' => parameter_group_name,
|
|
90
|
+
'DBParameterGroupName' => parameter_group_name || attributes['DBParameterGroupName'],
|
|
82
91
|
'DBSecurityGroups' => security_group_names,
|
|
83
92
|
'DBInstanceIdentifier' => id,
|
|
84
93
|
'AvailabilityZone' => availability_zone,
|
|
85
94
|
'DBInstanceClass' => flavor_id,
|
|
86
|
-
'Port' => port,
|
|
95
|
+
'Port' => port || attributes['Port'],
|
|
87
96
|
'Engine' => engine,
|
|
88
97
|
'EngineVersion' => engine_version,
|
|
89
98
|
'MasterUsername' => master_username,
|
|
90
|
-
'MasterUserPassword' => password,
|
|
99
|
+
'MasterUserPassword' => password || attributes['MasterUserPassword'],
|
|
91
100
|
'PreferredMaintenanceWindow' => preferred_maintenance_window,
|
|
92
101
|
'PreferredBackupWindow' => preferred_backup_window,
|
|
93
102
|
'MultiAZ' => multi_az,
|
|
94
103
|
'LicenseModel' => license_model
|
|
95
104
|
}
|
|
96
|
-
options.delete_if {|key, value| value.nil?}
|
|
97
|
-
|
|
98
105
|
|
|
99
|
-
|
|
100
|
-
merge_attributes(data.body['CreateDBInstanceResult']['DBInstance'])
|
|
101
|
-
true
|
|
106
|
+
options.delete_if {|key, value| value.nil?}
|
|
102
107
|
end
|
|
103
|
-
|
|
104
108
|
end
|
|
105
109
|
end
|
|
106
110
|
end
|