Sha256: 17a5e6e2708099e4ca7e7cdcf320d1f7a5368e3e0536db5059949cb595146814

Contents?: true

Size: 1.58 KB

Versions: 5

Compression:

Stored size: 1.58 KB

Contents

require 'fog/core/model'

module Fog
  module Volume
    class SakuraCloud
      class Disk < Fog::Model
        identity :id, :aliases => 'ID'
        attribute :name, :aliases => 'Name'
        attribute :connection, :aliases => 'Connection'
        attribute :availability, :aliases => 'Availability'
        attribute :plan, :aliases => 'Plan'
        attribute :size_mb, :aliases => 'SizeMB'
        attribute :source_disk, :aliases => 'SourceDisk'
        attribute :source_archive, :aliases => 'SourceArchive'

        def delete
          service.delete_disk(identity)
          true
        end
        alias_method :destroy, :delete

        def save
          requires :name, :plan, :source_archive
          data = service.create_disk(@attributes[:name], @attributes[:plan], @attributes[:source_archive]).body["Disk"]
          merge_attributes(data)
          true
        end

        def configure(sshkey_id)
          requires :id
          service.configure_disk(@attributes[:id], sshkey_id )
          true
        end

        def associate_ip(ipaddress, networkmasklen, defaultroute)
          subnet ={
            :ipaddress => ipaddress,
            :networkmasklen => networkmasklen,
            :defaultroute => defaultroute
          }
          requires :id
          service.associate_ip_to_disk(@attributes[:id], subnet )
          true
        end

        def register_script(notes)
          note_ids = []
          note_ids << notes
          requires :id
          service.register_note_to_disk(@attributes[:id], note_ids.flatten )
          true
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
fog-sakuracloud-1.3.1 lib/fog/sakuracloud/models/volume/disk.rb
fog-sakuracloud-1.3.0 lib/fog/sakuracloud/models/volume/disk.rb
fog-sakuracloud-1.2.0 lib/fog/sakuracloud/models/volume/disk.rb
fog-sakuracloud-1.1.1 lib/fog/sakuracloud/models/volume/disk.rb
fog-sakuracloud-1.1.0 lib/fog/sakuracloud/models/volume/disk.rb