fog 0.10.0 → 0.11.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
@@ -23,7 +23,7 @@ module Fog
|
|
23
23
|
|
24
24
|
def end_element(name)
|
25
25
|
case name
|
26
|
-
when 'Arn'
|
26
|
+
when 'Arn', 'Path'
|
27
27
|
if @in_group
|
28
28
|
@response['Group'][name] = value
|
29
29
|
elsif @in_users
|
@@ -35,7 +35,7 @@ module Fog
|
|
35
35
|
@response['Group'][name] = value
|
36
36
|
when 'Users'
|
37
37
|
@in_users = false
|
38
|
-
when 'UserId', 'UserName'
|
38
|
+
when 'UserId', 'UserName'
|
39
39
|
@user[name] = value
|
40
40
|
when 'member'
|
41
41
|
@response['Users'] << @user
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class IAM
|
4
|
+
class Real
|
5
|
+
# Updates the name and/or the path of the specified server certificate.
|
6
|
+
#
|
7
|
+
# ==== Parameters
|
8
|
+
# * server_certificate_name<~String> - The name of the server
|
9
|
+
# certificate that you want to update.
|
10
|
+
# * options<~Hash>:
|
11
|
+
# * 'NewPath'<~String> - The new path for the server certificate.
|
12
|
+
# Include this only if you are updating the server certificate's
|
13
|
+
# path.
|
14
|
+
# * 'NewServerCertificateName'<~String> - The new name for the server
|
15
|
+
# certificate. Include this only if you are updating the server
|
16
|
+
# certificate's name.
|
17
|
+
#
|
18
|
+
# ==== Returns
|
19
|
+
# * response<~Excon::Response>:
|
20
|
+
# * body<~Hash>:
|
21
|
+
# * 'RequestId'<~String> - Id of the request
|
22
|
+
#
|
23
|
+
# ==== See Also
|
24
|
+
# http://docs.amazonwebservices.com/IAM/latest/APIReference/index.html?API_UpdateServerCertificate.html
|
25
|
+
#
|
26
|
+
def update_server_certificate(server_certificate_name, options = {})
|
27
|
+
request({
|
28
|
+
'Action' => 'UpdateServerCertificate',
|
29
|
+
'ServerCertificateName' => server_certificate_name,
|
30
|
+
:parser => Fog::Parsers::AWS::IAM::Basic.new
|
31
|
+
}.merge!(options))
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
data/lib/fog/bin.rb
CHANGED
@@ -4,7 +4,7 @@ module Fog
|
|
4
4
|
class << self
|
5
5
|
|
6
6
|
def available_providers
|
7
|
-
@providers.select {|provider| Kernel.const_get(provider).available?}
|
7
|
+
@available_providers ||= @providers.select {|provider| Kernel.const_get(provider).available?}.sort
|
8
8
|
end
|
9
9
|
|
10
10
|
end
|
@@ -58,6 +58,7 @@ require 'fog/bin/bluebox'
|
|
58
58
|
require 'fog/bin/brightbox'
|
59
59
|
require 'fog/bin/dnsimple'
|
60
60
|
require 'fog/bin/dnsmadeeasy'
|
61
|
+
require 'fog/bin/dynect'
|
61
62
|
require 'fog/bin/ecloud'
|
62
63
|
require 'fog/bin/go_grid'
|
63
64
|
require 'fog/bin/google'
|
@@ -0,0 +1,30 @@
|
|
1
|
+
class Dynect < Fog::Bin
|
2
|
+
class << self
|
3
|
+
|
4
|
+
def class_for(key)
|
5
|
+
case key
|
6
|
+
when :dns
|
7
|
+
Fog::DNS::Dynect
|
8
|
+
else
|
9
|
+
raise ArgumentError, "Unrecognized service: #{key}"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def [](service)
|
14
|
+
@@connections ||= Hash.new do |hash, key|
|
15
|
+
hash[key] = case key
|
16
|
+
when :dns
|
17
|
+
Fog::DNS.new(:provider => 'Dynect')
|
18
|
+
else
|
19
|
+
raise ArgumentError, "Unrecognized service: #{service}"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
@@connections[service]
|
23
|
+
end
|
24
|
+
|
25
|
+
def services
|
26
|
+
[:dns]
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
end
|
data/lib/fog/bin/rackspace.rb
CHANGED
@@ -9,6 +9,8 @@ class Rackspace < Fog::Bin
|
|
9
9
|
Fog::Compute::Rackspace
|
10
10
|
when :storage
|
11
11
|
Fog::Storage::Rackspace
|
12
|
+
when :load_balancers
|
13
|
+
Fog::Rackspace::LoadBalancers
|
12
14
|
else
|
13
15
|
raise ArgumentError, "Unrecognized service: #{key}"
|
14
16
|
end
|
@@ -25,6 +27,8 @@ class Rackspace < Fog::Bin
|
|
25
27
|
Fog::Compute.new(:provider => 'Rackspace')
|
26
28
|
when :dns
|
27
29
|
Fog::DNS.new(:provider => 'Rackspace')
|
30
|
+
when :load_balancers
|
31
|
+
Fog::Rackspace::LoadBalancers.new
|
28
32
|
when :storage
|
29
33
|
Formatador.display_line("[yellow][WARN] Rackspace[:storage] is deprecated, use Storage[:rackspace] instead[/]")
|
30
34
|
Fog::Storage.new(:provider => 'Rackspace')
|
data/lib/fog/cdn.rb
CHANGED
data/lib/fog/cdn/aws.rb
CHANGED
@@ -9,11 +9,17 @@ module Fog
|
|
9
9
|
|
10
10
|
request_path 'fog/cdn/requests/aws'
|
11
11
|
request 'delete_distribution'
|
12
|
+
request 'delete_streaming_distribution'
|
12
13
|
request 'get_distribution'
|
13
14
|
request 'get_distribution_list'
|
15
|
+
request 'get_invalidation_list'
|
16
|
+
request 'get_streaming_distribution'
|
17
|
+
request 'get_streaming_distribution_list'
|
14
18
|
request 'post_distribution'
|
19
|
+
request 'post_streaming_distribution'
|
15
20
|
request 'post_invalidation'
|
16
21
|
request 'put_distribution_config'
|
22
|
+
request 'put_streaming_distribution_config'
|
17
23
|
|
18
24
|
class Mock
|
19
25
|
|
@@ -0,0 +1,43 @@
|
|
1
|
+
module Fog
|
2
|
+
module Parsers
|
3
|
+
module CDN
|
4
|
+
module AWS
|
5
|
+
|
6
|
+
class GetInvalidationList < Fog::Parsers::Base
|
7
|
+
|
8
|
+
def reset
|
9
|
+
@invalidation_summary = { }
|
10
|
+
@response = { 'InvalidationSummary' => [] }
|
11
|
+
end
|
12
|
+
|
13
|
+
def start_element(name, attrs = [])
|
14
|
+
super
|
15
|
+
end
|
16
|
+
|
17
|
+
def end_element(name)
|
18
|
+
puts name
|
19
|
+
case name
|
20
|
+
when 'InvalidationSummary'
|
21
|
+
@response['InvalidationSummary'] << @invalidation_summary
|
22
|
+
@invalidation_summary = {}
|
23
|
+
when 'Id', 'Status'
|
24
|
+
@invalidation_summary[name] = @value
|
25
|
+
when 'IsTruncated'
|
26
|
+
if @value == 'true'
|
27
|
+
@response[name] = true
|
28
|
+
else
|
29
|
+
@response[name] = false
|
30
|
+
end
|
31
|
+
when 'Marker', 'NextMarker'
|
32
|
+
@response[name] = @value
|
33
|
+
when 'MaxItems'
|
34
|
+
@response[name] = @value.to_i
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
module Fog
|
2
|
+
module Parsers
|
3
|
+
module CDN
|
4
|
+
module AWS
|
5
|
+
|
6
|
+
class GetStreamingDistributionList < Fog::Parsers::Base
|
7
|
+
|
8
|
+
def reset
|
9
|
+
@distribution_summary = { 'CNAME' => [], 'TrustedSigners' => [] }
|
10
|
+
@response = { 'StreamingDistributionSummary' => [] }
|
11
|
+
end
|
12
|
+
|
13
|
+
def start_element(name, attrs = [])
|
14
|
+
super
|
15
|
+
case name
|
16
|
+
when 'S3Origin'
|
17
|
+
@origin = name
|
18
|
+
@distribution_summary[@origin] = {}
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def end_element(name)
|
23
|
+
case name
|
24
|
+
when 'StreamingDistributionSummary'
|
25
|
+
@response['StreamingDistributionSummary'] << @distribution_summary
|
26
|
+
@distribution_summary = { 'CNAME' => [], 'TrustedSigners' => [] }
|
27
|
+
when 'Comment', 'DomainName', 'Id', 'Status'
|
28
|
+
@distribution_summary[name] = @value
|
29
|
+
when 'CNAME'
|
30
|
+
@distribution_summary[name] << @value
|
31
|
+
when 'DNSName', 'OriginAccessIdentity'
|
32
|
+
@distribution_summary[@origin][name] = @value
|
33
|
+
when 'Enabled'
|
34
|
+
if @value == 'true'
|
35
|
+
@distribution_summary[name] = true
|
36
|
+
else
|
37
|
+
@distribution_summary[name] = false
|
38
|
+
end
|
39
|
+
when 'LastModifiedTime'
|
40
|
+
@distribution_summary[name] = Time.parse(@value)
|
41
|
+
when 'IsTruncated'
|
42
|
+
if @value == 'true'
|
43
|
+
@response[name] = true
|
44
|
+
else
|
45
|
+
@response[name] = false
|
46
|
+
end
|
47
|
+
when 'Marker', 'NextMarker'
|
48
|
+
@response[name] = @value
|
49
|
+
when 'MaxItems'
|
50
|
+
@response[name] = @value.to_i
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
module Fog
|
2
|
+
module Parsers
|
3
|
+
module CDN
|
4
|
+
module AWS
|
5
|
+
|
6
|
+
class StreamingDistribution < Fog::Parsers::Base
|
7
|
+
|
8
|
+
def reset
|
9
|
+
@response = { 'StreamingDistributionConfig' => { 'CNAME' => [], 'Logging' => {}, 'TrustedSigners' => [] } }
|
10
|
+
end
|
11
|
+
|
12
|
+
def start_element(name, attrs = [])
|
13
|
+
super
|
14
|
+
case name
|
15
|
+
when 'CustomOrigin', 'S3Origin'
|
16
|
+
@origin = name
|
17
|
+
@response['StreamingDistributionConfig'][@origin] = {}
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def end_element(name)
|
22
|
+
case name
|
23
|
+
when 'AwsAccountNumber'
|
24
|
+
@response['StreamingDistributionConfig']['TrustedSigners'] << @value
|
25
|
+
when 'Bucket', 'Prefix'
|
26
|
+
@response['StreamingDistributionConfig']['Logging'][name] = @value
|
27
|
+
when 'CNAME'
|
28
|
+
@response['StreamingDistributionConfig']['CNAME'] << @value
|
29
|
+
when 'DNSName', 'OriginAccessIdentity', 'OriginProtocolPolicy'
|
30
|
+
@response['StreamingDistributionConfig'][@origin][name] = @value
|
31
|
+
when 'DomainName', 'Id', 'Status'
|
32
|
+
@response[name] = @value
|
33
|
+
when 'CallerReference', 'Comment', 'DefaultRootObject', 'Origin', 'OriginAccessIdentity'
|
34
|
+
@response['StreamingDistributionConfig'][name] = @value
|
35
|
+
when 'Enabled'
|
36
|
+
if @value == 'true'
|
37
|
+
@response['StreamingDistributionConfig'][name] = true
|
38
|
+
else
|
39
|
+
@response['StreamingDistributionConfig'][name] = false
|
40
|
+
end
|
41
|
+
when 'HTTPPort', 'HTTPSPort'
|
42
|
+
@response['StreamingDistributionConfig'][@origin][name] = @value.to_i
|
43
|
+
when 'InProgressInvalidationBatches'
|
44
|
+
@response[name] = @value.to_i
|
45
|
+
when 'LastModifiedTime'
|
46
|
+
@response[name] = Time.parse(@value)
|
47
|
+
when 'Protocol'
|
48
|
+
@response['StreamingDistributionConfig']['RequireProtocols'] = @value
|
49
|
+
when 'Self'
|
50
|
+
@response['StreamingDistributionConfig']['TrustedSigners'] << 'Self'
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Fog
|
2
|
+
module CDN
|
3
|
+
class AWS
|
4
|
+
class Real
|
5
|
+
|
6
|
+
# Delete a streaming distribution from CloudFront
|
7
|
+
#
|
8
|
+
# ==== Parameters
|
9
|
+
# * distribution_id<~String> - Id of distribution to delete
|
10
|
+
# * etag<~String> - etag of that distribution from earlier get or put
|
11
|
+
#
|
12
|
+
# ==== See Also
|
13
|
+
# http://docs.amazonwebservices.com/AmazonCloudFront/latest/APIReference/DeleteStreamingDistribution.html
|
14
|
+
|
15
|
+
def delete_streaming_distribution(distribution_id, etag)
|
16
|
+
request({
|
17
|
+
:expects => 204,
|
18
|
+
:headers => { 'If-Match' => etag },
|
19
|
+
:idempotent => true,
|
20
|
+
:method => 'DELETE',
|
21
|
+
:path => "/streaming-distribution/#{distribution_id}"
|
22
|
+
})
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module Fog
|
2
|
+
module CDN
|
3
|
+
class AWS
|
4
|
+
class Real
|
5
|
+
|
6
|
+
require 'fog/cdn/parsers/aws/get_invalidation_list'
|
7
|
+
|
8
|
+
# ==== Parameters
|
9
|
+
# * options<~Hash> - config arguments for list. Defaults to {}.
|
10
|
+
# * 'Marker'<~String> - limits object keys to only those that appear
|
11
|
+
# lexicographically after its value.
|
12
|
+
# * 'MaxItems'<~Integer> - limits number of object keys returned
|
13
|
+
#
|
14
|
+
# ==== Returns
|
15
|
+
# * response<~Excon::Response>:
|
16
|
+
# * body<~Hash>:
|
17
|
+
# * 'IsTruncated'<~Boolean> - Whether or not the listing is truncated
|
18
|
+
# * 'Marker'<~String> - Marker specified for query
|
19
|
+
# * 'MaxItems'<~Integer> - Maximum number of keys specified for query
|
20
|
+
# * 'NextMarker'<~String> - Marker to specify for next page (id of last result of current page)
|
21
|
+
# * 'InvalidationSummary'<~Array>:
|
22
|
+
# * 'Id'<~String>:
|
23
|
+
# * 'Status'<~String>:
|
24
|
+
#
|
25
|
+
# ==== See Also
|
26
|
+
# http://docs.amazonwebservices.com/AmazonCloudFront/latest/APIReference/ListInvalidation.html
|
27
|
+
|
28
|
+
def get_invalidation_list(distribution_id, options = {})
|
29
|
+
request({
|
30
|
+
:expects => 200,
|
31
|
+
:idempotent => true,
|
32
|
+
:method => 'GET',
|
33
|
+
:parser => Fog::Parsers::CDN::AWS::GetInvalidationList.new,
|
34
|
+
:path => "/distribution/#{distribution_id}/invalidation",
|
35
|
+
:query => options
|
36
|
+
})
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module Fog
|
2
|
+
module CDN
|
3
|
+
class AWS
|
4
|
+
class Real
|
5
|
+
|
6
|
+
require 'fog/cdn/parsers/aws/streaming_distribution'
|
7
|
+
|
8
|
+
# Get information about a streaming distribution from CloudFront
|
9
|
+
#
|
10
|
+
# ==== Parameters
|
11
|
+
# * distribution_id<~String> - id of distribution
|
12
|
+
#
|
13
|
+
# ==== Returns
|
14
|
+
# * response<~Excon::Response>:
|
15
|
+
# * body<~Hash>:
|
16
|
+
# * 'S3Origin'<~Hash>:
|
17
|
+
# * 'DNSName'<~String> - origin to associate with distribution, ie 'mybucket.s3.amazonaws.com'
|
18
|
+
# * 'OriginAccessIdentity'<~String> - Optional: Used when serving private content
|
19
|
+
# * 'Id'<~String> - Id of distribution
|
20
|
+
# * 'LastModifiedTime'<~String> - Timestamp of last modification of distribution
|
21
|
+
# * 'Status'<~String> - Status of distribution
|
22
|
+
# * 'StreamingDistributionConfig'<~Array>:
|
23
|
+
# * 'CallerReference'<~String> - Used to prevent replay, defaults to Time.now.to_i.to_s
|
24
|
+
# * 'CNAME'<~Array> - array of associated cnames
|
25
|
+
# * 'Comment'<~String> - comment associated with distribution
|
26
|
+
# * 'Enabled'<~Boolean> - whether or not distribution is enabled
|
27
|
+
# * 'InProgressInvalidationBatches'<~Integer> - number of invalidation batches in progress
|
28
|
+
# * 'Logging'<~Hash>:
|
29
|
+
# * 'Bucket'<~String> - bucket logs are stored in
|
30
|
+
# * 'Prefix'<~String> - prefix logs are stored with
|
31
|
+
# * 'Origin'<~String> - s3 origin bucket
|
32
|
+
# * 'TrustedSigners'<~Array> - trusted signers
|
33
|
+
#
|
34
|
+
# ==== See Also
|
35
|
+
# http://docs.amazonwebservices.com/AmazonCloudFront/latest/APIReference/GetStreamingDistribution.html
|
36
|
+
|
37
|
+
def get_streaming_distribution(distribution_id)
|
38
|
+
request({
|
39
|
+
:expects => 200,
|
40
|
+
:idempotent => true,
|
41
|
+
:method => 'GET',
|
42
|
+
:parser => Fog::Parsers::CDN::AWS::StreamingDistribution.new,
|
43
|
+
:path => "/streaming-distribution/#{distribution_id}"
|
44
|
+
})
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|