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