fog-google 1.22.0 → 1.24.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/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
|