fog-google 1.10.0 → 1.14.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (164) hide show
  1. checksums.yaml +5 -5
  2. data/.github/dependabot.yml +10 -0
  3. data/.github/workflows/ruby.yml +34 -0
  4. data/.github/workflows/stale.yml +23 -0
  5. data/.rubocop.yml +3 -3
  6. data/CHANGELOG.md +100 -1
  7. data/README.md +56 -10
  8. data/ci/docker-image/Dockerfile +3 -3
  9. data/fog-google.gemspec +4 -4
  10. data/lib/fog/compute/google.rb +0 -4
  11. data/lib/fog/compute/google/models/address.rb +1 -1
  12. data/lib/fog/compute/google/models/addresses.rb +6 -6
  13. data/lib/fog/compute/google/models/backend_service.rb +1 -1
  14. data/lib/fog/compute/google/models/disk.rb +3 -3
  15. data/lib/fog/compute/google/models/disk_types.rb +2 -2
  16. data/lib/fog/compute/google/models/disks.rb +2 -2
  17. data/lib/fog/compute/google/models/firewall.rb +2 -2
  18. data/lib/fog/compute/google/models/firewalls.rb +1 -1
  19. data/lib/fog/compute/google/models/forwarding_rules.rb +2 -2
  20. data/lib/fog/compute/google/models/global_addresses.rb +1 -1
  21. data/lib/fog/compute/google/models/global_forwarding_rules.rb +1 -1
  22. data/lib/fog/compute/google/models/http_health_check.rb +2 -2
  23. data/lib/fog/compute/google/models/instance_group_managers.rb +2 -2
  24. data/lib/fog/compute/google/models/machine_types.rb +2 -2
  25. data/lib/fog/compute/google/models/operations.rb +3 -3
  26. data/lib/fog/compute/google/models/server.rb +3 -3
  27. data/lib/fog/compute/google/models/servers.rb +3 -3
  28. data/lib/fog/compute/google/models/subnetworks.rb +2 -2
  29. data/lib/fog/compute/google/models/target_instances.rb +2 -2
  30. data/lib/fog/compute/google/models/target_pools.rb +2 -2
  31. data/lib/fog/compute/google/models/url_maps.rb +1 -1
  32. data/lib/fog/compute/google/requests/abandon_instances.rb +1 -1
  33. data/lib/fog/compute/google/requests/add_instance_group_instances.rb +3 -3
  34. data/lib/fog/compute/google/requests/add_server_access_config.rb +3 -3
  35. data/lib/fog/compute/google/requests/add_target_pool_health_checks.rb +2 -2
  36. data/lib/fog/compute/google/requests/add_target_pool_instances.rb +2 -2
  37. data/lib/fog/compute/google/requests/attach_disk.rb +1 -1
  38. data/lib/fog/compute/google/requests/create_disk_snapshot.rb +1 -1
  39. data/lib/fog/compute/google/requests/expand_subnetwork_ip_cidr_range.rb +1 -1
  40. data/lib/fog/compute/google/requests/get_backend_service_health.rb +1 -1
  41. data/lib/fog/compute/google/requests/get_server_serial_port_output.rb +2 -2
  42. data/lib/fog/compute/google/requests/get_target_pool_health.rb +1 -1
  43. data/lib/fog/compute/google/requests/insert_address.rb +2 -2
  44. data/lib/fog/compute/google/requests/insert_backend_service.rb +1 -1
  45. data/lib/fog/compute/google/requests/insert_disk.rb +1 -1
  46. data/lib/fog/compute/google/requests/insert_firewall.rb +1 -1
  47. data/lib/fog/compute/google/requests/insert_forwarding_rule.rb +1 -1
  48. data/lib/fog/compute/google/requests/insert_global_address.rb +1 -1
  49. data/lib/fog/compute/google/requests/insert_global_forwarding_rule.rb +1 -1
  50. data/lib/fog/compute/google/requests/insert_http_health_check.rb +1 -1
  51. data/lib/fog/compute/google/requests/insert_image.rb +1 -1
  52. data/lib/fog/compute/google/requests/insert_instance_group.rb +3 -3
  53. data/lib/fog/compute/google/requests/insert_instance_group_manager.rb +7 -7
  54. data/lib/fog/compute/google/requests/insert_instance_template.rb +3 -3
  55. data/lib/fog/compute/google/requests/insert_network.rb +1 -1
  56. data/lib/fog/compute/google/requests/insert_route.rb +10 -10
  57. data/lib/fog/compute/google/requests/insert_server.rb +12 -8
  58. data/lib/fog/compute/google/requests/insert_ssl_certificate.rb +4 -4
  59. data/lib/fog/compute/google/requests/insert_subnetwork.rb +1 -1
  60. data/lib/fog/compute/google/requests/insert_target_http_proxy.rb +3 -3
  61. data/lib/fog/compute/google/requests/insert_target_https_proxy.rb +4 -4
  62. data/lib/fog/compute/google/requests/insert_target_instance.rb +1 -1
  63. data/lib/fog/compute/google/requests/insert_target_pool.rb +1 -1
  64. data/lib/fog/compute/google/requests/insert_url_map.rb +1 -1
  65. data/lib/fog/compute/google/requests/invalidate_url_map_cache.rb +1 -1
  66. data/lib/fog/compute/google/requests/list_addresses.rb +4 -4
  67. data/lib/fog/compute/google/requests/list_aggregated_addresses.rb +1 -1
  68. data/lib/fog/compute/google/requests/list_aggregated_disk_types.rb +2 -2
  69. data/lib/fog/compute/google/requests/list_aggregated_disks.rb +2 -2
  70. data/lib/fog/compute/google/requests/list_aggregated_forwarding_rules.rb +2 -2
  71. data/lib/fog/compute/google/requests/list_aggregated_instance_group_managers.rb +4 -4
  72. data/lib/fog/compute/google/requests/list_aggregated_instance_groups.rb +1 -1
  73. data/lib/fog/compute/google/requests/list_aggregated_machine_types.rb +2 -2
  74. data/lib/fog/compute/google/requests/list_aggregated_servers.rb +2 -2
  75. data/lib/fog/compute/google/requests/list_aggregated_subnetworks.rb +4 -4
  76. data/lib/fog/compute/google/requests/list_aggregated_target_instances.rb +4 -4
  77. data/lib/fog/compute/google/requests/list_aggregated_target_pools.rb +4 -4
  78. data/lib/fog/compute/google/requests/list_disk_types.rb +2 -2
  79. data/lib/fog/compute/google/requests/list_disks.rb +2 -2
  80. data/lib/fog/compute/google/requests/list_firewalls.rb +4 -4
  81. data/lib/fog/compute/google/requests/list_forwarding_rules.rb +2 -2
  82. data/lib/fog/compute/google/requests/list_global_addresses.rb +5 -5
  83. data/lib/fog/compute/google/requests/list_global_forwarding_rules.rb +2 -2
  84. data/lib/fog/compute/google/requests/list_global_operations.rb +4 -4
  85. data/lib/fog/compute/google/requests/list_http_health_checks.rb +2 -2
  86. data/lib/fog/compute/google/requests/list_images.rb +2 -2
  87. data/lib/fog/compute/google/requests/list_instance_group_managers.rb +2 -2
  88. data/lib/fog/compute/google/requests/list_instance_templates.rb +4 -4
  89. data/lib/fog/compute/google/requests/list_machine_types.rb +4 -4
  90. data/lib/fog/compute/google/requests/list_networks.rb +4 -4
  91. data/lib/fog/compute/google/requests/list_subnetworks.rb +4 -4
  92. data/lib/fog/compute/google/requests/list_target_pools.rb +4 -4
  93. data/lib/fog/compute/google/requests/list_url_maps.rb +2 -2
  94. data/lib/fog/compute/google/requests/patch_firewall.rb +1 -1
  95. data/lib/fog/compute/google/requests/remove_instance_group_instances.rb +3 -3
  96. data/lib/fog/compute/google/requests/remove_target_pool_health_checks.rb +2 -2
  97. data/lib/fog/compute/google/requests/remove_target_pool_instance.rb +2 -2
  98. data/lib/fog/compute/google/requests/remove_target_pool_instances.rb +2 -2
  99. data/lib/fog/compute/google/requests/set_common_instance_metadata.rb +2 -2
  100. data/lib/fog/compute/google/requests/set_forwarding_rule_target.rb +1 -1
  101. data/lib/fog/compute/google/requests/set_global_forwarding_rule_target.rb +1 -1
  102. data/lib/fog/compute/google/requests/set_server_metadata.rb +3 -3
  103. data/lib/fog/compute/google/requests/set_server_tags.rb +2 -2
  104. data/lib/fog/compute/google/requests/set_snapshot_labels.rb +2 -2
  105. data/lib/fog/compute/google/requests/set_subnetwork_private_ip_google_access.rb +1 -1
  106. data/lib/fog/compute/google/requests/set_target_http_proxy_url_map.rb +1 -1
  107. data/lib/fog/compute/google/requests/set_target_https_proxy_ssl_certificates.rb +1 -1
  108. data/lib/fog/compute/google/requests/set_target_https_proxy_url_map.rb +1 -1
  109. data/lib/fog/compute/google/requests/set_target_pool_backup.rb +2 -2
  110. data/lib/fog/compute/google/requests/update_firewall.rb +1 -1
  111. data/lib/fog/compute/google/requests/update_http_health_check.rb +1 -1
  112. data/lib/fog/compute/google/requests/update_url_map.rb +1 -1
  113. data/lib/fog/compute/google/requests/validate_url_map.rb +1 -1
  114. data/lib/fog/dns/google/requests/create_change.rb +2 -2
  115. data/lib/fog/google/models/sql/instance.rb +2 -2
  116. data/lib/fog/google/requests/monitoring/create_metric_descriptor.rb +8 -8
  117. data/lib/fog/google/requests/monitoring/create_timeseries.rb +1 -1
  118. data/lib/fog/google/requests/monitoring/list_timeseries.rb +1 -1
  119. data/lib/fog/google/requests/pubsub/acknowledge_subscription.rb +1 -1
  120. data/lib/fog/google/requests/pubsub/create_subscription.rb +3 -3
  121. data/lib/fog/google/requests/pubsub/pull_subscription.rb +5 -1
  122. data/lib/fog/google/requests/sql/clone_instance.rb +4 -4
  123. data/lib/fog/google/requests/sql/delete_user.rb +1 -1
  124. data/lib/fog/google/requests/sql/export_instance.rb +3 -3
  125. data/lib/fog/google/requests/sql/import_instance.rb +2 -2
  126. data/lib/fog/google/requests/sql/insert_backup_run.rb +1 -1
  127. data/lib/fog/google/requests/sql/insert_instance.rb +2 -2
  128. data/lib/fog/google/requests/sql/insert_ssl_cert.rb +1 -1
  129. data/lib/fog/google/requests/sql/insert_user.rb +1 -1
  130. data/lib/fog/google/requests/sql/restore_instance_backup.rb +4 -4
  131. data/lib/fog/google/requests/sql/update_instance.rb +2 -2
  132. data/lib/fog/google/shared.rb +10 -5
  133. data/lib/fog/google/version.rb +1 -1
  134. data/lib/fog/storage/google_json.rb +4 -0
  135. data/lib/fog/storage/google_json/mock.rb +6 -0
  136. data/lib/fog/storage/google_json/models/directories.rb +1 -1
  137. data/lib/fog/storage/google_json/models/directory.rb +1 -1
  138. data/lib/fog/storage/google_json/models/file.rb +1 -1
  139. data/lib/fog/storage/google_json/models/files.rb +1 -1
  140. data/lib/fog/storage/google_json/real.rb +106 -3
  141. data/lib/fog/storage/google_json/requests/copy_object.rb +12 -1
  142. data/lib/fog/storage/google_json/requests/get_object.rb +5 -3
  143. data/lib/fog/storage/google_json/requests/list_buckets.rb +4 -4
  144. data/lib/fog/storage/google_json/requests/list_objects.rb +1 -1
  145. data/lib/fog/storage/google_json/requests/put_bucket.rb +1 -1
  146. data/lib/fog/storage/google_json/requests/put_bucket_acl.rb +1 -1
  147. data/lib/fog/storage/google_json/requests/put_object.rb +1 -1
  148. data/lib/fog/storage/google_json/requests/put_object_acl.rb +1 -1
  149. data/lib/fog/storage/google_json/utils.rb +6 -2
  150. data/lib/fog/storage/google_xml/models/file.rb +2 -2
  151. data/lib/fog/storage/google_xml/requests/get_bucket.rb +0 -1
  152. data/lib/fog/storage/google_xml/requests/head_object.rb +7 -6
  153. data/tasks/changelog.rake +10 -1
  154. data/test/helpers/integration_test_helper.rb +15 -1
  155. data/test/integration/monitoring/test_metric_descriptors.rb +1 -1
  156. data/test/integration/monitoring/test_timeseries.rb +11 -25
  157. data/test/integration/pubsub/test_pubsub_models.rb +3 -3
  158. data/test/integration/pubsub/test_pubsub_requests.rb +2 -2
  159. data/test/integration/sql/test_certs.rb +0 -1
  160. data/test/integration/storage/test_objects.rb +36 -0
  161. data/test/unit/storage/test_common_xml_collections.rb +11 -0
  162. data/test/unit/storage/test_json_requests.rb +8 -0
  163. metadata +28 -13
  164. data/.travis.yml +0 -16
@@ -102,7 +102,7 @@ class TestPubsubModels < PubSubShared
102
102
  :topic => some_topic_name)
103
103
  @client.topics.get(some_topic_name).publish(["data" => message_bytes])
104
104
 
105
- result = subscription.pull
105
+ result = subscription.pull(:return_immediately => false)
106
106
  assert_operator(result.length, :>, 0)
107
107
 
108
108
  contained = result.any? { |received| received.message[:data] == message_bytes }
@@ -115,7 +115,7 @@ class TestPubsubModels < PubSubShared
115
115
  :topic => some_topic_name)
116
116
  @client.topics.get(some_topic_name).publish(["data" => Base64.strict_encode64("some message")])
117
117
 
118
- result = subscription.pull
118
+ result = subscription.pull(:return_immediately => false)
119
119
  assert_operator(result.length, :>, 0)
120
120
 
121
121
  subscription.acknowledge([result[0].ack_id])
@@ -127,7 +127,7 @@ class TestPubsubModels < PubSubShared
127
127
  :topic => some_topic_name)
128
128
  @client.topics.get(some_topic_name).publish(["data" => Base64.strict_encode64("some message")])
129
129
 
130
- result = subscription.pull
130
+ result = subscription.pull(:return_immediately => false)
131
131
  assert_operator(result.length, :>, 0)
132
132
 
133
133
  result[0].acknowledge
@@ -86,7 +86,7 @@ class TestPubsubRequests < PubSubShared
86
86
  @client.create_subscription(subscription_name, some_topic_name)
87
87
  @client.publish_topic(some_topic_name, [:data => message_bytes])
88
88
 
89
- result = @client.pull_subscription(subscription_name)
89
+ result = @client.pull_subscription(subscription_name, {:return_immediately => false})
90
90
 
91
91
  contained = result.received_messages.any? { |received| received.message.data == message_bytes }
92
92
  assert_equal(true, contained, "sent messsage not contained within pulled responses")
@@ -96,7 +96,7 @@ class TestPubsubRequests < PubSubShared
96
96
  subscription_name = new_subscription_name
97
97
  @client.create_subscription(subscription_name, some_topic_name)
98
98
  @client.publish_topic(some_topic_name, [:data => Base64.strict_encode64("some message")])
99
- pull_result = @client.pull_subscription(subscription_name)
99
+ pull_result = @client.pull_subscription(subscription_name, {:return_immediately => false})
100
100
  assert_operator(pull_result.received_messages.length, :>, 0)
101
101
 
102
102
  @client.acknowledge_subscription(subscription_name,
@@ -1,6 +1,5 @@
1
1
  require "helpers/integration_test_helper"
2
2
  require "integration/factories/sql_certs_factory"
3
- require "pry"
4
3
 
5
4
  class TestSQLCerts < FogIntegrationTest
6
5
  # This test doesn't include TestCollection as certs are not an independent resource.
@@ -3,6 +3,7 @@ require "integration/storage/storage_shared"
3
3
  require "securerandom"
4
4
  require "base64"
5
5
  require "tempfile"
6
+ require "net/http"
6
7
 
7
8
  class TestStorageRequests < StorageShared
8
9
  def test_put_object_string
@@ -93,10 +94,45 @@ class TestStorageRequests < StorageShared
93
94
 
94
95
  @client.copy_object(some_bucket_name, some_object_name,
95
96
  some_bucket_name, target_object_name)
97
+
96
98
  object = @client.get_object(some_bucket_name, target_object_name)
99
+
97
100
  assert_equal(temp_file_content, object[:body])
98
101
  end
99
102
 
103
+ def test_copy_object_predefined_acl
104
+ target_object_name = new_object_name
105
+
106
+ res = @client.copy_object(some_bucket_name, some_object_name,
107
+ some_bucket_name, target_object_name, destination_predefined_acl: "publicRead")
108
+
109
+ result = @client.get_object(some_bucket_name, target_object_name)
110
+
111
+ response = Net::HTTP.get_response(URI(result[:self_link]))
112
+
113
+ assert_kind_of(Net::HTTPOK, response)
114
+ end
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
+
100
136
  def test_list_objects
101
137
  expected_object = some_object_name
102
138
 
@@ -6,6 +6,7 @@ class UnitTestStorageXMLCollections < MiniTest::Test
6
6
  @client = Fog::Storage.new(provider: "google",
7
7
  google_storage_access_key_id: "",
8
8
  google_storage_secret_access_key: "")
9
+ @bucket = @client.directories.create(key: "testbucket-#{SecureRandom.hex}")
9
10
 
10
11
  # Enumerate all descendants of Fog::Collection
11
12
  descendants = ObjectSpace.each_object(Fog::Collection.singleton_class)
@@ -36,4 +37,14 @@ class UnitTestStorageXMLCollections < MiniTest::Test
36
37
  "#{klass} should have at most 1 required parameter in get()")
37
38
  end
38
39
  end
40
+
41
+ def test_metadata
42
+ attr = { key: 'test-file', body: "hello world\x00" }
43
+ f = @bucket.files.new(attr)
44
+ assert_equal({}, f.metadata)
45
+
46
+ metadata = { 'x-goog-meta-my-header' => 'hello world' }
47
+ f = @bucket.files.new(attr.merge(metadata))
48
+ assert_equal(metadata, f.metadata)
49
+ end
39
50
  end
@@ -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,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fog-google
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.10.0
4
+ version: 1.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nat Welch
8
8
  - Artem Yakimenko
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-04-21 00:00:00.000000000 Z
12
+ date: 2021-06-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: fog-core
@@ -59,20 +59,34 @@ dependencies:
59
59
  requirements:
60
60
  - - ">="
61
61
  - !ruby/object:Gem::Version
62
- version: '0.32'
62
+ version: 0.44.2
63
63
  - - "<"
64
64
  - !ruby/object:Gem::Version
65
- version: '0.34'
65
+ version: '0.51'
66
66
  type: :runtime
67
67
  prerelease: false
68
68
  version_requirements: !ruby/object:Gem::Requirement
69
69
  requirements:
70
70
  - - ">="
71
71
  - !ruby/object:Gem::Version
72
- version: '0.32'
72
+ version: 0.44.2
73
73
  - - "<"
74
74
  - !ruby/object:Gem::Version
75
- version: '0.34'
75
+ version: '0.51'
76
+ - !ruby/object:Gem::Dependency
77
+ name: google-cloud-env
78
+ requirement: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1.2'
83
+ type: :runtime
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.2'
76
90
  - !ruby/object:Gem::Dependency
77
91
  name: pry
78
92
  requirement: !ruby/object:Gem::Requirement
@@ -197,11 +211,13 @@ files:
197
211
  - ".codecov.yml"
198
212
  - ".editorconfig"
199
213
  - ".fog.example"
214
+ - ".github/dependabot.yml"
215
+ - ".github/workflows/ruby.yml"
216
+ - ".github/workflows/stale.yml"
200
217
  - ".gitignore"
201
218
  - ".hound.yml"
202
219
  - ".rubocop.yml"
203
220
  - ".ruby-gemset"
204
- - ".travis.yml"
205
221
  - CHANGELOG.md
206
222
  - CONTRIBUTING.md
207
223
  - CONTRIBUTORS.md
@@ -751,13 +767,13 @@ homepage: https://github.com/fog/fog-google
751
767
  licenses:
752
768
  - MIT
753
769
  metadata: {}
754
- post_install_message:
770
+ post_install_message:
755
771
  rdoc_options: []
756
772
  require_paths:
757
773
  - lib
758
774
  required_ruby_version: !ruby/object:Gem::Requirement
759
775
  requirements:
760
- - - "~>"
776
+ - - ">="
761
777
  - !ruby/object:Gem::Version
762
778
  version: '2.0'
763
779
  required_rubygems_version: !ruby/object:Gem::Requirement
@@ -766,9 +782,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
766
782
  - !ruby/object:Gem::Version
767
783
  version: '0'
768
784
  requirements: []
769
- rubyforge_project:
770
- rubygems_version: 2.6.14.4
771
- signing_key:
785
+ rubygems_version: 3.0.3
786
+ signing_key:
772
787
  specification_version: 4
773
788
  summary: Module for the 'fog' gem to support Google.
774
789
  test_files:
data/.travis.yml DELETED
@@ -1,16 +0,0 @@
1
- language: ruby
2
- cache: bundler
3
- sudo: false
4
- matrix:
5
- fast_finish: true
6
- include:
7
- - rvm: 2.3
8
- - rvm: 2.4
9
- - rvm: 2.5
10
- - rvm: 2.6
11
- - rvm: jruby-9.1
12
- - rvm: jruby-head
13
- allow_failures:
14
- - rvm: jruby-head
15
- notifications:
16
- email: false