Sha256: 0a0e82905139928aa8f55e8fcfdf2e33af9a357bac073640218ad1740a55ce45

Contents?: true

Size: 995 Bytes

Versions: 9

Compression:

Stored size: 995 Bytes

Contents

require 'fog/core/collection'
require 'fog/qingcloud/models/compute/image'

module Fog
  module Compute
    class QingCloud

      class Images < Fog::Collection

        attribute :filters

        model Fog::Compute::QingCloud::Image

        ACTIVE_STATUS = %w[pending available deprecated suspended]

        # Creates a new  machine image
        #
        # QingCloud.images.new
        #
        # ==== Returns
        #
        # Returns the details of the new image

        def initialize(attributes)
          self.filters ||= {}
          filters['status'] = ACTIVE_STATUS unless filters['status']
          super
        end

        def all(filters = filters)
          self.filters = filters
          data = service.describe_images(filters).body
          load(data['images_set'])
        end

        def get(image_id)
          if image_id
            self.class.new(:service => service).all('image-id' => image_id).first
          end
        end
      end

    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
ns-fog-1.22.11 lib/fog/qingcloud/models/compute/images.rb
ns-fog-1.22.10 lib/fog/qingcloud/models/compute/images.rb
ns-fog-1.22.9 lib/fog/qingcloud/models/compute/images.rb
ns-fog-1.22.8 lib/fog/qingcloud/models/compute/images.rb
ns-fog-1.22.7 lib/fog/qingcloud/models/compute/images.rb
ns-fog-1.22.6 lib/fog/qingcloud/models/compute/images.rb
ns-fog-1.22.4 lib/fog/qingcloud/models/compute/images.rb
ns-fog-1.22.3 lib/fog/qingcloud/models/compute/images.rb
ns-fog-1.22.2 lib/fog/qingcloud/models/compute/images.rb