Sha256: aedc77aa4fd79fe69f687821fa4e8f323fe3891b0dd4b49a318ee803ab71d815

Contents?: true

Size: 922 Bytes

Versions: 5

Compression:

Stored size: 922 Bytes

Contents

require 'yao/resources/metadata_available'
module Yao::Resources
  class Image < Base
    friendly_attributes :name, :status, :progress, :metadata
    map_attribute_to_attribute minDisk: :min_disk
    map_attribute_to_attribute minRam: :min_ram

    def size(unit=nil)
      size = self["OS-EXT-IMG-SIZE:size"]
      case unit
      when 'K'
        size / 1024.0
      when 'M'
        size / 1024.0 / 1024.0
      when 'G'
        size / 1024.0 / 1024.0 / 1024.0
      else
        size
      end
    end

    self.service        = "image"
    self.api_version    = "v2"
    self.resource_name  = "image"
    self.resources_name = "images"

    extend MetadataAvailable

    class << self
      private

      # override Yao::Resources::RestfullyAccessible.resource_from_json
      # @param json [Hash]
      # @return [Yao::Resources::*]
      def resource_from_json(json)
        new(json)
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
yao-0.13.4 lib/yao/resources/image.rb
yao-0.13.3 lib/yao/resources/image.rb
yao-0.13.2 lib/yao/resources/image.rb
yao-0.13.1 lib/yao/resources/image.rb
yao-0.13.0 lib/yao/resources/image.rb