class Fog::Compute::Google::ResourceView
the resource view model creates either a region view or zone view depending on which is parameter is passed
Constants
- RUNNING_STATE
Public Instance Methods
add_resources(resources)
click to toggle source
# File lib/fog/compute/google/models/resource_view.rb, line 75 def add_resources(resources) resources = [resources] unless resources.class == Array resources.map { |resource| resource.class == String ? resource : resource.self_link } service.add_zone_view_resources(self, resources, @zone) if @zone service.add_region_view_resources(self, reources, @region) if @region reload end
destroy(async = false)
click to toggle source
# File lib/fog/compute/google/models/resource_view.rb, line 53 def destroy(async = false) requires :name # parse the self link to get the zone or region selflink = self_link.split("/") if selflink[7] == "regions" operation = service.delete_region_view(name, selflink[8]) end if selflink[7] == "zones" operation = service.delete_zone_view(name, selflink[8]) end unless async # wait until "DONE" to ensure the operation doesn't fail, raises # exception on error Fog.wait_for do operation.body.nil? end end operation end
ready?()
click to toggle source
# File lib/fog/compute/google/models/resource_view.rb, line 83 def ready? service.get_zone_view(name, @zone) if @zone service.get_region_view(name, @region) if @region true rescue Fog::Errors::NotFound false end
reload()
click to toggle source
# File lib/fog/compute/google/models/resource_view.rb, line 91 def reload requires :name return unless data = begin collection.get(name, region, zone) rescue Excon::Errors::SocketError nil end new_attributes = data.attributes merge_attributes(new_attributes) self end
save()
click to toggle source
# File lib/fog/compute/google/models/resource_view.rb, line 20 def save requires :name labels ||= [] members ||= [] if region options = { "description" => description, "labels" => labels, "lastModified" => last_modified, "members" => members, "numMembers" => num_members } @region = region data = service.insert_region_view(name, region, options).body operation = service.get_region_view(data["resource"]["name"], nil, @region).body end if zone options = { "description" => description, "labels" => labels, "lastModified" => last_modified, "members" => members, "numMembers" => num_members } @zone = zone data = service.insert_zone_view(name, zone, options).body operation = service.get_zone_view(data["resource"]["name"], @zone).body end reload end