lib/fog/compute/google/models/addresses.rb in fog-google-1.22.0 vs lib/fog/compute/google/models/addresses.rb in fog-google-1.23.0
- old
+ new
@@ -9,19 +9,28 @@
:filter => filter,
:max_results => max_results,
:order_by => order_by,
:page_token => page_token
}
-
- if region
- data = service.list_addresses(region, **opts).items || []
- else
- data = []
- service.list_aggregated_addresses(**opts).items.each_value do |scoped_list|
- data.concat(scoped_list.addresses) if scoped_list && scoped_list.addresses
+ items = []
+ next_page_token = nil
+ loop do
+ if region
+ data = service.list_addresses(region, **opts)
+ next_items = data.items || []
+ items.concat(next_items)
+ next_page_token = data.next_page_token
+ else
+ data = service.list_aggregated_addresses(**opts)
+ data.items.each_value do |scoped_list|
+ items.concat(scoped_list.addresses) if scoped_list && scoped_list.addresses
+ end
+ next_page_token = data.next_page_token
end
+ break if next_page_token.nil? || next_page_token.empty?
+ opts[:page_token] = next_page_token
end
- load(data.map(&:to_h))
+ load(items.map(&:to_h))
end
def get(identity, region = nil)
if region
address = service.get_address(identity, region).to_h