fog 1.24.0 → 1.25.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -13
- data/CHANGELOG.md +184 -1
- data/CONTRIBUTORS.md +23 -0
- data/README.md +17 -9
- data/Rakefile +4 -0
- data/fog.gemspec +18 -6
- data/lib/fog.rb +1 -1
- data/lib/fog/aws/auto_scaling.rb +12 -12
- data/lib/fog/aws/beanstalk.rb +12 -10
- data/lib/fog/aws/cdn.rb +0 -1
- data/lib/fog/aws/cloud_formation.rb +13 -11
- data/lib/fog/aws/cloud_watch.rb +14 -11
- data/lib/fog/aws/compute.rb +19 -19
- data/lib/fog/aws/core.rb +21 -0
- data/lib/fog/aws/dns.rb +0 -1
- data/lib/fog/aws/elasticache.rb +13 -9
- data/lib/fog/aws/elb.rb +23 -14
- data/lib/fog/aws/emr.rb +11 -9
- data/lib/fog/aws/iam.rb +14 -11
- data/lib/fog/aws/models/compute/security_group.rb +41 -0
- data/lib/fog/aws/models/elb/load_balancer.rb +31 -0
- data/lib/fog/aws/models/glacier/archive.rb +3 -1
- data/lib/fog/aws/models/iam/role.rb +1 -1
- data/lib/fog/aws/models/iam/roles.rb +1 -1
- data/lib/fog/aws/models/storage/file.rb +1 -1
- data/lib/fog/aws/parsers/compute/describe_security_groups.rb +68 -53
- data/lib/fog/aws/parsers/elb/describe_load_balancer_attributes.rb +7 -0
- data/lib/fog/aws/parsers/elb/describe_tags.rb +26 -0
- data/lib/fog/aws/parsers/elb/tag_list_parser.rb +57 -0
- data/lib/fog/aws/parsers/storage/get_bucket_website.rb +5 -1
- data/lib/fog/aws/rds.rb +13 -11
- data/lib/fog/aws/region_methods.rb +1 -1
- data/lib/fog/aws/requests/dynamodb/put_item.rb +1 -1
- data/lib/fog/aws/requests/elb/add_tags.rb +46 -0
- data/lib/fog/aws/requests/elb/create_load_balancer.rb +4 -1
- data/lib/fog/aws/requests/elb/describe_load_balancer_attributes.rb +3 -0
- data/lib/fog/aws/requests/elb/describe_tags.rb +56 -0
- data/lib/fog/aws/requests/elb/modify_load_balancer_attributes.rb +9 -3
- data/lib/fog/aws/requests/elb/remove_tags.rb +46 -0
- data/lib/fog/aws/requests/storage/copy_object.rb +1 -1
- data/lib/fog/aws/requests/storage/delete_object.rb +4 -3
- data/lib/fog/aws/requests/storage/post_object_hidden_fields.rb +23 -5
- data/lib/fog/aws/requests/storage/post_object_restore.rb +1 -1
- data/lib/fog/aws/requests/storage/put_bucket_website.rb +46 -18
- data/lib/fog/aws/ses.rb +1 -2
- data/lib/fog/aws/signaturev4.rb +62 -15
- data/lib/fog/aws/simpledb.rb +0 -1
- data/lib/fog/aws/sns.rb +12 -9
- data/lib/fog/aws/sqs.rb +14 -10
- data/lib/fog/aws/storage.rb +102 -78
- data/lib/fog/aws/sts.rb +10 -9
- data/lib/fog/bare_metal_cloud/compute.rb +0 -1
- data/lib/fog/bin.rb +1 -0
- data/lib/fog/bin/brightbox.rb +3 -1
- data/lib/fog/bin/rackspace.rb +4 -0
- data/lib/fog/bluebox/models/compute/server.rb +1 -0
- data/lib/fog/cloudstack/models/compute/server.rb +12 -1
- data/lib/fog/cloudstack/models/compute/snapshots.rb +3 -2
- data/lib/fog/cloudstack/models/compute/volume.rb +5 -0
- data/lib/fog/cloudstack/models/compute/volumes.rb +3 -2
- data/lib/fog/core/parser.rb +2 -112
- data/lib/fog/dnsmadeeasy/dns.rb +0 -1
- data/lib/fog/dynect/core.rb +0 -1
- data/lib/fog/dynect/dns.rb +11 -3
- data/lib/fog/ecloud/compute.rb +0 -1
- data/lib/fog/ecloud/core.rb +1 -1
- data/lib/fog/fogdocker/compute.rb +4 -1
- data/lib/fog/fogdocker/core.rb +1 -7
- data/lib/fog/fogdocker/errors.rb +9 -0
- data/lib/fog/fogdocker/models/compute/images.rb +4 -0
- data/lib/fog/fogdocker/models/compute/server.rb +18 -1
- data/lib/fog/fogdocker/requests/compute/container_action.rb +53 -3
- data/lib/fog/fogdocker/requests/compute/container_get.rb +31 -12
- data/lib/fog/fogdocker/requests/compute/image_search.rb +29 -0
- data/lib/fog/google/dns.rb +46 -12
- data/lib/fog/google/examples/dns/project.rb +8 -0
- data/lib/fog/google/examples/dns/zones.rb +43 -0
- data/lib/fog/google/models/compute/images.rb +2 -1
- data/lib/fog/google/models/dns/change.rb +40 -0
- data/lib/fog/google/models/dns/changes.rb +52 -0
- data/lib/fog/google/models/dns/project.rb +75 -0
- data/lib/fog/google/models/dns/projects.rb +25 -0
- data/lib/fog/google/models/dns/record.rb +112 -0
- data/lib/fog/google/models/dns/records.rb +52 -0
- data/lib/fog/google/models/dns/zone.rb +74 -0
- data/lib/fog/google/models/dns/zones.rb +34 -0
- data/lib/fog/google/models/storage/file.rb +1 -1
- data/lib/fog/google/models/storage/files.rb +1 -5
- data/lib/fog/google/requests/dns/create_change.rb +64 -0
- data/lib/fog/google/requests/dns/create_managed_zone.rb +64 -31
- data/lib/fog/google/requests/dns/delete_managed_zone.rb +20 -24
- data/lib/fog/google/requests/dns/get_change.rb +42 -0
- data/lib/fog/google/requests/dns/get_managed_zone.rb +22 -16
- data/lib/fog/google/requests/dns/get_project.rb +42 -0
- data/lib/fog/google/requests/dns/list_changes.rb +41 -0
- data/lib/fog/google/requests/dns/list_managed_zones.rb +15 -10
- data/lib/fog/google/requests/dns/list_resource_record_sets.rb +50 -0
- data/lib/fog/google/storage.rb +0 -1
- data/lib/fog/hp/storage.rb +1 -1
- data/lib/fog/internet_archive/storage.rb +0 -1
- data/lib/fog/libvirt/models/compute/server.rb +17 -7
- data/lib/fog/opennebula/models/compute/flavor.rb +46 -8
- data/lib/fog/opennebula/models/compute/flavors.rb +7 -0
- data/lib/fog/opennebula/models/compute/interface.rb +1 -1
- data/lib/fog/opennebula/models/compute/network.rb +1 -0
- data/lib/fog/opennebula/models/compute/networks.rb +5 -1
- data/lib/fog/opennebula/requests/compute/list_networks.rb +34 -25
- data/lib/fog/opennebula/requests/compute/template_pool.rb +47 -5
- data/lib/fog/openstack/compute.rb +2 -2
- data/lib/fog/openstack/docs/storage.md +18 -0
- data/lib/fog/openstack/identity.rb +1 -1
- data/lib/fog/openstack/image.rb +1 -1
- data/lib/fog/openstack/metering.rb +1 -1
- data/lib/fog/openstack/models/compute/server.rb +1 -0
- data/lib/fog/openstack/models/storage/directory.rb +8 -2
- data/lib/fog/openstack/network.rb +1 -1
- data/lib/fog/openstack/orchestration.rb +1 -1
- data/lib/fog/openstack/requests/compute/create_security_group.rb +1 -1
- data/lib/fog/openstack/requests/storage/public_url.rb +28 -0
- data/lib/fog/openstack/requests/storage/put_container.rb +1 -0
- data/lib/fog/openstack/storage.rb +1 -0
- data/lib/fog/openstack/volume.rb +1 -1
- data/lib/fog/ovirt/compute.rb +1 -0
- data/lib/fog/ovirt/models/compute/server.rb +5 -0
- data/lib/fog/ovirt/requests/compute/update_volume.rb +39 -0
- data/lib/fog/rackspace.rb +1 -0
- data/lib/fog/rackspace/core.rb +1 -0
- data/lib/fog/rackspace/docs/networking.md +315 -0
- data/lib/fog/rackspace/mock_data.rb +1 -2
- data/lib/fog/rackspace/models/dns/zones.rb +2 -1
- data/lib/fog/rackspace/models/load_balancers/node.rb +7 -0
- data/lib/fog/rackspace/models/networking/network.rb +27 -0
- data/lib/fog/rackspace/models/networking/networks.rb +23 -0
- data/lib/fog/rackspace/models/networking/virtual_interface.rb +85 -0
- data/lib/fog/rackspace/models/networking/virtual_interfaces.rb +45 -0
- data/lib/fog/rackspace/models/queues/queue.rb +1 -1
- data/lib/fog/rackspace/networking.rb +192 -0
- data/lib/fog/rackspace/requests/load_balancers/create_node.rb +3 -0
- data/lib/fog/rackspace/requests/load_balancers/update_node.rb +3 -0
- data/lib/fog/rackspace/requests/networking/create_network.rb +36 -0
- data/lib/fog/rackspace/requests/networking/create_virtual_interface.rb +30 -0
- data/lib/fog/rackspace/requests/networking/delete_network.rb +21 -0
- data/lib/fog/rackspace/requests/networking/delete_virtual_interface.rb +23 -0
- data/lib/fog/rackspace/requests/networking/get_network.rb +21 -0
- data/lib/fog/rackspace/requests/networking/list_networks.rb +18 -0
- data/lib/fog/rackspace/requests/networking/list_virtual_interfaces.rb +22 -0
- data/lib/fog/vcloud/compute.rb +0 -1
- data/lib/fog/vcloud/core.rb +1 -0
- data/lib/fog/vcloud_director/compute.rb +1 -1
- data/lib/fog/version.rb +1 -1
- data/lib/fog/vsphere/compute.rb +38 -1
- data/lib/fog/vsphere/requests/compute/list_clusters.rb +31 -1
- data/lib/fog/vsphere/requests/compute/modify_vm_interface.rb +1 -1
- data/lib/fog/zerigo/dns.rb +0 -1
- data/lib/tasks/changelog_task.rb +1 -0
- data/tests/aws/models/elb/model_tests.rb +6 -0
- data/tests/aws/models/elb/tagging_tests.rb +15 -0
- data/tests/aws/models/iam/access_keys_tests.rb +1 -1
- data/tests/aws/models/iam/policies_tests.rb +2 -1
- data/tests/aws/models/iam/users_tests.rb +7 -4
- data/tests/aws/models/storage/url_tests.rb +5 -9
- data/tests/aws/requests/compute/tag_tests.rb +2 -0
- data/tests/aws/requests/elb/load_balancer_tests.rb +5 -1
- data/tests/aws/requests/storage/bucket_tests.rb +15 -1
- data/tests/aws/signaturev4_tests.rb +47 -0
- data/tests/bluebox/requests/compute/block_tests.rb +2 -1
- data/tests/compute/helper.rb +0 -10
- data/tests/compute/models/flavors_tests.rb +1 -1
- data/tests/fogdocker/compute_tests.rb +1 -1
- data/tests/fogdocker/models/compute/server_tests.rb +13 -3
- data/tests/fogdocker/requests/compute/container_action_tests.rb +19 -8
- data/tests/fogdocker/requests/compute/image_search_tests.rb +11 -0
- data/tests/google/models/dns/change_tests.rb +28 -0
- data/tests/google/models/dns/changes_tests.rb +36 -0
- data/tests/google/models/dns/projects_tests.rb +12 -0
- data/tests/google/models/dns/record_tests.rb +42 -0
- data/tests/google/models/dns/records_tests.rb +36 -0
- data/tests/google/models/dns/zone_tests.rb +28 -0
- data/tests/google/models/dns/zones_tests.rb +14 -0
- data/tests/google/requests/dns/change_tests.rb +86 -0
- data/tests/google/requests/dns/managed_zone_tests.rb +1 -1
- data/tests/google/requests/dns/project_tests.rb +29 -0
- data/tests/google/requests/dns/record_tests.rb +49 -0
- data/tests/helper.rb +1 -1
- data/tests/helpers/mock_helper.rb +2 -2
- data/tests/opennebula/models/compute/flavor_tests.rb +29 -0
- data/tests/opennebula/models/compute/flavors_tests.rb +17 -0
- data/tests/opennebula/models/compute/network_tests.rb +2 -2
- data/tests/opennebula/models/compute/networks_tests.rb +2 -0
- data/tests/openstack/requests/storage/object_tests.rb +10 -0
- data/tests/ovirt/compute_tests.rb +1 -1
- data/tests/ovirt/requests/compute/update_volume_tests.rb +20 -0
- data/tests/rackspace/models/networking/network_tests.rb +10 -0
- data/tests/rackspace/models/networking/networks_tests.rb +10 -0
- data/tests/rackspace/models/networking/virtual_interface_tests.rb +33 -0
- data/tests/rackspace/models/networking/virtual_interfaces_tests.rb +24 -0
- data/tests/rackspace/models/queues/queue_tests.rb +9 -0
- data/tests/rackspace/networking_tests.rb +118 -0
- data/tests/rackspace/requests/networking/network_tests.rb +49 -0
- data/tests/rackspace/requests/networking/virtual_interface_tests.rb +49 -0
- data/tests/vsphere/requests/compute/list_clusters_tests.rb +11 -0
- metadata +228 -180
- data/lib/fog/bin/terremark.rb +0 -29
- data/lib/fog/bin/vmfusion.rb +0 -58
- data/lib/fog/bin/voxel.rb +0 -29
- data/lib/fog/terremark.rb +0 -11
- data/lib/fog/terremark/models/shared/address.rb +0 -25
- data/lib/fog/terremark/models/shared/addresses.rb +0 -45
- data/lib/fog/terremark/models/shared/image.rb +0 -19
- data/lib/fog/terremark/models/shared/images.rb +0 -41
- data/lib/fog/terremark/models/shared/internetservice.rb +0 -66
- data/lib/fog/terremark/models/shared/internetservices.rb +0 -39
- data/lib/fog/terremark/models/shared/network.rb +0 -31
- data/lib/fog/terremark/models/shared/networks.rb +0 -48
- data/lib/fog/terremark/models/shared/nodeservice.rb +0 -50
- data/lib/fog/terremark/models/shared/nodeservices.rb +0 -29
- data/lib/fog/terremark/models/shared/server.rb +0 -210
- data/lib/fog/terremark/models/shared/servers.rb +0 -50
- data/lib/fog/terremark/models/shared/task.rb +0 -46
- data/lib/fog/terremark/models/shared/tasks.rb +0 -54
- data/lib/fog/terremark/models/shared/vdc.rb +0 -40
- data/lib/fog/terremark/models/shared/vdcs.rb +0 -48
- data/lib/fog/terremark/parser.rb +0 -18
- data/lib/fog/terremark/parsers/shared/get_catalog.rb +0 -33
- data/lib/fog/terremark/parsers/shared/get_catalog_item.rb +0 -32
- data/lib/fog/terremark/parsers/shared/get_internet_services.rb +0 -57
- data/lib/fog/terremark/parsers/shared/get_keys_list.rb +0 -39
- data/lib/fog/terremark/parsers/shared/get_network_ips.rb +0 -24
- data/lib/fog/terremark/parsers/shared/get_node_services.rb +0 -32
- data/lib/fog/terremark/parsers/shared/get_organization.rb +0 -50
- data/lib/fog/terremark/parsers/shared/get_organizations.rb +0 -31
- data/lib/fog/terremark/parsers/shared/get_public_ips.rb +0 -26
- data/lib/fog/terremark/parsers/shared/get_tasks_list.rb +0 -35
- data/lib/fog/terremark/parsers/shared/get_vapp_template.rb +0 -31
- data/lib/fog/terremark/parsers/shared/get_vdc.rb +0 -87
- data/lib/fog/terremark/parsers/shared/instantiate_vapp_template.rb +0 -26
- data/lib/fog/terremark/parsers/shared/internet_service.rb +0 -58
- data/lib/fog/terremark/parsers/shared/network.rb +0 -39
- data/lib/fog/terremark/parsers/shared/node_service.rb +0 -28
- data/lib/fog/terremark/parsers/shared/public_ip.rb +0 -22
- data/lib/fog/terremark/parsers/shared/task.rb +0 -25
- data/lib/fog/terremark/parsers/shared/vapp.rb +0 -61
- data/lib/fog/terremark/requests/shared/add_internet_service.rb +0 -54
- data/lib/fog/terremark/requests/shared/add_node_service.rb +0 -51
- data/lib/fog/terremark/requests/shared/configure_vapp.rb +0 -59
- data/lib/fog/terremark/requests/shared/create_internet_service.rb +0 -59
- data/lib/fog/terremark/requests/shared/delete_internet_service.rb +0 -21
- data/lib/fog/terremark/requests/shared/delete_node_service.rb +0 -21
- data/lib/fog/terremark/requests/shared/delete_public_ip.rb +0 -21
- data/lib/fog/terremark/requests/shared/delete_vapp.rb +0 -20
- data/lib/fog/terremark/requests/shared/deploy_vapp.rb +0 -33
- data/lib/fog/terremark/requests/shared/get_catalog.rb +0 -30
- data/lib/fog/terremark/requests/shared/get_catalog_item.rb +0 -33
- data/lib/fog/terremark/requests/shared/get_internet_services.rb +0 -34
- data/lib/fog/terremark/requests/shared/get_keys_list.rb +0 -34
- data/lib/fog/terremark/requests/shared/get_network.rb +0 -69
- data/lib/fog/terremark/requests/shared/get_network_ips.rb +0 -29
- data/lib/fog/terremark/requests/shared/get_node_services.rb +0 -29
- data/lib/fog/terremark/requests/shared/get_organization.rb +0 -82
- data/lib/fog/terremark/requests/shared/get_organizations.rb +0 -45
- data/lib/fog/terremark/requests/shared/get_public_ip.rb +0 -31
- data/lib/fog/terremark/requests/shared/get_public_ips.rb +0 -68
- data/lib/fog/terremark/requests/shared/get_task.rb +0 -37
- data/lib/fog/terremark/requests/shared/get_tasks_list.rb +0 -30
- data/lib/fog/terremark/requests/shared/get_vapp.rb +0 -40
- data/lib/fog/terremark/requests/shared/get_vapp_template.rb +0 -33
- data/lib/fog/terremark/requests/shared/get_vdc.rb +0 -121
- data/lib/fog/terremark/requests/shared/instantiate_vapp_template.rb +0 -79
- data/lib/fog/terremark/requests/shared/power_off.rb +0 -33
- data/lib/fog/terremark/requests/shared/power_on.rb +0 -33
- data/lib/fog/terremark/requests/shared/power_reset.rb +0 -33
- data/lib/fog/terremark/requests/shared/power_shutdown.rb +0 -22
- data/lib/fog/terremark/shared.rb +0 -304
- data/lib/fog/terremark/vcloud.rb +0 -129
- data/lib/fog/vmfusion.rb +0 -1
- data/lib/fog/vmfusion/compute.rb +0 -28
- data/lib/fog/vmfusion/core.rb +0 -9
- data/lib/fog/vmfusion/models/compute/server.rb +0 -256
- data/lib/fog/vmfusion/models/compute/servers.rb +0 -36
- data/lib/fog/voxel.rb +0 -1
- data/lib/fog/voxel/compute.rb +0 -122
- data/lib/fog/voxel/core.rb +0 -16
- data/lib/fog/voxel/models/compute/image.rb +0 -13
- data/lib/fog/voxel/models/compute/images.rb +0 -27
- data/lib/fog/voxel/models/compute/server.rb +0 -73
- data/lib/fog/voxel/models/compute/servers.rb +0 -29
- data/lib/fog/voxel/parsers/compute/basic.rb +0 -27
- data/lib/fog/voxel/parsers/compute/devices_list.rb +0 -107
- data/lib/fog/voxel/parsers/compute/images_list.rb +0 -55
- data/lib/fog/voxel/parsers/compute/voxcloud_create.rb +0 -36
- data/lib/fog/voxel/parsers/compute/voxcloud_delete.rb +0 -27
- data/lib/fog/voxel/parsers/compute/voxcloud_status.rb +0 -42
- data/lib/fog/voxel/requests/compute/devices_list.rb +0 -22
- data/lib/fog/voxel/requests/compute/devices_power.rb +0 -20
- data/lib/fog/voxel/requests/compute/images_list.rb +0 -29
- data/lib/fog/voxel/requests/compute/voxcloud_create.rb +0 -20
- data/lib/fog/voxel/requests/compute/voxcloud_delete.rb +0 -18
- data/lib/fog/voxel/requests/compute/voxcloud_status.rb +0 -22
- data/lib/fog/xml.rb +0 -4
- data/lib/fog/xml/connection.rb +0 -24
- data/lib/fog/xml/sax_parser_connection.rb +0 -45
- data/tests/core/connection_tests.rb +0 -26
- data/tests/voxel/requests/compute/image_tests.rb +0 -52
- data/tests/voxel/requests/compute/server_tests.rb +0 -123
data/lib/fog.rb
CHANGED
@@ -10,7 +10,6 @@ require 'fog/core'
|
|
10
10
|
# data exchange specific (to be extracted and used on a per provider basis)
|
11
11
|
require 'fog/xml'
|
12
12
|
require 'fog/json'
|
13
|
-
require 'fog/core/parser'
|
14
13
|
|
15
14
|
# deprecation wrappers (XML wrapped version)
|
16
15
|
require 'fog/core/deprecated/connection'
|
@@ -48,6 +47,7 @@ require 'fog/rage4'
|
|
48
47
|
require 'fog/riakcs'
|
49
48
|
require 'fog/openstack'
|
50
49
|
require 'fog/ovirt'
|
50
|
+
require 'fog/profitbricks'
|
51
51
|
require 'fog/sakuracloud'
|
52
52
|
require 'fog/serverlove'
|
53
53
|
require 'fog/softlayer'
|
data/lib/fog/aws/auto_scaling.rb
CHANGED
@@ -86,10 +86,7 @@ module Fog
|
|
86
86
|
# * AutoScaling object with connection to AWS.
|
87
87
|
|
88
88
|
def initialize(options={})
|
89
|
-
require 'fog/core/parser'
|
90
|
-
|
91
89
|
@use_iam_profile = options[:use_iam_profile]
|
92
|
-
setup_credentials(options)
|
93
90
|
|
94
91
|
@connection_options = options[:connection_options] || {}
|
95
92
|
|
@@ -105,6 +102,8 @@ module Fog
|
|
105
102
|
@persistent = options[:persistent] || false
|
106
103
|
@scheme = options[:scheme] || 'https'
|
107
104
|
@connection = Fog::XML::Connection.new("#{@scheme}://#{@host}:#{@port}#{@path}", @persistent, @connection_options)
|
105
|
+
|
106
|
+
setup_credentials(options)
|
108
107
|
end
|
109
108
|
|
110
109
|
def reload
|
@@ -119,12 +118,13 @@ module Fog
|
|
119
118
|
idempotent = params.delete(:idempotent)
|
120
119
|
parser = params.delete(:parser)
|
121
120
|
|
122
|
-
body = AWS.
|
121
|
+
body, headers = AWS.signed_params_v4(
|
123
122
|
params,
|
123
|
+
{ 'Content-Type' => 'application/x-www-form-urlencoded' },
|
124
124
|
{
|
125
|
-
:aws_access_key_id => @aws_access_key_id,
|
126
125
|
:aws_session_token => @aws_session_token,
|
127
|
-
:
|
126
|
+
:method => 'POST',
|
127
|
+
:signer => @signer,
|
128
128
|
:host => @host,
|
129
129
|
:path => @path,
|
130
130
|
:port => @port,
|
@@ -134,20 +134,20 @@ module Fog
|
|
134
134
|
|
135
135
|
if @instrumentor
|
136
136
|
@instrumentor.instrument("#{@instrumentor_name}.request", params) do
|
137
|
-
_request(body, idempotent, parser)
|
137
|
+
_request(body, headers, idempotent, parser)
|
138
138
|
end
|
139
139
|
else
|
140
|
-
_request(body, idempotent, parser)
|
140
|
+
_request(body, headers, idempotent, parser)
|
141
141
|
end
|
142
142
|
end
|
143
143
|
|
144
|
-
def _request(body, idempotent, parser)
|
144
|
+
def _request(body, headers, idempotent, parser)
|
145
145
|
begin
|
146
146
|
@connection.request({
|
147
147
|
:body => body,
|
148
148
|
:expects => 200,
|
149
149
|
:idempotent => idempotent,
|
150
|
-
:headers =>
|
150
|
+
:headers => headers,
|
151
151
|
:method => 'POST',
|
152
152
|
:parser => parser
|
153
153
|
})
|
@@ -173,7 +173,7 @@ module Fog
|
|
173
173
|
@aws_session_token = options[:aws_session_token]
|
174
174
|
@aws_credentials_expire_at = options[:aws_credentials_expire_at]
|
175
175
|
|
176
|
-
@
|
176
|
+
@signer = Fog::AWS::SignatureV4.new( @aws_access_key_id, @aws_secret_access_key, @region, 'autoscaling')
|
177
177
|
end
|
178
178
|
end
|
179
179
|
|
@@ -253,7 +253,7 @@ module Fog
|
|
253
253
|
setup_credentials(options)
|
254
254
|
@region = options[:region] || 'us-east-1'
|
255
255
|
|
256
|
-
unless ['ap-northeast-1', 'ap-southeast-1', 'ap-southeast-2', 'eu-west-1', 'sa-east-1', 'us-east-1', 'us-west-1', 'us-west-2'].include?(@region)
|
256
|
+
unless ['ap-northeast-1', 'ap-southeast-1', 'ap-southeast-2', 'eu-central-1', 'eu-west-1', 'sa-east-1', 'us-east-1', 'us-west-1', 'us-west-2'].include?(@region)
|
257
257
|
raise ArgumentError, "Unknown region: #{@region.inspect}"
|
258
258
|
end
|
259
259
|
end
|
data/lib/fog/aws/beanstalk.rb
CHANGED
@@ -64,10 +64,8 @@ module Fog
|
|
64
64
|
class Real
|
65
65
|
include Fog::AWS::CredentialFetcher::ConnectionMethods
|
66
66
|
def initialize(options={})
|
67
|
-
require 'fog/core/parser'
|
68
67
|
|
69
68
|
@use_iam_profile = options[:use_iam_profile]
|
70
|
-
setup_credentials(options)
|
71
69
|
|
72
70
|
@connection_options = options[:connection_options] || {}
|
73
71
|
options[:region] ||= 'us-east-1'
|
@@ -79,6 +77,9 @@ module Fog
|
|
79
77
|
@connection = Fog::XML::Connection.new("#{@scheme}://#{@host}:#{@port}#{@path}", @persistent, @connection_options)
|
80
78
|
@instrumentor = options[:instrumentor]
|
81
79
|
@instrumentor_name = options[:instrumentor_name] || 'fog.aws.beanstalk'
|
80
|
+
|
81
|
+
@region = options[:region]
|
82
|
+
setup_credentials(options)
|
82
83
|
end
|
83
84
|
|
84
85
|
def reload
|
@@ -98,7 +99,7 @@ module Fog
|
|
98
99
|
@aws_session_token = options[:aws_session_token]
|
99
100
|
@aws_credentials_expire_at = options[:aws_credentials_expire_at]
|
100
101
|
|
101
|
-
@
|
102
|
+
@signer = Fog::AWS::SignatureV4.new( @aws_access_key_id, @aws_secret_access_key, @region, 'elasticbeanstalk')
|
102
103
|
end
|
103
104
|
|
104
105
|
def request(params)
|
@@ -107,12 +108,13 @@ module Fog
|
|
107
108
|
idempotent = params.delete(:idempotent)
|
108
109
|
parser = params.delete(:parser)
|
109
110
|
|
110
|
-
body = AWS.
|
111
|
+
body, headers = AWS.signed_params_v4(
|
111
112
|
params,
|
113
|
+
{ 'Content-Type' => 'application/x-www-form-urlencoded' },
|
112
114
|
{
|
113
|
-
:
|
115
|
+
:signer => @signer,
|
114
116
|
:aws_session_token => @aws_session_token,
|
115
|
-
:
|
117
|
+
:method => "POST",
|
116
118
|
:host => @host,
|
117
119
|
:path => @path,
|
118
120
|
:port => @port,
|
@@ -122,18 +124,18 @@ module Fog
|
|
122
124
|
|
123
125
|
if @instrumentor
|
124
126
|
@instrumentor.instrument("#{@instrumentor_name}.request", params) do
|
125
|
-
_request(body, idempotent, parser)
|
127
|
+
_request(body, headers, idempotent, parser)
|
126
128
|
end
|
127
129
|
else
|
128
|
-
_request(body, idempotent, parser)
|
130
|
+
_request(body, headers, idempotent, parser)
|
129
131
|
end
|
130
132
|
end
|
131
133
|
|
132
|
-
def _request(body, idempotent, parser)
|
134
|
+
def _request(body, headers, idempotent, parser)
|
133
135
|
@connection.request({
|
134
136
|
:body => body,
|
135
137
|
:expects => 200,
|
136
|
-
:headers =>
|
138
|
+
:headers => headers,
|
137
139
|
:idempotent => idempotent,
|
138
140
|
:method => 'POST',
|
139
141
|
:parser => parser
|
data/lib/fog/aws/cdn.rb
CHANGED
@@ -46,21 +46,22 @@ module Fog
|
|
46
46
|
# ==== Returns
|
47
47
|
# * CloudFormation object with connection to AWS.
|
48
48
|
def initialize(options={})
|
49
|
-
require 'fog/core/parser'
|
50
49
|
|
51
50
|
@use_iam_profile = options[:use_iam_profile]
|
52
|
-
setup_credentials(options)
|
53
51
|
|
54
52
|
@instrumentor = options[:instrumentor]
|
55
53
|
@instrumentor_name = options[:instrumentor_name] || 'fog.aws.cloud_formation'
|
56
54
|
@connection_options = options[:connection_options] || {}
|
57
55
|
options[:region] ||= 'us-east-1'
|
56
|
+
@region = options[:region]
|
58
57
|
@host = options[:host] || "cloudformation.#{options[:region]}.amazonaws.com"
|
59
58
|
@path = options[:path] || '/'
|
60
59
|
@persistent = options[:persistent] || false
|
61
60
|
@port = options[:port] || 443
|
62
61
|
@scheme = options[:scheme] || 'https'
|
63
62
|
@connection = Fog::XML::Connection.new("#{@scheme}://#{@host}:#{@port}#{@path}", @persistent, @connection_options)
|
63
|
+
|
64
|
+
setup_credentials(options)
|
64
65
|
end
|
65
66
|
|
66
67
|
def reload
|
@@ -75,7 +76,7 @@ module Fog
|
|
75
76
|
@aws_session_token = options[:aws_session_token]
|
76
77
|
@aws_credentials_expire_at = options[:aws_credentials_expire_at]
|
77
78
|
|
78
|
-
@
|
79
|
+
@signer = Fog::AWS::SignatureV4.new( @aws_access_key_id, @aws_secret_access_key, @region, 'cloudformation')
|
79
80
|
end
|
80
81
|
|
81
82
|
def request(params)
|
@@ -84,34 +85,35 @@ module Fog
|
|
84
85
|
idempotent = params.delete(:idempotent)
|
85
86
|
parser = params.delete(:parser)
|
86
87
|
|
87
|
-
body = Fog::AWS.
|
88
|
+
body, headers = Fog::AWS.signed_params_v4(
|
88
89
|
params,
|
90
|
+
{ 'Content-Type' => 'application/x-www-form-urlencoded' },
|
89
91
|
{
|
90
|
-
:
|
92
|
+
:signer => @signer,
|
91
93
|
:aws_session_token => @aws_session_token,
|
92
|
-
:hmac => @hmac,
|
93
94
|
:host => @host,
|
94
95
|
:path => @path,
|
95
96
|
:port => @port,
|
96
|
-
:version => '2010-05-15'
|
97
|
+
:version => '2010-05-15',
|
98
|
+
:method => 'POST'
|
97
99
|
}
|
98
100
|
)
|
99
101
|
|
100
102
|
if @instrumentor
|
101
103
|
@instrumentor.instrument("#{@instrumentor_name}.request", params) do
|
102
|
-
_request(body, idempotent, parser)
|
104
|
+
_request(body, headers, idempotent, parser)
|
103
105
|
end
|
104
106
|
else
|
105
|
-
_request(body, idempotent, parser)
|
107
|
+
_request(body, headers, idempotent, parser)
|
106
108
|
end
|
107
109
|
end
|
108
110
|
|
109
|
-
def _request(body, idempotent, parser)
|
111
|
+
def _request(body, headers, idempotent, parser)
|
110
112
|
@connection.request({
|
111
113
|
:body => body,
|
112
114
|
:expects => 200,
|
113
115
|
:idempotent => idempotent,
|
114
|
-
:headers =>
|
116
|
+
:headers => headers,
|
115
117
|
:method => 'POST',
|
116
118
|
:parser => parser
|
117
119
|
})
|
data/lib/fog/aws/cloud_watch.rb
CHANGED
@@ -54,7 +54,7 @@ module Fog
|
|
54
54
|
|
55
55
|
@region = options[:region] || 'us-east-1'
|
56
56
|
|
57
|
-
unless ['ap-northeast-1', 'ap-southeast-1', 'ap-southeast-2', 'eu-west-1', 'sa-east-1', 'us-east-1', 'us-west-1', 'us-west-2'].include?(@region)
|
57
|
+
unless ['ap-northeast-1', 'ap-southeast-1', 'ap-southeast-2', 'eu-central-1', 'eu-west-1', 'sa-east-1', 'us-east-1', 'us-west-1', 'us-west-2'].include?(@region)
|
58
58
|
raise ArgumentError, "Unknown region: #{@region.inspect}"
|
59
59
|
end
|
60
60
|
end
|
@@ -90,7 +90,6 @@ module Fog
|
|
90
90
|
# * CloudWatch object with connection to AWS.
|
91
91
|
def initialize(options={})
|
92
92
|
@use_iam_profile = options[:use_iam_profile]
|
93
|
-
setup_credentials(options)
|
94
93
|
|
95
94
|
@connection_options = options[:connection_options] || {}
|
96
95
|
|
@@ -98,12 +97,15 @@ module Fog
|
|
98
97
|
@instrumentor_name = options[:instrumentor_name] || 'fog.aws.cloud_watch'
|
99
98
|
|
100
99
|
options[:region] ||= 'us-east-1'
|
100
|
+
@region = options[:region]
|
101
101
|
@host = options[:host] || "monitoring.#{options[:region]}.amazonaws.com"
|
102
102
|
@path = options[:path] || '/'
|
103
103
|
@persistent = options[:persistent] || false
|
104
104
|
@port = options[:port] || 443
|
105
105
|
@scheme = options[:scheme] || 'https'
|
106
106
|
@connection = Fog::XML::Connection.new("#{@scheme}://#{@host}:#{@port}#{@path}", @persistent, @connection_options)
|
107
|
+
|
108
|
+
setup_credentials(options)
|
107
109
|
end
|
108
110
|
|
109
111
|
def reload
|
@@ -118,7 +120,7 @@ module Fog
|
|
118
120
|
@aws_session_token = options[:aws_session_token]
|
119
121
|
@aws_credentials_expire_at = options[:aws_credentials_expire_at]
|
120
122
|
|
121
|
-
@
|
123
|
+
@signer = Fog::AWS::SignatureV4.new( @aws_access_key_id, @aws_secret_access_key,@region,'monitoring')
|
122
124
|
end
|
123
125
|
|
124
126
|
def request(params)
|
@@ -126,33 +128,34 @@ module Fog
|
|
126
128
|
idempotent = params.delete(:idempotent)
|
127
129
|
parser = params.delete(:parser)
|
128
130
|
|
129
|
-
body = AWS.
|
131
|
+
body, headers = AWS.signed_params_v4(
|
130
132
|
params,
|
133
|
+
{ 'Content-Type' => 'application/x-www-form-urlencoded' },
|
131
134
|
{
|
132
|
-
:
|
135
|
+
:signer => @signer,
|
133
136
|
:aws_session_token => @aws_session_token,
|
134
|
-
:hmac => @hmac,
|
135
137
|
:host => @host,
|
136
138
|
:path => @path,
|
137
139
|
:port => @port,
|
138
|
-
:version => '2010-08-01'
|
140
|
+
:version => '2010-08-01',
|
141
|
+
:method => 'POST'
|
139
142
|
}
|
140
143
|
)
|
141
144
|
|
142
145
|
if @instrumentor
|
143
146
|
@instrumentor.instrument("#{@instrumentor_name}.request", params) do
|
144
|
-
_request(body, idempotent, parser)
|
147
|
+
_request(body, headers, idempotent, parser)
|
145
148
|
end
|
146
149
|
else
|
147
|
-
_request(body, idempotent, parser)
|
150
|
+
_request(body, headers, idempotent, parser)
|
148
151
|
end
|
149
152
|
end
|
150
153
|
|
151
|
-
def _request(body, idempotent, parser)
|
154
|
+
def _request(body, headers, idempotent, parser)
|
152
155
|
@connection.request({
|
153
156
|
:body => body,
|
154
157
|
:expects => 200,
|
155
|
-
:headers =>
|
158
|
+
:headers => headers,
|
156
159
|
:idempotent => idempotent,
|
157
160
|
:method => 'POST',
|
158
161
|
:parser => parser
|
data/lib/fog/aws/compute.rb
CHANGED
@@ -449,16 +449,16 @@ module Fog
|
|
449
449
|
attr_accessor :region
|
450
450
|
|
451
451
|
def initialize(options={})
|
452
|
-
require 'fog/core/parser'
|
453
452
|
|
454
|
-
@use_iam_profile = options[:use_iam_profile]
|
455
|
-
setup_credentials(options)
|
456
453
|
@connection_options = options[:connection_options] || {}
|
457
454
|
@region = options[:region] ||= 'us-east-1'
|
458
455
|
@instrumentor = options[:instrumentor]
|
459
456
|
@instrumentor_name = options[:instrumentor_name] || 'fog.aws.compute'
|
460
457
|
@version = options[:version] || '2014-06-15'
|
461
458
|
|
459
|
+
@use_iam_profile = options[:use_iam_profile]
|
460
|
+
setup_credentials(options)
|
461
|
+
|
462
462
|
if @endpoint = options[:endpoint]
|
463
463
|
endpoint = URI.parse(@endpoint)
|
464
464
|
@host = endpoint.host or raise InvalidURIError.new("could not parse endpoint: #{@endpoint}")
|
@@ -488,7 +488,7 @@ module Fog
|
|
488
488
|
@aws_session_token = options[:aws_session_token]
|
489
489
|
@aws_credentials_expire_at = options[:aws_credentials_expire_at]
|
490
490
|
|
491
|
-
@
|
491
|
+
@signer = Fog::AWS::SignatureV4.new( @aws_access_key_id, @aws_secret_access_key,@region,'ec2')
|
492
492
|
end
|
493
493
|
|
494
494
|
def request(params)
|
@@ -496,33 +496,33 @@ module Fog
|
|
496
496
|
idempotent = params.delete(:idempotent)
|
497
497
|
parser = params.delete(:parser)
|
498
498
|
|
499
|
-
body = Fog::AWS.
|
500
|
-
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
|
499
|
+
body, headers = Fog::AWS.signed_params_v4(
|
500
|
+
params,
|
501
|
+
{'Content-Type' => 'application/x-www-form-urlencoded'},
|
502
|
+
{
|
503
|
+
:host => @host,
|
504
|
+
:path => @path,
|
505
|
+
:port => @port,
|
506
|
+
:version => @version,
|
507
|
+
:signer => @signer,
|
508
|
+
:aws_session_token => @aws_session_token,
|
509
|
+
:method => "POST"
|
509
510
|
}
|
510
511
|
)
|
511
|
-
|
512
512
|
if @instrumentor
|
513
513
|
@instrumentor.instrument("#{@instrumentor_name}.request", params) do
|
514
|
-
_request(body, idempotent, parser)
|
514
|
+
_request(body, headers, idempotent, parser)
|
515
515
|
end
|
516
516
|
else
|
517
|
-
_request(body, idempotent, parser)
|
517
|
+
_request(body, headers, idempotent, parser)
|
518
518
|
end
|
519
519
|
end
|
520
520
|
|
521
|
-
def _request(body, idempotent, parser)
|
521
|
+
def _request(body, headers, idempotent, parser)
|
522
522
|
@connection.request({
|
523
523
|
:body => body,
|
524
524
|
:expects => 200,
|
525
|
-
:headers =>
|
525
|
+
:headers => headers,
|
526
526
|
:idempotent => idempotent,
|
527
527
|
:method => 'POST',
|
528
528
|
:parser => parser
|
data/lib/fog/aws/core.rb
CHANGED
@@ -94,6 +94,27 @@ module Fog
|
|
94
94
|
}
|
95
95
|
end
|
96
96
|
|
97
|
+
def self.signed_params_v4(params, headers, options={})
|
98
|
+
date = Fog::Time.now
|
99
|
+
|
100
|
+
params = params.merge('Version' => options[:version])
|
101
|
+
|
102
|
+
headers = headers.merge('Host' => options[:host], 'x-amz-date' => date.to_iso8601_basic)
|
103
|
+
headers['x-amz-security-token'] = options[:aws_session_token] if options[:aws_session_token]
|
104
|
+
|
105
|
+
body = ''
|
106
|
+
for key in params.keys.sort
|
107
|
+
unless (value = params[key]).nil?
|
108
|
+
body << "#{key}=#{escape(value.to_s)}&"
|
109
|
+
end
|
110
|
+
end
|
111
|
+
body.chop!
|
112
|
+
|
113
|
+
headers['Authorization'] = options[:signer].sign({:method => options[:method], :headers => headers, :body => body, :query => {}, :path => options[:path]}, date)
|
114
|
+
|
115
|
+
return body, headers
|
116
|
+
end
|
117
|
+
|
97
118
|
def self.signed_params(params, options = {})
|
98
119
|
params.merge!({
|
99
120
|
'AWSAccessKeyId' => options[:aws_access_key_id],
|
data/lib/fog/aws/dns.rb
CHANGED
data/lib/fog/aws/elasticache.rb
CHANGED
@@ -55,11 +55,12 @@ module Fog
|
|
55
55
|
include Fog::AWS::CredentialFetcher::ConnectionMethods
|
56
56
|
def initialize(options={})
|
57
57
|
@use_iam_profile = options[:use_iam_profile]
|
58
|
-
setup_credentials(options)
|
59
58
|
|
60
59
|
@instrumentor = options[:instrumentor]
|
61
60
|
@instrumentor_name = options[:instrumentor_name] || 'fog.aws.elasticache'
|
62
61
|
options[:region] ||= 'us-east-1'
|
62
|
+
|
63
|
+
@region = options[:region]
|
63
64
|
@host = options[:host] || "elasticache.#{options[:region]}.amazonaws.com"
|
64
65
|
@path = options[:path] || '/'
|
65
66
|
@port = options[:port] || 443
|
@@ -67,6 +68,8 @@ module Fog
|
|
67
68
|
@connection = Fog::XML::Connection.new(
|
68
69
|
"#{@scheme}://#{@host}:#{@port}#{@path}", options[:persistent]
|
69
70
|
)
|
71
|
+
|
72
|
+
setup_credentials(options)
|
70
73
|
end
|
71
74
|
|
72
75
|
def reload
|
@@ -81,7 +84,7 @@ module Fog
|
|
81
84
|
@aws_session_token = options[:aws_session_token]
|
82
85
|
@aws_credentials_expire_at = options[:aws_credentials_expire_at]
|
83
86
|
|
84
|
-
@
|
87
|
+
@signer = Fog::AWS::SignatureV4.new( @aws_access_key_id, @aws_secret_access_key, @region, 'elasticache')
|
85
88
|
end
|
86
89
|
|
87
90
|
def request(params)
|
@@ -90,12 +93,13 @@ module Fog
|
|
90
93
|
idempotent = params.delete(:idempotent)
|
91
94
|
parser = params.delete(:parser)
|
92
95
|
|
93
|
-
body = Fog::AWS.
|
96
|
+
body, headers = Fog::AWS.signed_params_v4(
|
94
97
|
params,
|
98
|
+
{ 'Content-Type' => 'application/x-www-form-urlencoded' },
|
95
99
|
{
|
96
|
-
:
|
100
|
+
:signer => @signer,
|
97
101
|
:aws_session_token => @aws_session_token,
|
98
|
-
:
|
102
|
+
:method => 'POST',
|
99
103
|
:host => @host,
|
100
104
|
:path => @path,
|
101
105
|
:port => @port,
|
@@ -105,18 +109,18 @@ module Fog
|
|
105
109
|
|
106
110
|
if @instrumentor
|
107
111
|
@instrumentor.instrument("#{@instrumentor_name}.request", params) do
|
108
|
-
_request(body, idempotent, parser)
|
112
|
+
_request(body, headers, idempotent, parser)
|
109
113
|
end
|
110
114
|
else
|
111
|
-
_request(body, idempotent, parser)
|
115
|
+
_request(body, headers, idempotent, parser)
|
112
116
|
end
|
113
117
|
end
|
114
118
|
|
115
|
-
def _request(body, idempotent, parser)
|
119
|
+
def _request(body, headers, idempotent, parser)
|
116
120
|
@connection.request({
|
117
121
|
:body => body,
|
118
122
|
:expects => 200,
|
119
|
-
:headers =>
|
123
|
+
:headers => headers,
|
120
124
|
:idempotent => idempotent,
|
121
125
|
:method => 'POST',
|
122
126
|
:parser => parser
|