fog-google 1.13.0 → 1.14.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ruby.yml +1 -1
- data/.github/workflows/stale.yml +1 -1
- data/CHANGELOG.md +27 -0
- data/lib/fog/compute/google/models/address.rb +1 -1
- data/lib/fog/compute/google/models/addresses.rb +6 -6
- data/lib/fog/compute/google/models/backend_service.rb +1 -1
- data/lib/fog/compute/google/models/disk.rb +3 -3
- data/lib/fog/compute/google/models/disk_types.rb +2 -2
- data/lib/fog/compute/google/models/disks.rb +2 -2
- data/lib/fog/compute/google/models/firewall.rb +2 -2
- data/lib/fog/compute/google/models/firewalls.rb +1 -1
- data/lib/fog/compute/google/models/forwarding_rules.rb +2 -2
- data/lib/fog/compute/google/models/global_addresses.rb +1 -1
- data/lib/fog/compute/google/models/global_forwarding_rules.rb +1 -1
- data/lib/fog/compute/google/models/http_health_check.rb +2 -2
- data/lib/fog/compute/google/models/instance_group_managers.rb +2 -2
- data/lib/fog/compute/google/models/machine_types.rb +2 -2
- data/lib/fog/compute/google/models/operations.rb +3 -3
- data/lib/fog/compute/google/models/servers.rb +3 -3
- data/lib/fog/compute/google/models/subnetworks.rb +2 -2
- data/lib/fog/compute/google/models/target_instances.rb +2 -2
- data/lib/fog/compute/google/models/target_pools.rb +2 -2
- data/lib/fog/compute/google/models/url_maps.rb +1 -1
- data/lib/fog/compute/google/requests/abandon_instances.rb +1 -1
- data/lib/fog/compute/google/requests/add_instance_group_instances.rb +3 -3
- data/lib/fog/compute/google/requests/add_server_access_config.rb +3 -3
- data/lib/fog/compute/google/requests/add_target_pool_health_checks.rb +2 -2
- data/lib/fog/compute/google/requests/add_target_pool_instances.rb +2 -2
- data/lib/fog/compute/google/requests/attach_disk.rb +1 -1
- data/lib/fog/compute/google/requests/create_disk_snapshot.rb +1 -1
- data/lib/fog/compute/google/requests/expand_subnetwork_ip_cidr_range.rb +1 -1
- data/lib/fog/compute/google/requests/get_backend_service_health.rb +1 -1
- data/lib/fog/compute/google/requests/get_server_serial_port_output.rb +2 -2
- data/lib/fog/compute/google/requests/get_target_pool_health.rb +1 -1
- data/lib/fog/compute/google/requests/insert_address.rb +2 -2
- data/lib/fog/compute/google/requests/insert_backend_service.rb +1 -1
- data/lib/fog/compute/google/requests/insert_disk.rb +1 -1
- data/lib/fog/compute/google/requests/insert_firewall.rb +1 -1
- data/lib/fog/compute/google/requests/insert_forwarding_rule.rb +1 -1
- data/lib/fog/compute/google/requests/insert_global_address.rb +1 -1
- data/lib/fog/compute/google/requests/insert_global_forwarding_rule.rb +1 -1
- data/lib/fog/compute/google/requests/insert_http_health_check.rb +1 -1
- data/lib/fog/compute/google/requests/insert_image.rb +1 -1
- data/lib/fog/compute/google/requests/insert_instance_group.rb +3 -3
- data/lib/fog/compute/google/requests/insert_instance_group_manager.rb +7 -7
- data/lib/fog/compute/google/requests/insert_instance_template.rb +3 -3
- data/lib/fog/compute/google/requests/insert_network.rb +1 -1
- data/lib/fog/compute/google/requests/insert_route.rb +10 -10
- data/lib/fog/compute/google/requests/insert_server.rb +9 -9
- data/lib/fog/compute/google/requests/insert_ssl_certificate.rb +4 -4
- data/lib/fog/compute/google/requests/insert_subnetwork.rb +1 -1
- data/lib/fog/compute/google/requests/insert_target_http_proxy.rb +3 -3
- data/lib/fog/compute/google/requests/insert_target_https_proxy.rb +4 -4
- data/lib/fog/compute/google/requests/insert_target_instance.rb +1 -1
- data/lib/fog/compute/google/requests/insert_target_pool.rb +1 -1
- data/lib/fog/compute/google/requests/insert_url_map.rb +1 -1
- data/lib/fog/compute/google/requests/invalidate_url_map_cache.rb +1 -1
- data/lib/fog/compute/google/requests/list_addresses.rb +4 -4
- data/lib/fog/compute/google/requests/list_aggregated_addresses.rb +1 -1
- data/lib/fog/compute/google/requests/list_aggregated_disk_types.rb +2 -2
- data/lib/fog/compute/google/requests/list_aggregated_disks.rb +2 -2
- data/lib/fog/compute/google/requests/list_aggregated_forwarding_rules.rb +2 -2
- data/lib/fog/compute/google/requests/list_aggregated_instance_group_managers.rb +4 -4
- data/lib/fog/compute/google/requests/list_aggregated_instance_groups.rb +1 -1
- data/lib/fog/compute/google/requests/list_aggregated_machine_types.rb +2 -2
- data/lib/fog/compute/google/requests/list_aggregated_servers.rb +2 -2
- data/lib/fog/compute/google/requests/list_aggregated_subnetworks.rb +4 -4
- data/lib/fog/compute/google/requests/list_aggregated_target_instances.rb +4 -4
- data/lib/fog/compute/google/requests/list_aggregated_target_pools.rb +4 -4
- data/lib/fog/compute/google/requests/list_disk_types.rb +2 -2
- data/lib/fog/compute/google/requests/list_disks.rb +2 -2
- data/lib/fog/compute/google/requests/list_firewalls.rb +4 -4
- data/lib/fog/compute/google/requests/list_forwarding_rules.rb +2 -2
- data/lib/fog/compute/google/requests/list_global_addresses.rb +5 -5
- data/lib/fog/compute/google/requests/list_global_forwarding_rules.rb +2 -2
- data/lib/fog/compute/google/requests/list_global_operations.rb +4 -4
- data/lib/fog/compute/google/requests/list_http_health_checks.rb +2 -2
- data/lib/fog/compute/google/requests/list_images.rb +2 -2
- data/lib/fog/compute/google/requests/list_instance_group_managers.rb +2 -2
- data/lib/fog/compute/google/requests/list_instance_templates.rb +4 -4
- data/lib/fog/compute/google/requests/list_machine_types.rb +4 -4
- data/lib/fog/compute/google/requests/list_networks.rb +4 -4
- data/lib/fog/compute/google/requests/list_subnetworks.rb +4 -4
- data/lib/fog/compute/google/requests/list_target_pools.rb +4 -4
- data/lib/fog/compute/google/requests/list_url_maps.rb +2 -2
- data/lib/fog/compute/google/requests/patch_firewall.rb +1 -1
- data/lib/fog/compute/google/requests/remove_instance_group_instances.rb +3 -3
- data/lib/fog/compute/google/requests/remove_target_pool_health_checks.rb +2 -2
- data/lib/fog/compute/google/requests/remove_target_pool_instance.rb +2 -2
- data/lib/fog/compute/google/requests/remove_target_pool_instances.rb +2 -2
- data/lib/fog/compute/google/requests/set_common_instance_metadata.rb +2 -2
- data/lib/fog/compute/google/requests/set_forwarding_rule_target.rb +1 -1
- data/lib/fog/compute/google/requests/set_global_forwarding_rule_target.rb +1 -1
- data/lib/fog/compute/google/requests/set_server_metadata.rb +2 -2
- data/lib/fog/compute/google/requests/set_server_tags.rb +2 -2
- data/lib/fog/compute/google/requests/set_snapshot_labels.rb +2 -2
- data/lib/fog/compute/google/requests/set_subnetwork_private_ip_google_access.rb +1 -1
- data/lib/fog/compute/google/requests/set_target_http_proxy_url_map.rb +1 -1
- data/lib/fog/compute/google/requests/set_target_https_proxy_ssl_certificates.rb +1 -1
- data/lib/fog/compute/google/requests/set_target_https_proxy_url_map.rb +1 -1
- data/lib/fog/compute/google/requests/set_target_pool_backup.rb +2 -2
- data/lib/fog/compute/google/requests/update_firewall.rb +1 -1
- data/lib/fog/compute/google/requests/update_http_health_check.rb +1 -1
- data/lib/fog/compute/google/requests/update_url_map.rb +1 -1
- data/lib/fog/compute/google/requests/validate_url_map.rb +1 -1
- data/lib/fog/dns/google/requests/create_change.rb +2 -2
- data/lib/fog/google/models/sql/instance.rb +2 -2
- data/lib/fog/google/requests/monitoring/create_metric_descriptor.rb +8 -8
- data/lib/fog/google/requests/monitoring/create_timeseries.rb +1 -1
- data/lib/fog/google/requests/monitoring/list_timeseries.rb +1 -1
- data/lib/fog/google/requests/pubsub/acknowledge_subscription.rb +1 -1
- data/lib/fog/google/requests/pubsub/create_subscription.rb +3 -3
- data/lib/fog/google/requests/sql/clone_instance.rb +4 -4
- data/lib/fog/google/requests/sql/export_instance.rb +3 -3
- data/lib/fog/google/requests/sql/import_instance.rb +2 -2
- data/lib/fog/google/requests/sql/insert_backup_run.rb +1 -1
- data/lib/fog/google/requests/sql/insert_instance.rb +2 -2
- data/lib/fog/google/requests/sql/insert_ssl_cert.rb +1 -1
- data/lib/fog/google/requests/sql/insert_user.rb +1 -1
- data/lib/fog/google/requests/sql/restore_instance_backup.rb +4 -4
- data/lib/fog/google/requests/sql/update_instance.rb +2 -2
- data/lib/fog/google/shared.rb +1 -2
- data/lib/fog/google/version.rb +1 -1
- data/lib/fog/storage/google_json/models/directories.rb +1 -1
- data/lib/fog/storage/google_json/models/directory.rb +1 -1
- data/lib/fog/storage/google_json/models/file.rb +1 -1
- data/lib/fog/storage/google_json/models/files.rb +1 -1
- data/lib/fog/storage/google_json/requests/copy_object.rb +11 -1
- data/lib/fog/storage/google_json/requests/get_object.rb +5 -3
- data/lib/fog/storage/google_json/requests/list_buckets.rb +4 -4
- data/lib/fog/storage/google_json/requests/list_objects.rb +1 -1
- data/lib/fog/storage/google_json/requests/put_bucket.rb +1 -1
- data/lib/fog/storage/google_json/requests/put_bucket_acl.rb +1 -1
- data/lib/fog/storage/google_json/requests/put_object.rb +1 -1
- data/lib/fog/storage/google_json/requests/put_object_acl.rb +1 -1
- data/lib/fog/storage/google_json/utils.rb +3 -2
- data/lib/fog/storage/google_xml/models/file.rb +1 -1
- data/test/integration/monitoring/test_metric_descriptors.rb +1 -1
- data/test/integration/storage/test_objects.rb +20 -0
- data/test/unit/storage/test_json_requests.rb +8 -0
- metadata +3 -3
@@ -105,7 +105,7 @@ module Fog
|
|
105
105
|
|
106
106
|
options[:predefined_acl] ||= @predefined_acl
|
107
107
|
|
108
|
-
service.put_object(directory.key, key, body, options)
|
108
|
+
service.put_object(directory.key, key, body, **options)
|
109
109
|
self.content_length = Fog::Storage.get_body_size(body)
|
110
110
|
self.content_type ||= Fog::Storage.get_content_type(body)
|
111
111
|
true
|
@@ -33,7 +33,7 @@ module Fog
|
|
33
33
|
|
34
34
|
def get(key, options = {}, &block)
|
35
35
|
requires :directory
|
36
|
-
data = service.get_object(directory.key, key, options, &block).to_h
|
36
|
+
data = service.get_object(directory.key, key, **options, &block).to_h
|
37
37
|
new(data)
|
38
38
|
rescue ::Google::Apis::ClientError => e
|
39
39
|
raise e unless e.status_code == 404
|
@@ -15,9 +15,19 @@ module Fog
|
|
15
15
|
target_bucket, target_object, options = {})
|
16
16
|
request_options = ::Google::Apis::RequestOptions.default.merge(options)
|
17
17
|
|
18
|
+
object = ::Google::Apis::StorageV1::Object.new(**options)
|
19
|
+
|
18
20
|
@storage_json.copy_object(source_bucket, source_object,
|
19
21
|
target_bucket, target_object,
|
20
|
-
request_options, **options)
|
22
|
+
object, options: request_options, **filter_keyword_args(options))
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
def filter_keyword_args(options)
|
28
|
+
method = @storage_json.method(:copy_object)
|
29
|
+
allowed = method.parameters.filter { |param| %i(key keyreq).include?(param[0]) }.map { |param| param[1] }.compact
|
30
|
+
options.filter { |key, _| allowed.include?(key) }
|
21
31
|
end
|
22
32
|
end
|
23
33
|
|
@@ -39,6 +39,7 @@ module Fog
|
|
39
39
|
raise ArgumentError.new("object_name is required") unless object_name
|
40
40
|
|
41
41
|
buf = Tempfile.new("fog-google-storage-temp")
|
42
|
+
buf.unlink
|
42
43
|
|
43
44
|
# Two requests are necessary, first for metadata, then for content.
|
44
45
|
# google-api-ruby-client doesn't allow fetching both metadata and content
|
@@ -53,18 +54,19 @@ module Fog
|
|
53
54
|
:options => request_options
|
54
55
|
}
|
55
56
|
|
56
|
-
object = @storage_json.get_object(bucket_name, object_name, all_opts).to_h
|
57
|
+
object = @storage_json.get_object(bucket_name, object_name, **all_opts).to_h
|
57
58
|
@storage_json.get_object(
|
58
59
|
bucket_name,
|
59
60
|
object_name,
|
60
|
-
all_opts.merge(:download_dest => buf
|
61
|
+
**all_opts.merge(:download_dest => buf)
|
61
62
|
)
|
62
63
|
|
64
|
+
buf.seek(0)
|
65
|
+
|
63
66
|
if block_given?
|
64
67
|
yield buf.read, nil, nil
|
65
68
|
else
|
66
69
|
object[:body] = buf.read
|
67
|
-
buf.unlink
|
68
70
|
end
|
69
71
|
|
70
72
|
object
|
@@ -11,10 +11,10 @@ module Fog
|
|
11
11
|
prefix: nil, projection: nil)
|
12
12
|
@storage_json.list_buckets(
|
13
13
|
@project,
|
14
|
-
:
|
15
|
-
:
|
16
|
-
:
|
17
|
-
:
|
14
|
+
max_results: max_results,
|
15
|
+
page_token: page_token,
|
16
|
+
prefix: prefix,
|
17
|
+
projection: projection
|
18
18
|
)
|
19
19
|
end
|
20
20
|
end
|
@@ -12,7 +12,7 @@ module Fog
|
|
12
12
|
raise ArgumentError.new("bucket_name is required") unless bucket_name
|
13
13
|
raise ArgumentError.new("acl is required") unless acl
|
14
14
|
|
15
|
-
acl_update = ::Google::Apis::StorageV1::BucketAccessControl.new(acl)
|
15
|
+
acl_update = ::Google::Apis::StorageV1::BucketAccessControl.new(**acl)
|
16
16
|
@storage_json.insert_bucket_access_control(bucket_name, acl_update)
|
17
17
|
end
|
18
18
|
end
|
@@ -15,7 +15,7 @@ module Fog
|
|
15
15
|
raise ArgumentError.new("object_name is required") unless object_name
|
16
16
|
raise ArgumentError.new("acl is required") unless acl
|
17
17
|
|
18
|
-
acl_object = ::Google::Apis::StorageV1::ObjectAccessControl.new(acl)
|
18
|
+
acl_object = ::Google::Apis::StorageV1::ObjectAccessControl.new(**acl)
|
19
19
|
|
20
20
|
@storage_json.insert_object_access_control(
|
21
21
|
bucket_name, object_name, acl_object
|
@@ -20,9 +20,10 @@ module Fog
|
|
20
20
|
def host_path_query(params, expires)
|
21
21
|
params[:headers]["Date"] = expires.to_i
|
22
22
|
# implementation from CGI.escape, but without ' ' to '+' conversion
|
23
|
-
params[:path] = params[:path].b.gsub(/([^a-zA-Z0-9_.\-~]+)/)
|
23
|
+
params[:path] = params[:path].b.gsub(/([^a-zA-Z0-9_.\-~]+)/) { |m|
|
24
24
|
'%' + m.unpack('H2' * m.bytesize).join('%').upcase
|
25
|
-
|
25
|
+
}.gsub("%2F", "/")
|
26
|
+
|
26
27
|
query = []
|
27
28
|
|
28
29
|
if params[:query]
|
@@ -109,7 +109,7 @@ module Fog
|
|
109
109
|
options["Expires"] = expires if expires
|
110
110
|
options.merge!(metadata)
|
111
111
|
|
112
|
-
data = service.put_object(directory.key, key, body, options)
|
112
|
+
data = service.put_object(directory.key, key, body, **options)
|
113
113
|
merge_attributes(data.headers.reject { |key, _value| ["Content-Length", "Content-Type"].include?(key) })
|
114
114
|
self.content_length = Fog::Storage.get_body_size(body)
|
115
115
|
self.content_type ||= Fog::Storage.get_content_type(body)
|
@@ -68,7 +68,7 @@ class TestMetricDescriptors < FogIntegrationTest
|
|
68
68
|
:labels => [label]
|
69
69
|
}
|
70
70
|
|
71
|
-
created = @client.create_metric_descriptor(options)
|
71
|
+
created = @client.create_metric_descriptor(**options)
|
72
72
|
|
73
73
|
# Check created metric descriptor
|
74
74
|
assert_equal(_full_name(metric_type), created.name)
|
@@ -113,6 +113,26 @@ class TestStorageRequests < StorageShared
|
|
113
113
|
assert_kind_of(Net::HTTPOK, response)
|
114
114
|
end
|
115
115
|
|
116
|
+
def test_copy_object_with_request_options
|
117
|
+
assert_raises(Google::Apis::AuthorizationError) do
|
118
|
+
target_object_name = new_object_name
|
119
|
+
|
120
|
+
@client.copy_object(some_bucket_name, some_object_name,
|
121
|
+
some_bucket_name, target_object_name, authorization: false)
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
def test_copy_object_with_object_property
|
126
|
+
target_object_name = new_object_name
|
127
|
+
|
128
|
+
@client.copy_object(some_bucket_name, some_object_name,
|
129
|
+
some_bucket_name, target_object_name, content_type: 'text/plain')
|
130
|
+
|
131
|
+
object = @client.get_object(some_bucket_name, target_object_name)
|
132
|
+
|
133
|
+
assert_equal("text/plain", object[:content_type])
|
134
|
+
end
|
135
|
+
|
116
136
|
def test_list_objects
|
117
137
|
expected_object = some_object_name
|
118
138
|
|
@@ -41,4 +41,12 @@ class UnitTestJsonRequests < MiniTest::Test
|
|
41
41
|
assert_match(/just%20some%20file\.json/, url,
|
42
42
|
"space should be escaped with '%20'")
|
43
43
|
end
|
44
|
+
|
45
|
+
def test_unescaped_slashes_in_url
|
46
|
+
url = @client.get_object_https_url("bucket",
|
47
|
+
"a/b/c.ext",
|
48
|
+
Time.now + 2 * 60)
|
49
|
+
assert_match(/a\/b\/c/, url,
|
50
|
+
"slashes should not be escaped with '%2F'")
|
51
|
+
end
|
44
52
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fog-google
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.14.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nat Welch
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2021-
|
12
|
+
date: 2021-06-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: fog-core
|
@@ -782,7 +782,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
782
782
|
- !ruby/object:Gem::Version
|
783
783
|
version: '0'
|
784
784
|
requirements: []
|
785
|
-
rubygems_version: 3.
|
785
|
+
rubygems_version: 3.0.3
|
786
786
|
signing_key:
|
787
787
|
specification_version: 4
|
788
788
|
summary: Module for the 'fog' gem to support Google.
|