Class: Fog::Compute::Google::GlobalAddresses

Inherits:
Fog::Collection
  • Object
show all
Defined in:
lib/fog/compute/google/models/global_addresses.rb

Instance Method Summary collapse

Instance Method Details

#all(options = {}) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/fog/compute/google/models/global_addresses.rb', line 7

def all(options = {})
  items = []
  next_page_token = nil
  loop do
    data = service.list_global_addresses(**options)
    next_items = data.to_h[:items] || []
    items.concat(next_items)
    next_page_token = data.next_page_token
    break if next_page_token.nil? || next_page_token.empty?
    options[:page_token] = next_page_token
  end
  load(items)
end

#get(identity) ⇒ Object



21
22
23
24
25
26
27
28
29
# File 'lib/fog/compute/google/models/global_addresses.rb', line 21

def get(identity)
  if identity
    address = service.get_global_address(identity).to_h
    return new(address)
  end
rescue ::Google::Apis::ClientError => e
  raise e unless e.status_code == 404
  nil
end

#get_by_ip_address(ip_address) ⇒ Object



31
32
33
34
35
36
37
38
# File 'lib/fog/compute/google/models/global_addresses.rb', line 31

def get_by_ip_address(ip_address)
  data = service.list_global_addresses(:filter => "address eq #{ip_address}")
  if data.nil? || data.items.nil?
    nil
  else
    new(data.items.first.to_h)
  end
end

#get_by_ip_address_or_name(ip_address_or_name) ⇒ Object



49
50
51
# File 'lib/fog/compute/google/models/global_addresses.rb', line 49

def get_by_ip_address_or_name(ip_address_or_name)
  get_by_ip_address(ip_address_or_name) || get_by_name(ip_address_or_name)
end

#get_by_name(ip_name) ⇒ Object



40
41
42
43
44
45
46
47
# File 'lib/fog/compute/google/models/global_addresses.rb', line 40

def get_by_name(ip_name)
  data = service.list_global_addresses(:filter => "name eq #{ip_name}")
  if data.nil? || data.items.nil?
    nil
  else
    new(data.items.first.to_h)
  end
end