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
@@ -12,20 +12,34 @@ module Fog
|
|
12
12
|
:order_by => order_by,
|
13
13
|
:page_token => page_token
|
14
14
|
}
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
data.
|
15
|
+
items = []
|
16
|
+
next_page_token = nil
|
17
|
+
loop do
|
18
|
+
if zone
|
19
|
+
data = service.list_disks(zone, **opts)
|
20
|
+
next_items = data.items || []
|
21
|
+
items.concat(next_items)
|
22
|
+
next_page_token = data.next_page_token
|
23
|
+
else
|
24
|
+
data = service.list_aggregated_disks(**opts)
|
25
|
+
data.items.each_value do |scoped_list|
|
26
|
+
items.concat(scoped_list.disks) if scoped_list && scoped_list.disks
|
27
|
+
end
|
28
|
+
next_page_token = data.next_page_token
|
21
29
|
end
|
30
|
+
break if next_page_token.nil? || next_page_token.empty?
|
31
|
+
opts[:page_token] = next_page_token
|
22
32
|
end
|
23
|
-
load(
|
33
|
+
load(items.map(&:to_h))
|
24
34
|
end
|
25
35
|
|
26
36
|
def get(identity, zone = nil)
|
27
37
|
if zone
|
28
38
|
disk = service.get_disk(identity, zone).to_h
|
39
|
+
|
40
|
+
# Force the hash to contain a :users key so that it will override any :users key in the existing object
|
41
|
+
disk[:users] = nil unless disk.include?(:users)
|
42
|
+
|
29
43
|
return new(disk)
|
30
44
|
elsif identity
|
31
45
|
response = all(:filter => "name eq #{identity}",
|
@@ -35,7 +49,8 @@ module Fog
|
|
35
49
|
end
|
36
50
|
rescue ::Google::Apis::ClientError => e
|
37
51
|
raise e unless e.status_code == 404
|
38
|
-
|
52
|
+
# Return an empty object so that wait_for processes the block
|
53
|
+
return new({:status => nil})
|
39
54
|
end
|
40
55
|
|
41
56
|
# Returns an attached disk configuration hash.
|
@@ -5,8 +5,17 @@ module Fog
|
|
5
5
|
model Fog::Compute::Google::Firewall
|
6
6
|
|
7
7
|
def all(opts = {})
|
8
|
-
|
9
|
-
|
8
|
+
items = []
|
9
|
+
next_page_token = nil
|
10
|
+
loop do
|
11
|
+
data = service.list_firewalls(**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)
|
@@ -11,19 +11,25 @@ module Fog
|
|
11
11
|
:order_by => order_by,
|
12
12
|
:page_token => page_token
|
13
13
|
}
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
14
|
+
items = []
|
15
|
+
next_page_token = nil
|
16
|
+
loop do
|
17
|
+
if region
|
18
|
+
data = service.list_forwarding_rules(region, **opts)
|
19
|
+
next_items = data.items || []
|
20
|
+
items.concat(next_items)
|
21
|
+
next_page_token = data.next_page_token
|
22
|
+
else
|
23
|
+
data = service.list_aggregated_forwarding_rules(**opts)
|
24
|
+
data.items.each_value do |scoped_list|
|
25
|
+
items.concat(scoped_list.forwarding_rules) if scoped_list && scoped_list.forwarding_rules
|
23
26
|
end
|
27
|
+
next_page_token = data.next_page_token
|
24
28
|
end
|
29
|
+
break if next_page_token.nil? || next_page_token.empty?
|
30
|
+
opts[:page_token] = next_page_token
|
25
31
|
end
|
26
|
-
load(
|
32
|
+
load(items.map(&:to_h))
|
27
33
|
end
|
28
34
|
|
29
35
|
def get(identity, region = nil)
|
@@ -5,8 +5,17 @@ module Fog
|
|
5
5
|
model Fog::Compute::Google::GlobalAddress
|
6
6
|
|
7
7
|
def all(options = {})
|
8
|
-
|
9
|
-
|
8
|
+
items = []
|
9
|
+
next_page_token = nil
|
10
|
+
loop do
|
11
|
+
data = service.list_global_addresses(**options)
|
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
|
+
options[:page_token] = next_page_token
|
17
|
+
end
|
18
|
+
load(items)
|
10
19
|
end
|
11
20
|
|
12
21
|
def get(identity)
|
@@ -5,8 +5,17 @@ module Fog
|
|
5
5
|
model Fog::Compute::Google::GlobalForwardingRule
|
6
6
|
|
7
7
|
def all(opts = {})
|
8
|
-
|
9
|
-
|
8
|
+
items = []
|
9
|
+
next_page_token = nil
|
10
|
+
loop do
|
11
|
+
data = service.list_global_forwarding_rules(**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 HttpHealthChecks < Fog::Collection
|
5
5
|
model Fog::Compute::Google::HttpHealthCheck
|
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_http_health_checks(**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)
|
@@ -24,12 +24,21 @@ module Fog
|
|
24
24
|
windows-sql-cloud
|
25
25
|
).freeze
|
26
26
|
|
27
|
-
def all
|
28
|
-
|
27
|
+
def all(opts = {})
|
28
|
+
items = []
|
29
|
+
all_projects.each do |project|
|
29
30
|
begin
|
30
|
-
|
31
|
-
|
32
|
-
|
31
|
+
next_page_token = nil
|
32
|
+
loop do
|
33
|
+
opts[:page_token] = next_page_token
|
34
|
+
data = service.list_images(project, **opts)
|
35
|
+
images = data.items&.map(&:to_h) || []
|
36
|
+
# Keep track of the project in which we found the image(s)
|
37
|
+
images.each { |img| img.merge!(:project => project) }
|
38
|
+
items.concat(images)
|
39
|
+
next_page_token = data.next_page_token
|
40
|
+
break if next_page_token.nil? || next_page_token.empty?
|
41
|
+
end
|
33
42
|
rescue ::Google::Apis::ClientError => e
|
34
43
|
raise e unless e.status_code == 404
|
35
44
|
# Not everyone has access to every Global Project. Requests
|
@@ -37,9 +46,7 @@ module Fog
|
|
37
46
|
next
|
38
47
|
end
|
39
48
|
end
|
40
|
-
|
41
|
-
|
42
|
-
load(data)
|
49
|
+
load(items)
|
43
50
|
end
|
44
51
|
|
45
52
|
# Only return the non-deprecated list of images
|
@@ -12,17 +12,25 @@ module Fog
|
|
12
12
|
:order_by => order_by,
|
13
13
|
:page_token => page_token
|
14
14
|
}
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
15
|
+
items = []
|
16
|
+
next_page_token = nil
|
17
|
+
loop do
|
18
|
+
if zone
|
19
|
+
data = service.list_instance_group_managers(zone, **opts)
|
20
|
+
next_items = data.items || []
|
21
|
+
items.concat(next_items)
|
22
|
+
next_page_token = data.next_page_token
|
23
|
+
else
|
24
|
+
data = service.list_aggregated_instance_group_managers(**opts)
|
25
|
+
data.items.each_value do |group|
|
26
|
+
items.concat(group.instance_group_managers) if group && group.instance_group_managers
|
27
|
+
end
|
28
|
+
next_page_token = data.next_page_token
|
22
29
|
end
|
30
|
+
break if next_page_token.nil? || next_page_token.empty?
|
31
|
+
opts[:page_token] = next_page_token
|
23
32
|
end
|
24
|
-
|
25
|
-
load(data.map(&:to_h))
|
33
|
+
load(items.map(&:to_h))
|
26
34
|
end
|
27
35
|
|
28
36
|
def get(identity, zone = nil)
|
@@ -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
|
-
|
19
|
-
|
20
|
-
|
14
|
+
items = []
|
15
|
+
next_page_token = nil
|
16
|
+
loop do
|
17
|
+
if zone
|
18
|
+
data = service.list_instance_groups(zone)
|
19
|
+
next_items = data.items || []
|
20
|
+
items.concat(next_items)
|
21
|
+
else
|
22
|
+
data = service.list_aggregated_instance_groups(opts)
|
23
|
+
data.items.each_value do |group|
|
24
|
+
items.concat(group.instance_groups) if group && group.instance_groups
|
25
|
+
end
|
26
|
+
next_page_token = data.next_page_token
|
21
27
|
end
|
28
|
+
break if next_page_token.nil? || next_page_token.empty?
|
29
|
+
opts[:page_token] = next_page_token
|
22
30
|
end
|
23
31
|
|
24
|
-
load(
|
32
|
+
load(items.map(&:to_h))
|
25
33
|
end
|
26
34
|
|
27
35
|
def get(identity, zone = nil)
|
@@ -4,9 +4,18 @@ module Fog
|
|
4
4
|
class InstanceTemplates < Fog::Collection
|
5
5
|
model Fog::Compute::Google::InstanceTemplate
|
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_instance_templates(**opts)
|
12
|
+
next_items = data.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.map(&:to_h))
|
10
19
|
end
|
11
20
|
|
12
21
|
def get(identity)
|
@@ -11,16 +11,25 @@ module Fog
|
|
11
11
|
:order_by => order_by,
|
12
12
|
:page_token => page_token
|
13
13
|
}
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
14
|
+
items = []
|
15
|
+
next_page_token = nil
|
16
|
+
loop do
|
17
|
+
if zone
|
18
|
+
data = service.list_machine_types(zone, **opts)
|
19
|
+
next_items = data.items || []
|
20
|
+
items.concat(next_items)
|
21
|
+
next_page_token = data.next_page_token
|
22
|
+
else
|
23
|
+
data = service.list_aggregated_machine_types(**opts)
|
24
|
+
data.items.each_value do |scoped_list|
|
25
|
+
items.concat(scoped_list.machine_types) if scoped_list && scoped_list.machine_types
|
26
|
+
end
|
27
|
+
next_page_token = data.next_page_token
|
21
28
|
end
|
29
|
+
break if next_page_token.nil? || next_page_token.empty?
|
30
|
+
opts[:page_token] = next_page_token
|
22
31
|
end
|
23
|
-
load(
|
32
|
+
load(items.map(&:to_h) || [])
|
24
33
|
end
|
25
34
|
|
26
35
|
def get(identity, zone = nil)
|
@@ -4,9 +4,18 @@ module Fog
|
|
4
4
|
class Networks < Fog::Collection
|
5
5
|
model Fog::Compute::Google::Network
|
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_networks(**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)
|
@@ -12,16 +12,30 @@ module Fog
|
|
12
12
|
:order_by => order_by,
|
13
13
|
:page_token => page_token
|
14
14
|
}
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
15
|
+
items = []
|
16
|
+
next_page_token = nil
|
17
|
+
loop do
|
18
|
+
if zone
|
19
|
+
data = service.list_zone_operations(zone, **opts)
|
20
|
+
next_items = data.to_h[:items] || []
|
21
|
+
items.concat(next_items)
|
22
|
+
next_page_token = data.next_page_token
|
23
|
+
elsif region
|
24
|
+
data = service.list_region_operations(region, **opts)
|
25
|
+
next_items = data.to_h[:items] || []
|
26
|
+
items.concat(next_items)
|
27
|
+
next_page_token = data.next_page_token
|
28
|
+
else
|
29
|
+
data = service.list_global_operations(**opts)
|
30
|
+
next_items = data.to_h[:items] || []
|
31
|
+
items.concat(next_items)
|
32
|
+
next_page_token = data.next_page_token
|
33
|
+
end
|
34
|
+
break if next_page_token.nil? || next_page_token.empty?
|
35
|
+
opts[:page_token] = next_page_token
|
22
36
|
end
|
23
37
|
|
24
|
-
load(
|
38
|
+
load(items)
|
25
39
|
end
|
26
40
|
|
27
41
|
def get(identity, zone = nil, region = nil)
|
@@ -4,9 +4,18 @@ module Fog
|
|
4
4
|
class Regions < Fog::Collection
|
5
5
|
model Fog::Compute::Google::Region
|
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_regions(**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 Routes < Fog::Collection
|
5
5
|
model Fog::Compute::Google::Route
|
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_routes(**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)
|
@@ -279,7 +279,7 @@ module Fog
|
|
279
279
|
if disk.is_a? Disk
|
280
280
|
disk_obj = disk.get_attached_disk
|
281
281
|
elsif disk.is_a? String
|
282
|
-
disk_obj = service.disks.attached_disk_obj(disk, attached_disk_options)
|
282
|
+
disk_obj = service.disks.attached_disk_obj(disk, **attached_disk_options)
|
283
283
|
end
|
284
284
|
|
285
285
|
data = service.attach_disk(identity, zone_name, disk_obj)
|
@@ -339,10 +339,10 @@ module Fog
|
|
339
339
|
operation
|
340
340
|
end
|
341
341
|
|
342
|
-
def stop(async = true)
|
342
|
+
def stop(async = true, discard_local_ssd=false)
|
343
343
|
requires :identity, :zone
|
344
344
|
|
345
|
-
data = service.stop_server(identity, zone_name)
|
345
|
+
data = service.stop_server(identity, zone_name, discard_local_ssd)
|
346
346
|
operation = Fog::Compute::Google::Operations
|
347
347
|
.new(:service => service)
|
348
348
|
.get(data.name, data.zone)
|
@@ -13,17 +13,31 @@ module Fog
|
|
13
13
|
:page_token => page_token
|
14
14
|
}
|
15
15
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
16
|
+
items = []
|
17
|
+
next_page_token = nil
|
18
|
+
|
19
|
+
loop do
|
20
|
+
if zone
|
21
|
+
data = service.list_servers(zone, **opts)
|
22
|
+
next_items = data.to_h[:items] || []
|
23
|
+
items.concat(next_items)
|
24
|
+
next_page_token = data.next_page_token
|
25
|
+
else
|
26
|
+
data = service.list_aggregated_servers(**opts)
|
27
|
+
data.items.each_value do |scoped_lst|
|
28
|
+
if scoped_lst && scoped_lst.instances
|
29
|
+
items.concat(scoped_lst.instances.map(&:to_h))
|
30
|
+
end
|
23
31
|
end
|
32
|
+
next_page_token = data.next_page_token
|
24
33
|
end
|
34
|
+
|
35
|
+
break if next_page_token.nil? || next_page_token.empty?
|
36
|
+
|
37
|
+
opts[:page_token] = next_page_token
|
25
38
|
end
|
26
|
-
|
39
|
+
|
40
|
+
load(items)
|
27
41
|
end
|
28
42
|
|
29
43
|
# TODO: This method needs to take self_links as well as names
|
@@ -14,9 +14,18 @@ module Fog
|
|
14
14
|
nil
|
15
15
|
end
|
16
16
|
|
17
|
-
def all(
|
18
|
-
|
19
|
-
|
17
|
+
def all(opts = {})
|
18
|
+
items = []
|
19
|
+
next_page_token = nil
|
20
|
+
loop do
|
21
|
+
data = service.list_ssl_certificates(**opts)
|
22
|
+
next_items = data.to_h[:items] || []
|
23
|
+
items.concat(next_items)
|
24
|
+
next_page_token = data.next_page_token
|
25
|
+
break if next_page_token.nil? || next_page_token.empty?
|
26
|
+
opts[:page_token] = next_page_token
|
27
|
+
end
|
28
|
+
load(items)
|
20
29
|
end
|
21
30
|
end
|
22
31
|
end
|
@@ -11,16 +11,24 @@ module Fog
|
|
11
11
|
:order_by => order_by,
|
12
12
|
:page_token => page_token
|
13
13
|
}
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
14
|
+
items = []
|
15
|
+
next_page_token = nil
|
16
|
+
loop do
|
17
|
+
if region
|
18
|
+
data = service.list_subnetworks(region, **filters)
|
19
|
+
next_items = data.items || []
|
20
|
+
items.concat(next_items)
|
21
|
+
next_page_token = data.next_page_token
|
22
|
+
else
|
23
|
+
data = service.list_aggregated_subnetworks(**filters)
|
24
|
+
data.items.each_value do |region_obj|
|
25
|
+
items.concat(region_obj.subnetworks) if region_obj && region_obj.subnetworks
|
26
|
+
end
|
21
27
|
end
|
28
|
+
break if next_page_token.nil? || next_page_token.empty?
|
29
|
+
filters[:page_token] = next_page_token
|
22
30
|
end
|
23
|
-
load(
|
31
|
+
load(items.map(&:to_h))
|
24
32
|
end
|
25
33
|
|
26
34
|
def get(identity, region = nil)
|
@@ -4,9 +4,18 @@ module Fog
|
|
4
4
|
class TargetHttpProxies < Fog::Collection
|
5
5
|
model Fog::Compute::Google::TargetHttpProxy
|
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_target_http_proxies(*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 TargetHttpsProxies < Fog::Collection
|
5
5
|
model Fog::Compute::Google::TargetHttpsProxy
|
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_target_https_proxies(**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)
|
@@ -13,17 +13,25 @@ module Fog
|
|
13
13
|
:page_token => page_token
|
14
14
|
}
|
15
15
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
16
|
+
items = []
|
17
|
+
next_page_token = nil
|
18
|
+
loop do
|
19
|
+
if zone
|
20
|
+
data = service.list_target_instances(zone, **opts)
|
21
|
+
next_items = data.to_h[:items] || []
|
22
|
+
items.concat(next_items)
|
23
|
+
next_page_token = data.next_page_token
|
24
|
+
else
|
25
|
+
data = service.list_aggregated_target_instances(**opts)
|
26
|
+
data.items.each_value do |scoped_list|
|
27
|
+
items.concat(scoped_list.target_instances.map(&:to_h)) if scoped_list && scoped_list.target_instances
|
23
28
|
end
|
29
|
+
next_page_token = data.next_page_token
|
24
30
|
end
|
31
|
+
break if next_page_token.nil? || next_page_token.empty?
|
32
|
+
opts[:page_token] = next_page_token
|
25
33
|
end
|
26
|
-
load(
|
34
|
+
load(items)
|
27
35
|
end
|
28
36
|
|
29
37
|
def get(identity, zone = nil)
|