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
@@ -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)
|