Sha256: a87453fe809eae50630cc20d668ed1179f8436c590b89331a78eca023f8f9393

Contents?: true

Size: 1.37 KB

Versions: 2

Compression:

Stored size: 1.37 KB

Contents

# coding: utf-8
#
# Author:: Alessio Rocchi (<alessio.rocchi@staff.aruba.it>)
# © Copyright ArubaCloud.
#
# LICENSE: MIT (http://opensource.org/licenses/MIT)
#

require 'fog/core/model'
require 'fog/arubacloud/error'

module Fog
  module ArubaCloud
    class Compute
      class Disk < Fog::Model
        attribute :size
        attribute :virtual_disk_type

        # Fake create method, it returns only an hash representing the json scheme of a disk
        # @return [Hash] hash object representing the disk
        # @raise [Fog::ArubaCloud::Errors::BadDiskSize]
        # @raise [Fog::ArubaCloud::Errors::BadDiskNumber]
        def create
          requires :size, :virtual_disk_type

          raise Fog::ArubaCloud::Errors::BadDiskSize.new('Maximum disk size: 500GB') unless
              size <= 500 # maximum disk size: 500GB
          raise Fog::ArubaCloud::Errors::BadDiskNumber.new('Only 4 disks are supported per VM') unless
              virtual_disk_type < 3 # only 4 disks are supported per VM
        end

        def save
          create
        end

        # Return an hash representation of the object in order to be used in json request
        def get_hash
          requires :size, :virtual_disk_type
          {
              :Size => size,
              :VirtualDiskType => virtual_disk_type
          }
        end

      end #Disk
    end # Compute
  end # ArubaCloud
end #Fog

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
fog-arubacloud-0.0.6 lib/fog/arubacloud/compute/models/disk.rb
fog-arubacloud-0.0.5 lib/fog/arubacloud/compute/models/disk.rb