fog-google 1.22.0 → 1.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/integration-compute-core.yml +14 -5
- data/.github/workflows/integration-compute-instance_groups.yml +13 -4
- data/.github/workflows/integration-compute-loadbalancing.yml +13 -4
- data/.github/workflows/integration-compute-networking.yml +12 -4
- data/.github/workflows/integration-monitoring.yml +12 -4
- data/.github/workflows/integration-pubsub.yml +12 -4
- data/.github/workflows/integration-sql.yml +12 -4
- data/.github/workflows/integration-storage.yml +12 -4
- data/.github/workflows/stale.yml +1 -1
- data/.github/workflows/unit.yml +7 -2
- data/.ruby-version +1 -0
- data/CHANGELOG.md +41 -0
- data/README.md +2 -2
- data/examples/create_instance_and_attach_disk_later.rb +86 -0
- data/fog-google.gemspec +3 -3
- data/lib/fog/compute/google/models/addresses.rb +17 -8
- data/lib/fog/compute/google/models/disk_types.rb +17 -7
- data/lib/fog/compute/google/models/disks.rb +23 -8
- data/lib/fog/compute/google/models/firewalls.rb +11 -2
- data/lib/fog/compute/google/models/forwarding_rules.rb +16 -10
- data/lib/fog/compute/google/models/global_addresses.rb +11 -2
- data/lib/fog/compute/google/models/global_forwarding_rules.rb +11 -2
- data/lib/fog/compute/google/models/http_health_checks.rb +12 -3
- data/lib/fog/compute/google/models/images.rb +15 -8
- data/lib/fog/compute/google/models/instance_group_managers.rb +17 -9
- data/lib/fog/compute/google/models/instance_groups.rb +16 -8
- data/lib/fog/compute/google/models/instance_templates.rb +12 -3
- data/lib/fog/compute/google/models/machine_types.rb +17 -8
- data/lib/fog/compute/google/models/networks.rb +12 -3
- data/lib/fog/compute/google/models/operations.rb +22 -8
- data/lib/fog/compute/google/models/regions.rb +12 -3
- data/lib/fog/compute/google/models/routes.rb +12 -3
- data/lib/fog/compute/google/models/server.rb +3 -3
- data/lib/fog/compute/google/models/servers.rb +22 -8
- data/lib/fog/compute/google/models/ssl_certificates.rb +12 -3
- data/lib/fog/compute/google/models/subnetworks.rb +16 -8
- data/lib/fog/compute/google/models/target_http_proxies.rb +12 -3
- data/lib/fog/compute/google/models/target_https_proxies.rb +12 -3
- data/lib/fog/compute/google/models/target_instances.rb +16 -8
- data/lib/fog/compute/google/models/target_pools.rb +16 -8
- data/lib/fog/compute/google/models/url_maps.rb +12 -3
- data/lib/fog/compute/google/models/zones.rb +12 -3
- data/lib/fog/compute/google/requests/stop_server.rb +2 -2
- data/lib/fog/google/version.rb +1 -1
- data/test/helpers/integration_test_helper.rb +1 -1
- data/test/integration/compute/core_compute/test_servers.rb +86 -0
- data/test/integration/storage/test_objects.rb +1 -0
- data/test/unit/compute/test_common_collections.rb +1 -1
- data/test/unit/compute/test_common_models.rb +1 -1
- data/test/unit/compute/test_disk.rb +26 -0
- data/test/unit/compute/test_server.rb +1 -1
- data/test/unit/dns/test_common_collections.rb +1 -1
- data/test/unit/monitoring/test_comon_collections.rb +1 -1
- data/test/unit/pubsub/test_common_collections.rb +1 -1
- data/test/unit/sql/test_common_collections.rb +1 -1
- data/test/unit/storage/test_common_json_collections.rb +1 -1
- data/test/unit/storage/test_common_xml_collections.rb +1 -1
- data/test/unit/storage/test_json_requests.rb +1 -1
- data/test/unit/storage/test_xml_requests.rb +1 -1
- metadata +19 -9
@@ -11,17 +11,25 @@ module Fog
|
|
11
11
|
:order_by => order_by,
|
12
12
|
:page_token => page_token
|
13
13
|
}
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
14
|
+
items = []
|
15
|
+
next_page_token = nil
|
16
|
+
loop do
|
17
|
+
if region.nil?
|
18
|
+
data = service.list_aggregated_target_pools(**opts)
|
19
|
+
data.items.each_value do |lst|
|
20
|
+
items.concat(lst.to_h[:target_pools]) if lst && lst.target_pools
|
19
21
|
end
|
22
|
+
next_page_token = data.next_page_token
|
23
|
+
else
|
24
|
+
data = service.list_target_pools(region, **opts)
|
25
|
+
next_items = data.to_h[:items] || []
|
26
|
+
items.concat(next_items)
|
27
|
+
next_page_token = data.next_page_token
|
20
28
|
end
|
21
|
-
|
22
|
-
|
29
|
+
break if next_page_token.nil? || next_page_token.empty?
|
30
|
+
opts[:page_token] = next_page_token
|
23
31
|
end
|
24
|
-
load(
|
32
|
+
load(items)
|
25
33
|
end
|
26
34
|
|
27
35
|
def get(identity, region = nil)
|
@@ -4,9 +4,18 @@ module Fog
|
|
4
4
|
class UrlMaps < Fog::Collection
|
5
5
|
model Fog::Compute::Google::UrlMap
|
6
6
|
|
7
|
-
def all
|
8
|
-
|
9
|
-
|
7
|
+
def all(opts = {})
|
8
|
+
items = []
|
9
|
+
next_page_token = nil
|
10
|
+
loop do
|
11
|
+
data = service.list_url_maps(**opts)
|
12
|
+
next_items = data.to_h[:items] || []
|
13
|
+
items.concat(next_items)
|
14
|
+
next_page_token = data.next_page_token
|
15
|
+
break if next_page_token.nil? || next_page_token.empty?
|
16
|
+
opts[:page_token] = next_page_token
|
17
|
+
end
|
18
|
+
load(items)
|
10
19
|
end
|
11
20
|
|
12
21
|
def get(identity)
|
@@ -4,9 +4,18 @@ module Fog
|
|
4
4
|
class Zones < Fog::Collection
|
5
5
|
model Fog::Compute::Google::Zone
|
6
6
|
|
7
|
-
def all
|
8
|
-
|
9
|
-
|
7
|
+
def all(opts = {})
|
8
|
+
items = []
|
9
|
+
next_page_token = nil
|
10
|
+
loop do
|
11
|
+
data = service.list_zones
|
12
|
+
next_items = data.to_h[:items] || []
|
13
|
+
items.concat(next_items)
|
14
|
+
next_page_token = data.next_page_token
|
15
|
+
break if next_page_token.nil? || next_page_token.empty?
|
16
|
+
opts[:page_token] = next_page_token
|
17
|
+
end
|
18
|
+
load(items)
|
10
19
|
end
|
11
20
|
|
12
21
|
def get(identity)
|
@@ -10,8 +10,8 @@ module Fog
|
|
10
10
|
end
|
11
11
|
|
12
12
|
class Real
|
13
|
-
def stop_server(identity, zone)
|
14
|
-
@compute.stop_instance(@project, zone.split("/")[-1], identity)
|
13
|
+
def stop_server(identity, zone, discard_local_ssd=false)
|
14
|
+
@compute.stop_instance(@project, zone.split("/")[-1], identity, discard_local_ssd: discard_local_ssd)
|
15
15
|
end
|
16
16
|
end
|
17
17
|
end
|
data/lib/fog/google/version.rb
CHANGED
@@ -132,6 +132,92 @@ class TestServers < FogIntegrationTest
|
|
132
132
|
assert server.ready?
|
133
133
|
end
|
134
134
|
|
135
|
+
def test_start_stop_discard_local_ssd
|
136
|
+
server = @factory.create
|
137
|
+
|
138
|
+
async = true
|
139
|
+
discard_local_ssd = true
|
140
|
+
|
141
|
+
server.stop(async, discard_local_ssd)
|
142
|
+
server.wait_for { stopped? }
|
143
|
+
|
144
|
+
assert server.stopped?
|
145
|
+
end
|
146
|
+
|
147
|
+
def test_attach_disk
|
148
|
+
# Creating server
|
149
|
+
server = @factory.create
|
150
|
+
server.wait_for { ready? }
|
151
|
+
|
152
|
+
disk_name = "fog-test-1-testservers-test-attach-disk-attachable" # suffix forces disk name to differ from the existing disk
|
153
|
+
# Creating disk #{disk_name}
|
154
|
+
disk = @disks.create(
|
155
|
+
:name => disk_name,
|
156
|
+
:source_image => TEST_IMAGE,
|
157
|
+
:size_gb => 64
|
158
|
+
)
|
159
|
+
device_name = "#{disk.name}-device"
|
160
|
+
|
161
|
+
# Attaching disk #{disk.name} as device #{device_name}
|
162
|
+
self_link = "https://www.googleapis.com/compute/v1/projects/#{TEST_PROJECT}/zones/#{TEST_ZONE}/disks/#{disk.name}"
|
163
|
+
server.attach_disk(self_link, true, device_name: device_name)
|
164
|
+
|
165
|
+
# Waiting for attachment
|
166
|
+
disk.wait_for { ! users.nil? && users != []}
|
167
|
+
|
168
|
+
assert_equal "https://www.googleapis.com/compute/v1/projects/#{TEST_PROJECT}/zones/#{TEST_ZONE}/instances/#{server.name}", disk.users[0]
|
169
|
+
|
170
|
+
server.reload
|
171
|
+
server_attached_disk = server.disks.select{|d| d[:boot] == false}[0]
|
172
|
+
assert_equal device_name, server_attached_disk[:device_name]
|
173
|
+
end
|
174
|
+
|
175
|
+
def test_detach_disk
|
176
|
+
# Creating server
|
177
|
+
server = @factory.create
|
178
|
+
server.wait_for { ready? }
|
179
|
+
|
180
|
+
disk_name = "fog-test-1-testservers-test-detach-attachable" # suffix forces disk name to differ from the existing disk
|
181
|
+
# Creating disk #{disk_name}
|
182
|
+
disk = @disks.create(
|
183
|
+
:name => disk_name,
|
184
|
+
:source_image => TEST_IMAGE,
|
185
|
+
:size_gb => 64
|
186
|
+
)
|
187
|
+
device_name = "#{disk.name}-device"
|
188
|
+
|
189
|
+
# Attaching disk #{disk.name} as device #{device_name}
|
190
|
+
self_link = "https://www.googleapis.com/compute/v1/projects/#{TEST_PROJECT}/zones/#{TEST_ZONE}/disks/#{disk.name}"
|
191
|
+
server.attach_disk(self_link, true, device_name: device_name)
|
192
|
+
disk.wait_for { ! users.nil? && users != []}
|
193
|
+
|
194
|
+
server.reload
|
195
|
+
server_attached_disk = server.disks.select{|d| d[:boot] == false}[0]
|
196
|
+
assert_equal device_name, server_attached_disk[:device_name]
|
197
|
+
|
198
|
+
# Detaching (synchronous) disk #{disk.name}
|
199
|
+
server.detach_disk(device_name, false)
|
200
|
+
|
201
|
+
disk.reload
|
202
|
+
assert disk.users.nil? || disk.users == []
|
203
|
+
|
204
|
+
# Re-attaching disk #{disk.name} as device #{device_name}
|
205
|
+
server.attach_disk(self_link, true, device_name: device_name)
|
206
|
+
disk.wait_for { ! users.nil? && users != []}
|
207
|
+
|
208
|
+
server.reload
|
209
|
+
server_attached_disk = server.disks.select{|d| d[:boot] == false}[0]
|
210
|
+
assert_equal device_name, server_attached_disk[:device_name]
|
211
|
+
|
212
|
+
# Detaching (async) disk #{disk.name}
|
213
|
+
server.detach_disk(device_name, true)
|
214
|
+
|
215
|
+
# Waiting for detachment
|
216
|
+
disk.wait_for { users.nil? || users == []}
|
217
|
+
|
218
|
+
assert disk.users.nil? || disk.users == []
|
219
|
+
end
|
220
|
+
|
135
221
|
def test_reset_windows_password
|
136
222
|
win_disk = @disks.create(
|
137
223
|
:name => "fog-test-1-testservers-test-reset-windows-password-2",
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require "helpers/test_helper"
|
2
|
+
|
3
|
+
class UnitTestDisk < Minitest::Test
|
4
|
+
def setup
|
5
|
+
Fog.mock!
|
6
|
+
@client = Fog::Compute.new(provider: "google",
|
7
|
+
google_project: "foo")
|
8
|
+
end
|
9
|
+
|
10
|
+
def teardown
|
11
|
+
Fog.unmock!
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_new_disk
|
15
|
+
disk = Fog::Compute::Google::Disk.new(
|
16
|
+
:name => "fog-1",
|
17
|
+
:size_gb => 10,
|
18
|
+
:zone => "us-central1-a",
|
19
|
+
:source_image => "debian-7-wheezy-v20131120"
|
20
|
+
)
|
21
|
+
assert_equal("fog-1", disk.name, "Fog::Compute::Google::Disk name is incorrect: #{disk.name}")
|
22
|
+
assert_equal(10, disk.size_gb, "Fog::Compute::Google::Disk size_gb is incorrect: #{disk.size_gb}")
|
23
|
+
assert_equal("us-central1-a", disk.zone, "Fog::Compute::Google::Disk zone is incorrect: #{disk.zone}")
|
24
|
+
assert_equal("debian-7-wheezy-v20131120", disk.source_image, "Fog::Compute::Google::Disk source_image is incorrect: #{disk.source_image}")
|
25
|
+
end
|
26
|
+
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.24.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:
|
12
|
+
date: 2024-04-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: fog-core
|
@@ -17,14 +17,14 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - "<"
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: '2.
|
20
|
+
version: '2.5'
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - "<"
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: '2.
|
27
|
+
version: '2.5'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: fog-json
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -161,16 +161,22 @@ dependencies:
|
|
161
161
|
name: google-cloud-env
|
162
162
|
requirement: !ruby/object:Gem::Requirement
|
163
163
|
requirements:
|
164
|
-
- - "
|
164
|
+
- - ">="
|
165
165
|
- !ruby/object:Gem::Version
|
166
166
|
version: '1.2'
|
167
|
+
- - "<"
|
168
|
+
- !ruby/object:Gem::Version
|
169
|
+
version: '3.0'
|
167
170
|
type: :runtime
|
168
171
|
prerelease: false
|
169
172
|
version_requirements: !ruby/object:Gem::Requirement
|
170
173
|
requirements:
|
171
|
-
- - "
|
174
|
+
- - ">="
|
172
175
|
- !ruby/object:Gem::Version
|
173
176
|
version: '1.2'
|
177
|
+
- - "<"
|
178
|
+
- !ruby/object:Gem::Version
|
179
|
+
version: '3.0'
|
174
180
|
- !ruby/object:Gem::Dependency
|
175
181
|
name: addressable
|
176
182
|
requirement: !ruby/object:Gem::Requirement
|
@@ -191,14 +197,14 @@ dependencies:
|
|
191
197
|
requirements:
|
192
198
|
- - '='
|
193
199
|
- !ruby/object:Gem::Version
|
194
|
-
version: 0.
|
200
|
+
version: 0.14.2
|
195
201
|
type: :development
|
196
202
|
prerelease: false
|
197
203
|
version_requirements: !ruby/object:Gem::Requirement
|
198
204
|
requirements:
|
199
205
|
- - '='
|
200
206
|
- !ruby/object:Gem::Version
|
201
|
-
version: 0.
|
207
|
+
version: 0.14.2
|
202
208
|
- !ruby/object:Gem::Dependency
|
203
209
|
name: retriable
|
204
210
|
requirement: !ruby/object:Gem::Requirement
|
@@ -325,6 +331,7 @@ files:
|
|
325
331
|
- ".hound.yml"
|
326
332
|
- ".rubocop.yml"
|
327
333
|
- ".ruby-gemset"
|
334
|
+
- ".ruby-version"
|
328
335
|
- CHANGELOG.md
|
329
336
|
- CONTRIBUTING.md
|
330
337
|
- CONTRIBUTORS.md
|
@@ -337,6 +344,7 @@ files:
|
|
337
344
|
- examples/backend_services.rb
|
338
345
|
- examples/bootstrap.rb
|
339
346
|
- examples/create_instance.rb
|
347
|
+
- examples/create_instance_and_attach_disk_later.rb
|
340
348
|
- examples/create_instance_with_attached_disk.rb
|
341
349
|
- examples/dns/project.rb
|
342
350
|
- examples/dns/zones.rb
|
@@ -851,6 +859,7 @@ files:
|
|
851
859
|
- test/integration/test_authentication.rb
|
852
860
|
- test/unit/compute/test_common_collections.rb
|
853
861
|
- test/unit/compute/test_common_models.rb
|
862
|
+
- test/unit/compute/test_disk.rb
|
854
863
|
- test/unit/compute/test_server.rb
|
855
864
|
- test/unit/dns/test_common_collections.rb
|
856
865
|
- test/unit/monitoring/test_comon_collections.rb
|
@@ -879,7 +888,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
879
888
|
- !ruby/object:Gem::Version
|
880
889
|
version: '0'
|
881
890
|
requirements: []
|
882
|
-
rubygems_version: 3.
|
891
|
+
rubygems_version: 3.4.10
|
883
892
|
signing_key:
|
884
893
|
specification_version: 4
|
885
894
|
summary: Module for the 'fog' gem to support Google.
|
@@ -970,6 +979,7 @@ test_files:
|
|
970
979
|
- test/integration/test_authentication.rb
|
971
980
|
- test/unit/compute/test_common_collections.rb
|
972
981
|
- test/unit/compute/test_common_models.rb
|
982
|
+
- test/unit/compute/test_disk.rb
|
973
983
|
- test/unit/compute/test_server.rb
|
974
984
|
- test/unit/dns/test_common_collections.rb
|
975
985
|
- test/unit/monitoring/test_comon_collections.rb
|