Sha256: b6d47057aec978906e66098eb5505f7874a03bc57fd872ee5aac759901c924ac

Contents?: true

Size: 1.09 KB

Versions: 5

Compression:

Stored size: 1.09 KB

Contents

require 'fog/core/model'

module Fog
  module Compute
    class Google

      class Image < Fog::Model

        identity :name

        attribute :kind
        attribute :creation_timestamp, :aliases => 'creationTimestamp'
        attribute :description
        attribute :preferred_kernel, :aliases => 'preferredKernel'
        attribute :project

        def reload
          requires :name

          data = {}

          # Try looking for the image in known projects
          [
            self.service.project,
            'google',
            'debian-cloud',
            'centos-cloud',
          ].each do |owner|
            begin
              data = service.get_image(name, owner).body
              data[:project] = owner
            rescue
            end
          end

          raise ArgumentError, 'Specified image was not found' if data.empty?

          self.merge_attributes(data)
          self
        end

        def save
          requires :name

          reload
        end

        def resource_url
          "#{self.project}/global/images/#{name}"
        end

      end
    end
  end
end

Version data entries

5 entries across 5 versions & 3 rubygems

Version Path
gapinc-fog-1.12.1.2.1 lib/fog/google/models/compute/image.rb
fog-maestrodev-1.14.0.20130806165225 lib/fog/google/models/compute/image.rb
fog-1.14.0 lib/fog/google/models/compute/image.rb
fog-1.13.0 lib/fog/google/models/compute/image.rb
gapinc-fog-1.12.1.2 lib/fog/google/models/compute/image.rb