fog 1.0.0 → 1.1.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/README.rdoc +2 -9
- data/Rakefile +3 -2
- data/docs/_layouts/default.html +13 -13
- data/docs/about/contributing.markdown +1 -1
- data/docs/about/getting_started.markdown +28 -3
- data/docs/dns/index.markdown +4 -4
- data/docs/index.markdown +2 -10
- data/docs/public/css/fog.css +14 -1
- data/docs/storage/index.markdown +2 -2
- data/fog.gemspec +6 -5
- data/lib/fog.rb +1 -1
- data/lib/fog/aws.rb +26 -1
- data/lib/fog/aws/auto_scaling.rb +3 -1
- data/lib/fog/aws/cloud_formation.rb +3 -0
- data/lib/fog/aws/cloud_watch.rb +17 -1
- data/lib/fog/aws/compute.rb +50 -18
- data/lib/fog/aws/elb.rb +4 -2
- data/lib/fog/aws/emr.rb +133 -0
- data/lib/fog/aws/models/cloud_watch/alarm.rb +12 -0
- data/lib/fog/aws/models/cloud_watch/alarm_data.rb +39 -0
- data/lib/fog/aws/models/cloud_watch/alarm_datum.rb +66 -0
- data/lib/fog/aws/models/cloud_watch/alarm_histories.rb +18 -0
- data/lib/fog/aws/models/cloud_watch/alarm_history.rb +16 -0
- data/lib/fog/aws/models/cloud_watch/alarms.rb +30 -0
- data/lib/fog/aws/models/compute/addresses.rb +1 -1
- data/lib/fog/aws/models/compute/key_pairs.rb +1 -1
- data/lib/fog/aws/models/compute/security_groups.rb +1 -1
- data/lib/fog/aws/models/compute/server.rb +4 -2
- data/lib/fog/aws/models/compute/servers.rb +1 -1
- data/lib/fog/aws/models/compute/snapshots.rb +1 -1
- data/lib/fog/aws/models/compute/spot_request.rb +21 -4
- data/lib/fog/aws/models/compute/spot_requests.rb +45 -1
- data/lib/fog/aws/models/compute/volumes.rb +1 -1
- data/lib/fog/aws/models/elb/load_balancer.rb +2 -0
- data/lib/fog/aws/models/storage/file.rb +1 -1
- data/lib/fog/aws/parsers/cdn/get_invalidation_list.rb +0 -1
- data/lib/fog/aws/parsers/cloud_formation/update_stack.rb +19 -0
- data/lib/fog/aws/parsers/cloud_watch/delete_alarms.rb +26 -0
- data/lib/fog/aws/parsers/cloud_watch/describe_alarm_history.rb +40 -0
- data/lib/fog/aws/parsers/cloud_watch/describe_alarms.rb +73 -0
- data/lib/fog/aws/parsers/cloud_watch/describe_alarms_for_metric.rb +71 -0
- data/lib/fog/aws/parsers/cloud_watch/disable_alarm_actions.rb +26 -0
- data/lib/fog/aws/parsers/cloud_watch/enable_alarm_actions.rb +26 -0
- data/lib/fog/aws/parsers/cloud_watch/get_metric_statistics.rb +1 -0
- data/lib/fog/aws/parsers/cloud_watch/put_metric_alarm.rb +26 -0
- data/lib/fog/aws/parsers/cloud_watch/set_alarm_state.rb +26 -0
- data/lib/fog/aws/parsers/compute/spot_instance_requests.rb +2 -2
- data/lib/fog/aws/parsers/emr/add_instance_groups.rb +28 -0
- data/lib/fog/aws/parsers/emr/add_job_flow_steps.rb +17 -0
- data/lib/fog/aws/parsers/emr/describe_job_flows.rb +140 -0
- data/lib/fog/aws/parsers/emr/modify_instance_groups.rb +17 -0
- data/lib/fog/aws/parsers/emr/run_job_flow.rb +19 -0
- data/lib/fog/aws/parsers/emr/set_termination_protection.rb +17 -0
- data/lib/fog/aws/parsers/emr/terminate_job_flows.rb +17 -0
- data/lib/fog/aws/rds.rb +3 -1
- data/lib/fog/aws/requests/cloud_formation/create_stack.rb +6 -0
- data/lib/fog/aws/requests/cloud_formation/update_stack.rb +62 -0
- data/lib/fog/aws/requests/cloud_watch/delete_alarms.rb +30 -0
- data/lib/fog/aws/requests/cloud_watch/describe_alarm_history.rb +33 -0
- data/lib/fog/aws/requests/cloud_watch/describe_alarms.rb +38 -0
- data/lib/fog/aws/requests/cloud_watch/describe_alarms_for_metric.rb +39 -0
- data/lib/fog/aws/requests/cloud_watch/disable_alarm_actions.rb +30 -0
- data/lib/fog/aws/requests/cloud_watch/enable_alarm_actions.rb +30 -0
- data/lib/fog/aws/requests/cloud_watch/put_metric_alarm.rb +84 -0
- data/lib/fog/aws/requests/cloud_watch/set_alarm_state.rb +31 -0
- data/lib/fog/aws/requests/compute/authorize_security_group_ingress.rb +141 -36
- data/lib/fog/aws/requests/compute/create_snapshot.rb +2 -3
- data/lib/fog/aws/requests/compute/create_tags.rb +5 -3
- data/lib/fog/aws/requests/compute/create_volume.rb +0 -1
- data/lib/fog/aws/requests/compute/delete_security_group.rb +25 -0
- data/lib/fog/aws/requests/compute/delete_tags.rb +3 -4
- data/lib/fog/aws/requests/compute/describe_addresses.rb +2 -2
- data/lib/fog/aws/requests/compute/describe_availability_zones.rb +5 -2
- data/lib/fog/aws/requests/compute/describe_images.rb +6 -9
- data/lib/fog/aws/requests/compute/describe_instances.rb +17 -8
- data/lib/fog/aws/requests/compute/describe_key_pairs.rb +2 -2
- data/lib/fog/aws/requests/compute/describe_regions.rb +2 -2
- data/lib/fog/aws/requests/compute/describe_reserved_instances.rb +1 -1
- data/lib/fog/aws/requests/compute/describe_security_groups.rb +2 -2
- data/lib/fog/aws/requests/compute/describe_snapshots.rb +7 -5
- data/lib/fog/aws/requests/compute/describe_volumes.rb +5 -4
- data/lib/fog/aws/requests/compute/modify_image_attribute.rb +32 -0
- data/lib/fog/aws/requests/compute/modify_instance_attribute.rb +1 -1
- data/lib/fog/aws/requests/compute/purchase_reserved_instances_offering.rb +1 -1
- data/lib/fog/aws/requests/compute/register_image.rb +0 -1
- data/lib/fog/aws/requests/compute/revoke_security_group_ingress.rb +41 -29
- data/lib/fog/aws/requests/compute/run_instances.rb +1 -2
- data/lib/fog/aws/requests/elb/create_load_balancer.rb +1 -1
- data/lib/fog/aws/requests/elb/create_load_balancer_listeners.rb +1 -1
- data/lib/fog/aws/requests/elb/deregister_instances_from_load_balancer.rb +1 -1
- data/lib/fog/aws/requests/elb/describe_instance_health.rb +2 -2
- data/lib/fog/aws/requests/elb/describe_load_balancers.rb +3 -3
- data/lib/fog/aws/requests/elb/register_instances_with_load_balancer.rb +2 -2
- data/lib/fog/aws/requests/emr/add_instance_groups.rb +46 -0
- data/lib/fog/aws/requests/emr/add_job_flow_steps.rb +49 -0
- data/lib/fog/aws/requests/emr/describe_job_flows.rb +108 -0
- data/lib/fog/aws/requests/emr/modify_instance_groups.rb +40 -0
- data/lib/fog/aws/requests/emr/run_job_flow.rb +106 -0
- data/lib/fog/aws/requests/emr/set_termination_protection.rb +39 -0
- data/lib/fog/aws/requests/emr/terminate_job_flows.rb +37 -0
- data/lib/fog/aws/requests/iam/get_server_certificate.rb +5 -7
- data/lib/fog/aws/requests/iam/upload_server_certificate.rb +1 -0
- data/lib/fog/aws/requests/simpledb/get_attributes.rb +2 -2
- data/lib/fog/aws/requests/simpledb/select.rb +1 -1
- data/lib/fog/aws/requests/storage/copy_object.rb +1 -1
- data/lib/fog/aws/requests/storage/get_object_url.rb +2 -2
- data/lib/fog/aws/requests/storage/hash_to_acl.rb +35 -25
- data/lib/fog/aws/ses.rb +1 -1
- data/lib/fog/aws/simpledb.rb +2 -0
- data/lib/fog/aws/sns.rb +3 -1
- data/lib/fog/aws/sqs.rb +4 -2
- data/lib/fog/aws/storage.rb +12 -3
- data/lib/fog/bin.rb +1 -1
- data/lib/fog/bin/aws.rb +8 -4
- data/lib/fog/bin/bluebox.rb +2 -2
- data/lib/fog/bin/brightbox.rb +1 -1
- data/lib/fog/bin/dnsimple.rb +1 -1
- data/lib/fog/bin/dnsmadeeasy.rb +1 -1
- data/lib/fog/bin/ecloud.rb +1 -1
- data/lib/fog/bin/glesys.rb +1 -1
- data/lib/fog/bin/go_grid.rb +1 -1
- data/lib/fog/bin/google.rb +1 -1
- data/lib/fog/bin/libvirt.rb +1 -1
- data/lib/fog/bin/linode.rb +2 -2
- data/lib/fog/bin/local.rb +1 -1
- data/lib/fog/bin/new_servers.rb +1 -1
- data/lib/fog/bin/ninefold.rb +2 -2
- data/lib/fog/bin/openstack.rb +1 -1
- data/lib/fog/bin/rackspace.rb +3 -3
- data/lib/fog/bin/slicehost.rb +1 -1
- data/lib/fog/bin/stormondemand.rb +1 -1
- data/lib/fog/bin/virtual_box.rb +1 -1
- data/lib/fog/bin/vmfusion.rb +1 -1
- data/lib/fog/bin/voxel.rb +1 -1
- data/lib/fog/bin/zerigo.rb +1 -1
- data/lib/fog/brightbox/models/compute/account.rb +1 -1
- data/lib/fog/compute/models/server.rb +1 -2
- data/lib/fog/core/attributes.rb +5 -5
- data/lib/fog/core/connection.rb +1 -1
- data/lib/fog/core/deprecation.rb +2 -2
- data/lib/fog/core/logger.rb +8 -3
- data/lib/fog/core/mock.rb +4 -0
- data/lib/fog/core/provider.rb +7 -2
- data/lib/fog/core/service.rb +8 -2
- data/lib/fog/dnsmadeeasy/models/dns/record.rb +3 -2
- data/lib/fog/dynect/dns.rb +25 -3
- data/lib/fog/ecloud/compute.rb +2 -6
- data/lib/fog/go_grid/requests/compute/grid_server_power.rb +1 -1
- data/lib/fog/google/models/storage/file.rb +1 -1
- data/lib/fog/google/requests/storage/get_object_url.rb +2 -2
- data/lib/fog/google/storage.rb +1 -1
- data/lib/fog/libvirt/models/compute/uri.rb +7 -3
- data/lib/fog/linode/models/compute/server.rb +10 -0
- data/lib/fog/ninefold/models/storage/file.rb +8 -6
- data/lib/fog/ninefold/models/storage/files.rb +3 -2
- data/lib/fog/ninefold/requests/storage/head_namespace.rb +20 -0
- data/lib/fog/ninefold/storage.rb +4 -2
- data/lib/fog/openstack.rb +4 -3
- data/lib/fog/openstack/compute.rb +8 -5
- data/lib/fog/openstack/models/compute/server.rb +10 -1
- data/lib/fog/openstack/requests/compute/create_server.rb +6 -8
- data/lib/fog/rackspace/load_balancers.rb +1 -0
- data/lib/fog/rackspace/models/dns/callback.rb +1 -1
- data/lib/fog/rackspace/models/dns/record.rb +1 -1
- data/lib/fog/rackspace/models/dns/zone.rb +1 -1
- data/lib/fog/slicehost/dns.rb +1 -0
- data/lib/fog/slicehost/models/dns/record.rb +7 -3
- data/lib/fog/slicehost/models/dns/zone.rb +1 -1
- data/lib/fog/slicehost/parsers/dns/create_record.rb +8 -2
- data/lib/fog/slicehost/parsers/dns/get_record.rb +17 -5
- data/lib/fog/slicehost/parsers/dns/get_records.rb +10 -2
- data/lib/fog/slicehost/requests/dns/get_record.rb +1 -1
- data/lib/fog/slicehost/requests/dns/get_records.rb +7 -8
- data/lib/fog/slicehost/requests/dns/update_record.rb +43 -0
- data/lib/fog/storm_on_demand/models/compute/balancers.rb +1 -1
- data/lib/fog/storm_on_demand/models/compute/configs.rb +1 -1
- data/lib/fog/storm_on_demand/models/compute/images.rb +1 -1
- data/lib/fog/storm_on_demand/models/compute/servers.rb +1 -1
- data/lib/fog/storm_on_demand/models/compute/templates.rb +1 -1
- data/lib/fog/terremark/vcloud.rb +1 -1
- data/lib/fog/vsphere/compute.rb +40 -23
- data/lib/fog/vsphere/models/compute/server.rb +1 -0
- data/lib/fog/vsphere/requests/compute/list_virtual_machines.rb +36 -4
- data/lib/fog/zerigo/dns.rb +14 -3
- data/lib/fog/zerigo/models/dns/record.rb +1 -1
- data/lib/fog/zerigo/models/dns/records.rb +5 -0
- data/lib/fog/zerigo/models/dns/zones.rb +2 -2
- data/lib/fog/zerigo/requests/dns/count_hosts.rb +20 -1
- data/lib/fog/zerigo/requests/dns/count_zones.rb +12 -1
- data/lib/fog/zerigo/requests/dns/create_host.rb +67 -1
- data/lib/fog/zerigo/requests/dns/create_zone.rb +44 -1
- data/lib/fog/zerigo/requests/dns/delete_host.rb +19 -0
- data/lib/fog/zerigo/requests/dns/delete_zone.rb +17 -0
- data/lib/fog/zerigo/requests/dns/find_hosts.rb +22 -1
- data/lib/fog/zerigo/requests/dns/get_host.rb +18 -1
- data/lib/fog/zerigo/requests/dns/get_zone.rb +19 -2
- data/lib/fog/zerigo/requests/dns/get_zone_stats.rb +23 -0
- data/lib/fog/zerigo/requests/dns/list_hosts.rb +20 -1
- data/lib/fog/zerigo/requests/dns/list_zones.rb +15 -0
- data/lib/fog/zerigo/requests/dns/update_host.rb +20 -1
- data/lib/fog/zerigo/requests/dns/update_zone.rb +20 -1
- data/tests/aws/models/cloud_watch/alarm_data_tests.rb +42 -0
- data/tests/aws/models/cloud_watch/alarm_history_tests.rb +22 -0
- data/tests/aws/models/compute/security_group_tests.rb +15 -10
- data/tests/aws/models/elb/model_tests.rb +4 -4
- data/tests/aws/requests/cloud_formation/stack_tests.rb +14 -0
- data/tests/aws/requests/cloud_watch/list_metrics_test.rb +5 -5
- data/tests/aws/requests/compute/image_tests.rb +33 -2
- data/tests/aws/requests/compute/instance_tests.rb +16 -1
- data/tests/aws/requests/compute/security_group_tests.rb +251 -32
- data/tests/aws/requests/compute/tag_tests.rb +42 -2
- data/tests/aws/requests/emr/helper.rb +172 -0
- data/tests/aws/requests/emr/instance_group_tests.rb +106 -0
- data/tests/aws/requests/emr/job_flow_tests.rb +88 -0
- data/tests/aws/requests/iam/server_certificate_tests.rb +20 -7
- data/tests/aws/requests/storage/bucket_tests.rb +82 -54
- data/tests/aws/requests/storage/hash_to_acl_tests.rb +173 -0
- data/tests/aws/requests/storage/object_tests.rb +44 -24
- data/tests/brightbox/requests/compute/helper.rb +15 -6
- data/tests/core/attribute_tests.rb +29 -0
- data/tests/core/mocking_tests.rb +60 -0
- data/tests/dns/models/record_tests.rb +4 -2
- data/tests/dns/models/records_tests.rb +4 -2
- data/tests/dns/models/zone_tests.rb +3 -1
- data/tests/dns/models/zones_tests.rb +4 -2
- data/tests/helper.rb +4 -0
- data/tests/rackspace/requests/dns/dns_tests.rb +16 -12
- data/tests/rackspace/requests/dns/records_tests.rb +13 -11
- data/tests/slicehost/requests/dns/dns_tests.rb +58 -11
- data/tests/vsphere/compute_tests.rb +18 -10
- data/tests/vsphere/requests/compute/vm_clone_tests.rb +1 -1
- metadata +214 -221
|
@@ -110,7 +110,8 @@ class Brightbox
|
|
|
110
110
|
"description" => String,
|
|
111
111
|
"source" => String,
|
|
112
112
|
"status" => String,
|
|
113
|
-
"owner" => String
|
|
113
|
+
"owner" => String,
|
|
114
|
+
"username" => Fog::Nullable::String,
|
|
114
115
|
}
|
|
115
116
|
|
|
116
117
|
INTERFACE = {
|
|
@@ -131,7 +132,8 @@ class Brightbox
|
|
|
131
132
|
"hostname" => String,
|
|
132
133
|
"created_at" => String,
|
|
133
134
|
"started_at" => Fog::Nullable::String,
|
|
134
|
-
"deleted_at" => Fog::Nullable::String
|
|
135
|
+
"deleted_at" => Fog::Nullable::String,
|
|
136
|
+
"username" => Fog::Nullable::String
|
|
135
137
|
}
|
|
136
138
|
|
|
137
139
|
SERVER_GROUP = {
|
|
@@ -139,6 +141,7 @@ class Brightbox
|
|
|
139
141
|
"resource_type" => String,
|
|
140
142
|
"url" => String,
|
|
141
143
|
"name" => String,
|
|
144
|
+
"created_at" => String,
|
|
142
145
|
"default" => Fog::Boolean,
|
|
143
146
|
"description" => Fog::Nullable::String
|
|
144
147
|
}
|
|
@@ -237,7 +240,8 @@ class Brightbox
|
|
|
237
240
|
"compatibility_mode" => Fog::Boolean,
|
|
238
241
|
"virtual_size" => Integer,
|
|
239
242
|
"disk_size" => Integer,
|
|
240
|
-
"ancestor" => Fog::Brightbox::Nullable::Image
|
|
243
|
+
"ancestor" => Fog::Brightbox::Nullable::Image,
|
|
244
|
+
"username" => Fog::Nullable::String
|
|
241
245
|
}
|
|
242
246
|
|
|
243
247
|
LOAD_BALANCER = {
|
|
@@ -271,10 +275,12 @@ class Brightbox
|
|
|
271
275
|
"server_groups" => [Brightbox::Compute::Formats::Nested::SERVER_GROUP],
|
|
272
276
|
"snapshots" => [Brightbox::Compute::Formats::Nested::IMAGE],
|
|
273
277
|
"interfaces" => [Brightbox::Compute::Formats::Nested::INTERFACE],
|
|
274
|
-
"zone" => Fog::Brightbox::Nullable::Zone
|
|
278
|
+
"zone" => Fog::Brightbox::Nullable::Zone,
|
|
279
|
+
"username" => Fog::Nullable::String
|
|
275
280
|
}
|
|
276
281
|
|
|
277
282
|
SERVER_GROUP = {
|
|
283
|
+
"created_at" => String,
|
|
278
284
|
"id" => String,
|
|
279
285
|
"resource_type" => String,
|
|
280
286
|
"url" => String,
|
|
@@ -420,7 +426,8 @@ class Brightbox
|
|
|
420
426
|
"compatibility_mode" => Fog::Boolean,
|
|
421
427
|
"virtual_size" => Integer,
|
|
422
428
|
"disk_size" => Integer,
|
|
423
|
-
"ancestor" => Fog::Brightbox::Nullable::Image
|
|
429
|
+
"ancestor" => Fog::Brightbox::Nullable::Image,
|
|
430
|
+
"username" => Fog::Nullable::String
|
|
424
431
|
}
|
|
425
432
|
|
|
426
433
|
INTERFACE = {
|
|
@@ -470,10 +477,12 @@ class Brightbox
|
|
|
470
477
|
"snapshots" => [Brightbox::Compute::Formats::Nested::IMAGE],
|
|
471
478
|
"server_groups" => [Brightbox::Compute::Formats::Nested::SERVER_GROUP],
|
|
472
479
|
"interfaces" => [Brightbox::Compute::Formats::Nested::INTERFACE],
|
|
473
|
-
"zone" => Brightbox::Compute::Formats::Nested::ZONE
|
|
480
|
+
"zone" => Brightbox::Compute::Formats::Nested::ZONE,
|
|
481
|
+
"username" => Fog::Nullable::String
|
|
474
482
|
}
|
|
475
483
|
|
|
476
484
|
SERVER_GROUP = {
|
|
485
|
+
"created_at" => String,
|
|
477
486
|
"id" => String,
|
|
478
487
|
"resource_type" => String,
|
|
479
488
|
"url" => String,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
class FogAttributeTestModel < Fog::Model
|
|
2
2
|
attribute :key, :aliases => 'keys', :squash => "id"
|
|
3
3
|
attribute :time, :type => :time
|
|
4
|
+
attribute :bool, :type => :boolean
|
|
4
5
|
end
|
|
5
6
|
|
|
6
7
|
Shindo.tests('Fog::Attributes', 'core') do
|
|
@@ -51,4 +52,32 @@ Shindo.tests('Fog::Attributes', 'core') do
|
|
|
51
52
|
|
|
52
53
|
end
|
|
53
54
|
|
|
55
|
+
tests(':type => :boolean') do
|
|
56
|
+
tests(':bool => "true"').returns(true) do
|
|
57
|
+
@model.merge_attributes(:bool => 'true')
|
|
58
|
+
@model.bool
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
tests(':bool => true').returns(true) do
|
|
62
|
+
@model.merge_attributes(:bool => true)
|
|
63
|
+
@model.bool
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
tests(':bool => "false"').returns(false) do
|
|
67
|
+
@model.merge_attributes(:bool => 'false')
|
|
68
|
+
@model.bool
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
tests(':bool => false').returns(false) do
|
|
72
|
+
@model.merge_attributes(:bool => false)
|
|
73
|
+
@model.bool
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
tests(':bool => "foo"').returns(nil) do
|
|
77
|
+
@model.merge_attributes(:bool => "foo")
|
|
78
|
+
@model.bool
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
end
|
|
82
|
+
|
|
54
83
|
end
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
Shindo.tests('Fog mocking', 'core') do
|
|
2
|
+
before do
|
|
3
|
+
@fog_was_mocked = Fog.mock?
|
|
4
|
+
Fog.unmock! if @fog_was_mocked
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
after do
|
|
8
|
+
Fog.mock! if @fog_was_mocked
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
tests('Fog.mock!') do
|
|
12
|
+
tests('Fog.mock!').returns(true) do
|
|
13
|
+
Fog.mock!
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
tests('Fog.mock? without Fog.mock!').returns(false) do
|
|
17
|
+
Fog.mock?
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
tests('Fog.mock? with Fog.mock!').returns(true) do
|
|
21
|
+
Fog.mock!
|
|
22
|
+
Fog.mock?
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
tests('Fog.mocking? without Fog.mock!').returns(false) do
|
|
26
|
+
Fog.mocking?
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
tests('Fog.mocking? with Fog.mock!').returns(true) do
|
|
30
|
+
Fog.mock!
|
|
31
|
+
Fog.mocking?
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
tests('Fog::Mock.delay') do
|
|
36
|
+
tests('Fog::Mock.delay').returns(1, "defaults to 1") do
|
|
37
|
+
Fog::Mock.delay
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
tests('Fog::Mock.delay = 2').returns(2, "changes Fog::Mock.delay to 2") do
|
|
41
|
+
Fog::Mock.delay = 2
|
|
42
|
+
Fog::Mock.delay
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
tests('Fog::Mock.delay = 0').returns(0, "changes Fog::Mock.delay to 0") do
|
|
46
|
+
Fog::Mock.delay = 0
|
|
47
|
+
Fog::Mock.delay
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
tests('Fog::Mock.delay = -1').raises(ArgumentError) do
|
|
51
|
+
Fog::Mock.delay = -1
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
tests('Fog::Mock.not_implemented').raises(Fog::Errors::MockNotImplemented) do
|
|
56
|
+
Fog::Mock.not_implemented
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
end
|
|
@@ -3,17 +3,19 @@ for provider, config in dns_providers
|
|
|
3
3
|
# FIXME: delay/timing breaks things :(
|
|
4
4
|
next if [:dnsmadeeasy].include?(provider)
|
|
5
5
|
|
|
6
|
+
domain_name = uniq_id + '.com'
|
|
7
|
+
|
|
6
8
|
Shindo.tests("Fog::DNS[:#{provider}] | record", [provider.to_s]) do
|
|
7
9
|
|
|
8
10
|
record_attributes = {
|
|
9
|
-
:name => 'www.
|
|
11
|
+
:name => 'www.' + domain_name,
|
|
10
12
|
:type => 'A',
|
|
11
13
|
:value => '1.2.3.4'
|
|
12
14
|
}.merge!(config[:record_attributes] || {})
|
|
13
15
|
|
|
14
16
|
if !Fog.mocking? || config[:mocked]
|
|
15
17
|
zone_attributes = {
|
|
16
|
-
:domain =>
|
|
18
|
+
:domain => domain_name
|
|
17
19
|
}.merge(config[:zone_attributes] || {})
|
|
18
20
|
|
|
19
21
|
@zone = Fog::DNS[provider].zones.create(zone_attributes)
|
|
@@ -3,17 +3,19 @@ for provider, config in dns_providers
|
|
|
3
3
|
# FIXME: delay/timing breaks things :(
|
|
4
4
|
next if [:dnsmadeeasy].include?(provider)
|
|
5
5
|
|
|
6
|
+
domain_name = uniq_id + '.com'
|
|
7
|
+
|
|
6
8
|
Shindo.tests("Fog::DNS[:#{provider}] | records", [provider.to_s]) do
|
|
7
9
|
|
|
8
10
|
record_attributes = {
|
|
9
|
-
:name => 'www.
|
|
11
|
+
:name => 'www.' + domain_name,
|
|
10
12
|
:type => 'A',
|
|
11
13
|
:value => '1.2.3.4'
|
|
12
14
|
}.merge!(config[:record_attributes] || {})
|
|
13
15
|
|
|
14
16
|
if !Fog.mocking? || config[:mocked]
|
|
15
17
|
zone_attributes = {
|
|
16
|
-
:domain =>
|
|
18
|
+
:domain => domain_name
|
|
17
19
|
}.merge(config[:zone_attributes] || {})
|
|
18
20
|
|
|
19
21
|
@zone = Fog::DNS[provider].zones.create(zone_attributes)
|
|
@@ -3,10 +3,12 @@ for provider, config in dns_providers
|
|
|
3
3
|
# FIXME: delay/timing breaks things :(
|
|
4
4
|
next if [:dnsmadeeasy].include?(provider)
|
|
5
5
|
|
|
6
|
+
domain_name = uniq_id + '.com'
|
|
7
|
+
|
|
6
8
|
Shindo.tests("Fog::DNS[:#{provider}] | zone", [provider.to_s]) do
|
|
7
9
|
|
|
8
10
|
zone_attributes = {
|
|
9
|
-
:domain =>
|
|
11
|
+
:domain => domain_name
|
|
10
12
|
}.merge!(config[:zone_attributes] || {})
|
|
11
13
|
|
|
12
14
|
model_tests(Fog::DNS[provider].zones, zone_attributes, config[:mocked])
|
|
@@ -3,14 +3,16 @@ for provider, config in dns_providers
|
|
|
3
3
|
# FIXME: delay/timing breaks things :(
|
|
4
4
|
next if [:dnsmadeeasy].include?(provider)
|
|
5
5
|
|
|
6
|
+
domain_name = uniq_id + '.com'
|
|
7
|
+
|
|
6
8
|
Shindo.tests("Fog::DNS[:#{provider}] | zones", [provider.to_s]) do
|
|
7
9
|
|
|
8
10
|
zone_attributes = {
|
|
9
|
-
:domain =>
|
|
11
|
+
:domain => domain_name
|
|
10
12
|
}.merge!(config[:zone_attributes] || {})
|
|
11
13
|
|
|
12
14
|
collection_tests(Fog::DNS[provider].zones, zone_attributes, config[:mocked])
|
|
13
15
|
|
|
14
16
|
end
|
|
15
17
|
|
|
16
|
-
end
|
|
18
|
+
end
|
data/tests/helper.rb
CHANGED
|
@@ -7,6 +7,10 @@ def lorem_file
|
|
|
7
7
|
File.open(File.dirname(__FILE__) + '/lorem.txt', 'r')
|
|
8
8
|
end
|
|
9
9
|
|
|
10
|
+
def array_differences(array_a, array_b)
|
|
11
|
+
(array_a - array_b) | (array_b - array_a)
|
|
12
|
+
end
|
|
13
|
+
|
|
10
14
|
# check to see which credentials are available and add others to the skipped tags list
|
|
11
15
|
all_providers = ['aws', 'bluebox', 'brightbox', 'dnsimple', 'dnsmadeeasy', 'dynect', 'ecloud', 'glesys', 'gogrid', 'google', 'linode', 'local', 'ninefold', 'newservers', 'openstack', 'rackspace', 'slicehost', 'stormondemand', 'voxel', 'zerigo']
|
|
12
16
|
available_providers = Fog.available_providers.map {|provider| provider.downcase}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
Shindo.tests('Fog::DNS[:rackspace] | DNS requests', ['rackspace', 'dns']) do
|
|
2
2
|
|
|
3
3
|
pending if Fog.mocking?
|
|
4
|
+
domain_name = uniq_id + '.com'
|
|
4
5
|
|
|
5
6
|
tests('success on simple domain') do
|
|
6
|
-
domain_tests(Fog::DNS[:rackspace], {:name =>
|
|
7
|
+
domain_tests(Fog::DNS[:rackspace], {:name => domain_name, :email => 'hostmaster@' + domain_name, :records => [{:ttl => 300, :name => domain_name, :type => 'A', :data => '192.168.1.1'}]}) do
|
|
7
8
|
|
|
8
9
|
tests('list_domains').formats(LIST_DOMAIN_FORMAT.reject {|key,value| key == 'links'}) do
|
|
9
10
|
Fog::DNS[:rackspace].list_domains.body
|
|
@@ -27,21 +28,21 @@ Shindo.tests('Fog::DNS[:rackspace] | DNS requests', ['rackspace', 'dns']) do
|
|
|
27
28
|
tests('success for domain with multiple records') do
|
|
28
29
|
domain_tests(Fog::DNS[:rackspace],
|
|
29
30
|
{
|
|
30
|
-
:name =>
|
|
31
|
-
:email => 'hostmaster@
|
|
31
|
+
:name => domain_name,
|
|
32
|
+
:email => 'hostmaster@' + domain_name,
|
|
32
33
|
:records =>
|
|
33
34
|
[
|
|
34
35
|
{
|
|
35
36
|
:ttl => 300,
|
|
36
|
-
:name =>
|
|
37
|
+
:name => domain_name,
|
|
37
38
|
:type => 'A',
|
|
38
39
|
:data => '192.168.1.1'
|
|
39
40
|
},
|
|
40
41
|
{
|
|
41
42
|
:ttl => 3600,
|
|
42
|
-
:name =>
|
|
43
|
+
:name => domain_name,
|
|
43
44
|
:type => 'MX',
|
|
44
|
-
:data => 'mx.
|
|
45
|
+
:data => 'mx.' + domain_name,
|
|
45
46
|
:priority => 10
|
|
46
47
|
}
|
|
47
48
|
]
|
|
@@ -49,21 +50,24 @@ Shindo.tests('Fog::DNS[:rackspace] | DNS requests', ['rackspace', 'dns']) do
|
|
|
49
50
|
end
|
|
50
51
|
|
|
51
52
|
tests('success for multiple domains') do
|
|
53
|
+
domain1_name = uniq_id + '-1.com'
|
|
54
|
+
domain2_name = uniq_id + '-2.com'
|
|
55
|
+
|
|
52
56
|
domains_tests(Fog::DNS[:rackspace],
|
|
53
57
|
[
|
|
54
|
-
{:name =>
|
|
55
|
-
{:name =>
|
|
58
|
+
{:name => domain1_name, :email => 'hostmaster@' + domain1_name, :records => [{:ttl => 300, :name => domain1_name, :type => 'A', :data => '192.168.1.1'}]},
|
|
59
|
+
{:name => domain2_name, :email => 'hostmaster@' + domain2_name, :records => [{:ttl => 300, :name => domain2_name, :type => 'A', :data => '192.168.1.1'}]}
|
|
56
60
|
])
|
|
57
61
|
end
|
|
58
62
|
|
|
59
63
|
tests('success for domain with subdomain') do
|
|
60
64
|
domains_tests(Fog::DNS[:rackspace],
|
|
61
65
|
[
|
|
62
|
-
{:name =>
|
|
63
|
-
{:name => 'subdomain.
|
|
66
|
+
{:name => domain_name, :email => 'hostmaster@' + domain_name, :records => [{:ttl => 300, :name => domain_name, :type => 'A', :data => '192.168.1.1'}]},
|
|
67
|
+
{:name => 'subdomain.' + domain_name, :email => 'hostmaster@subdomain.' + domain_name, :records => [{:ttl => 300, :name =>'subdomain.' + domain_name, :type => 'A', :data => '192.168.1.1'}]}
|
|
64
68
|
], true) do
|
|
65
69
|
|
|
66
|
-
@root_domain_id = @domain_details.find { |domain| domain['name'] ==
|
|
70
|
+
@root_domain_id = @domain_details.find { |domain| domain['name'] == domain_name }['id']
|
|
67
71
|
|
|
68
72
|
tests("list_domain_details('#{@root_domain_id}', :show_records => false, :show_subdomains => false)") do
|
|
69
73
|
response = Fog::DNS[:rackspace].list_domain_details(@root_domain_id, :show_records => false, :show_subdomains => false)
|
|
@@ -89,7 +93,7 @@ Shindo.tests('Fog::DNS[:rackspace] | DNS requests', ['rackspace', 'dns']) do
|
|
|
89
93
|
wait_for Fog::DNS[:rackspace], Fog::DNS[:rackspace].remove_domain(@root_domain_id, :delete_subdomains => true)
|
|
90
94
|
|
|
91
95
|
test('domain and subdomains were really deleted') do
|
|
92
|
-
(Fog::DNS[:rackspace].list_domains.body['domains'].collect { |domain| domain['name'] } & [
|
|
96
|
+
(Fog::DNS[:rackspace].list_domains.body['domains'].collect { |domain| domain['name'] } & [domain_name, 'subdomain.' + domain_name]).empty?
|
|
93
97
|
end
|
|
94
98
|
end
|
|
95
99
|
end
|
|
@@ -2,7 +2,9 @@ Shindo.tests('Fog::DNS[:rackspace] | dns records requests', ['rackspace', 'dns']
|
|
|
2
2
|
|
|
3
3
|
pending if Fog.mocking?
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
domain_name = uniq_id + '.com'
|
|
6
|
+
|
|
7
|
+
domain_tests(Fog::DNS[:rackspace], {:name => domain_name, :email => 'hostmaster@' + domain_name, :records => [{:ttl => 300, :name => domain_name, :type => 'A', :data => '192.168.1.1'}]}) do
|
|
6
8
|
|
|
7
9
|
tests('success on single record') do
|
|
8
10
|
|
|
@@ -10,18 +12,18 @@ Shindo.tests('Fog::DNS[:rackspace] | dns records requests', ['rackspace', 'dns']
|
|
|
10
12
|
Fog::DNS[:rackspace].list_records(@domain_id).body
|
|
11
13
|
end
|
|
12
14
|
|
|
13
|
-
tests("add_records(#{@domain_id}, [{ :name => 'test1
|
|
14
|
-
response = wait_for Fog::DNS[:rackspace], Fog::DNS[:rackspace].add_records(@domain_id, [{ :name => 'test1.
|
|
15
|
-
@record_id = response.body['records'].first['id']
|
|
16
|
-
response.body
|
|
15
|
+
tests("add_records(#{@domain_id}, [{ :name => 'test1.#{domain_name}', :type => 'A', :data => '192.168.2.1'}])").formats(RECORD_LIST_FORMAT) do
|
|
16
|
+
response = wait_for Fog::DNS[:rackspace], Fog::DNS[:rackspace].add_records(@domain_id, [{ :name => 'test1.' + domain_name, :type => 'A', :data => '192.168.2.1'}])
|
|
17
|
+
@record_id = response.body['response']['records'].first['id']
|
|
18
|
+
response.body['response']
|
|
17
19
|
end
|
|
18
20
|
|
|
19
21
|
tests("list_record_details(#{@domain_id}, #{@record_id})").formats(RECORD_FORMAT) do
|
|
20
22
|
Fog::DNS[:rackspace].list_record_details(@domain_id, @record_id).body
|
|
21
23
|
end
|
|
22
24
|
|
|
23
|
-
tests("modify_record(#{@domain_id}, #{@record_id}, { :ttl => 500, :name => 'test2
|
|
24
|
-
wait_for Fog::DNS[:rackspace], Fog::DNS[:rackspace].modify_record(@domain_id, @record_id, { :ttl => 500, :name => 'test2.
|
|
25
|
+
tests("modify_record(#{@domain_id}, #{@record_id}, { :ttl => 500, :name => 'test2.#{domain_name}', :data => '192.168.3.1' })").succeeds do
|
|
26
|
+
wait_for Fog::DNS[:rackspace], Fog::DNS[:rackspace].modify_record(@domain_id, @record_id, { :ttl => 500, :name => 'test2.' + domain_name, :data => '192.168.3.1' })
|
|
25
27
|
end
|
|
26
28
|
|
|
27
29
|
tests("remove_record(#{@domain_id}, #{@record_id})").succeeds do
|
|
@@ -33,14 +35,14 @@ Shindo.tests('Fog::DNS[:rackspace] | dns records requests', ['rackspace', 'dns']
|
|
|
33
35
|
|
|
34
36
|
records_attributes =
|
|
35
37
|
[
|
|
36
|
-
{ :name => 'test1.
|
|
37
|
-
{ :name =>
|
|
38
|
+
{ :name => 'test1.' + domain_name, :type => 'A', :data => '192.168.2.1'},
|
|
39
|
+
{ :name => domain_name, :type => 'MX', :priority => 10, :data => 'mx.' + domain_name}
|
|
38
40
|
]
|
|
39
41
|
|
|
40
42
|
tests("add_records(#{@domain_id}, #{records_attributes})").formats(RECORD_LIST_FORMAT) do
|
|
41
43
|
response = wait_for Fog::DNS[:rackspace], Fog::DNS[:rackspace].add_records(@domain_id, records_attributes)
|
|
42
|
-
@record_ids = response.body['records'].collect { |record| record['id'] }
|
|
43
|
-
response.body
|
|
44
|
+
@record_ids = response.body['response']['records'].collect { |record| record['id'] }
|
|
45
|
+
response.body['response']
|
|
44
46
|
end
|
|
45
47
|
|
|
46
48
|
tests("remove_records(#{@domain_id}, #{@record_ids})").succeeds do
|
|
@@ -183,11 +183,11 @@ Shindo.tests('Fog::DNS[:slicehost] | DNS requests', ['slicehost', 'dns']) do
|
|
|
183
183
|
response = Fog::DNS[:slicehost].get_record(@record_id)
|
|
184
184
|
if response.status == 200
|
|
185
185
|
mail_domain = 'mail.' + @domain
|
|
186
|
-
record = response.body
|
|
187
|
-
if (record['
|
|
188
|
-
(record['
|
|
186
|
+
record = response.body
|
|
187
|
+
if (record['record_type'] == 'MX') and (record['name'] == @domain) and
|
|
188
|
+
(record['value'] == mail_domain) and (record['ttl'] == 3600) and (record['active'] == 'N') and
|
|
189
189
|
(record['aux'] == "10")
|
|
190
|
-
result= true
|
|
190
|
+
result = true
|
|
191
191
|
end
|
|
192
192
|
end
|
|
193
193
|
|
|
@@ -197,7 +197,7 @@ Shindo.tests('Fog::DNS[:slicehost] | DNS requests', ['slicehost', 'dns']) do
|
|
|
197
197
|
test('get records - verify all parameters for one record') do
|
|
198
198
|
pending if Fog.mocking?
|
|
199
199
|
|
|
200
|
-
result= false
|
|
200
|
+
result = false
|
|
201
201
|
|
|
202
202
|
response = Fog::DNS[:slicehost].get_records()
|
|
203
203
|
if response.status == 200
|
|
@@ -205,22 +205,69 @@ Shindo.tests('Fog::DNS[:slicehost] | DNS requests', ['slicehost', 'dns']) do
|
|
|
205
205
|
|
|
206
206
|
#find mx record
|
|
207
207
|
records.each {|record|
|
|
208
|
-
if record['
|
|
208
|
+
if (record['record_type'] == 'MX') and (record['name'] == @domain)
|
|
209
209
|
|
|
210
210
|
mail_domain = 'mail.' + @domain
|
|
211
|
-
if (record['
|
|
212
|
-
(record['
|
|
211
|
+
if (record['record_type'] == 'MX') and (record['name'] == @domain) and
|
|
212
|
+
(record['value'] == mail_domain) and (record['ttl'] == 3600) and (record['active'] == 'N') and
|
|
213
213
|
(record['aux'] == "10")
|
|
214
|
-
result= true
|
|
215
|
-
break
|
|
214
|
+
result = true
|
|
216
215
|
end
|
|
217
|
-
|
|
216
|
+
break
|
|
218
217
|
end
|
|
219
218
|
}
|
|
220
219
|
end
|
|
221
220
|
|
|
222
221
|
result
|
|
223
222
|
end
|
|
223
|
+
|
|
224
|
+
test('update record - verify all parameters for one record') do
|
|
225
|
+
pending if Fog.mocking?
|
|
226
|
+
|
|
227
|
+
result = false
|
|
228
|
+
|
|
229
|
+
specific_record = nil
|
|
230
|
+
|
|
231
|
+
response = Fog::DNS[:slicehost].get_records()
|
|
232
|
+
if response.status == 200
|
|
233
|
+
records = response.body['records']
|
|
234
|
+
|
|
235
|
+
#find mx record
|
|
236
|
+
records.each {|record|
|
|
237
|
+
if (record['record_type'] == 'MX') and (record['name'] == @domain)
|
|
238
|
+
specific_record = record
|
|
239
|
+
break
|
|
240
|
+
end
|
|
241
|
+
}
|
|
242
|
+
end
|
|
243
|
+
|
|
244
|
+
if (specific_record) #Try to change the TTL for this MX record if we've successfully created it.
|
|
245
|
+
response = Fog::DNS[:slicehost].update_record(specific_record['id'], specific_record['record_type'], specific_record['zone_id'],
|
|
246
|
+
specific_record['name'], specific_record['value'], {:ttl => 7200, :active => "N", :aux => "10"})
|
|
247
|
+
|
|
248
|
+
mail_domain = 'mail.' + @domain
|
|
249
|
+
|
|
250
|
+
record = Fog::DNS[:slicehost].get_record(specific_record['id']).body
|
|
251
|
+
|
|
252
|
+
if (record['record_type'] == 'MX') and (record['name'] == @domain) and
|
|
253
|
+
(record['value'] == mail_domain) and (record['ttl'] == 7200) and (record['active'] == 'N') and
|
|
254
|
+
(record['aux'] == "10")
|
|
255
|
+
result = true
|
|
256
|
+
end
|
|
257
|
+
|
|
258
|
+
end
|
|
259
|
+
|
|
260
|
+
result
|
|
261
|
+
end
|
|
262
|
+
|
|
263
|
+
test("newly created zone returns only records which we added to it, not other records already in account") do
|
|
264
|
+
pending if Fog.mocking?
|
|
265
|
+
|
|
266
|
+
@new_zone = Fog::DNS[:slicehost].zones.get(@zone_id)
|
|
267
|
+
|
|
268
|
+
records = @new_zone.records
|
|
269
|
+
records.length == @new_records.length
|
|
270
|
+
end
|
|
224
271
|
|
|
225
272
|
test("delete #{@new_records.count} records created") do
|
|
226
273
|
pending if Fog.mocking?
|