class Fog::Compute::Google::ResourceView

Constants

RUNNING_STATE

Public Instance Methods

add_resources(resources) click to toggle source
# File lib/fog/google/models/compute/resource_view.rb, line 77
def add_resources resources
  resources = [resources] unless resources.class == Array
  resources.map { |resource| resource.class == String ? resource : resource.self_link } 
  if @zone then
    service.add_zone_view_resources(self, resources, @zone)
  end
  if @region then
    service.add_region_view_resources(self, reources, @region)
  end
  reload
end
destroy(async=false) click to toggle source
# File lib/fog/google/models/compute/resource_view.rb, line 55
        def destroy(async=false)
          requires :name
# parse the self link to get the zone or region
          selflink = self.self_link.split('/')
          if selflink[7]=='regions' then
            operation = service.delete_region_view(name, selflink[8])
          end
        
          if selflink[7]== 'zones' then
            operation= service.delete_zone_view(name, selflink[8])
          end

          if not 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/google/models/compute/resource_view.rb, line 89
def ready?
  begin
    if @zone then service.get_zone_view(self.name, @zone) end
    if @region then service.get_region_view(self.name, @region) end
    true
  rescue Fog::Errors::NotFound
    false
  end
end
reload() click to toggle source
# File lib/fog/google/models/compute/resource_view.rb, line 99
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/google/models/compute/resource_view.rb, line 22
def save
  requires :name
  labels ||= []
  members ||= []

  if region then
    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 then
    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