Module: Fog::Compute::Google::Shared

Included in:
Mock, Real
Defined in:
lib/fog/google/compute.rb,
lib/fog/google/requests/compute/delete_server.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#projectObject (readonly)

Returns the value of attribute project.



68
69
70
# File 'lib/fog/google/compute.rb', line 68

def project
  @project
end

Instance Method Details

#backoff_if_unfound(&block) ⇒ Object



85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# File 'lib/fog/google/compute.rb', line 85

def backoff_if_unfound(&block)
  retries_remaining = 10
  begin
    result = block.call
  rescue Exception => msg
    if msg.to_s.include? 'was not found' and retries_remaining > 0
      retries_remaining -= 1
      sleep 0.1
      retry
    else
      raise msg
    end
  end
  result
end

#build_excon_response(body) ⇒ Object



70
71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/fog/google/compute.rb', line 70

def build_excon_response(body)
  response = Excon::Response.new
  response.body = body
  if response.body["error"]
    response.status = response.body["error"]["code"]

    response.body["error"]["errors"].each do |error|
      raise Fog::Errors::Error.new(error["message"])
    end
  else
    response.status = 200
  end
  response
end

#find_zone(zone_name) ⇒ Object



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

def find_zone(zone_name)
  if zone_name.nil?
    list_zones.body['items'].each do |zone|
      if get_server(server_name, zone['name']).status == 200
        return zone['name']
      end
    end
  else
    if zone_name.is_a? Excon::Response
      return zone_name.body["name"]
    end
  end
  return zone_name
end