Module: Fog::Compute::Google::Shared
- Defined in:
- lib/fog/google/compute.rb,
lib/fog/google/requests/compute/delete_server.rb
Instance Attribute Summary collapse
-
#project ⇒ Object
readonly
Returns the value of attribute project.
Instance Method Summary collapse
- #backoff_if_unfound(&block) ⇒ Object
- #build_excon_response(body) ⇒ Object
- #find_zone(zone_name) ⇒ Object
Instance Attribute Details
#project ⇒ Object (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 |