Sha256: 9bc20e753adafdad7f18e29769e7f61639d9b69668258231a6b1becf6e9a7d06

Contents?: true

Size: 1.84 KB

Versions: 10

Compression:

Stored size: 1.84 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
          options = {
            :source_archive => source_archive,
            :size_mb => size_mb
          } 
          data = service.create_disk(name, plan, options).body["Disk"]
          merge_attributes(data)
          true
        end

        def configure(sshkey_id)
          requires :id
          service.configure_disk(id, sshkey_id )
          true
        end

        def carve_hostname_on_disk(hostname)
          requires :id
          service.carve_hostname_on_disk(id, hostname )
          true
        end

        def attach(server_id)
          service.attach_disk(id, server_id)
          true
        end

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

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

Version data entries

10 entries across 8 versions & 2 rubygems

Version Path
vagrant-packet-0.1.1 vendor/bundle/ruby/2.5.0/gems/fog-sakuracloud-1.7.5/lib/fog/sakuracloud/models/volume/disk.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.4.0/gems/fog-sakuracloud-1.7.5/lib/fog/sakuracloud/models/volume/disk.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.3.0/gems/fog-sakuracloud-1.7.5/lib/fog/sakuracloud/models/volume/disk.rb
fog-sakuracloud-1.7.5 lib/fog/sakuracloud/models/volume/disk.rb
fog-sakuracloud-1.7.4 lib/fog/sakuracloud/models/volume/disk.rb
fog-sakuracloud-1.7.3 lib/fog/sakuracloud/models/volume/disk.rb
fog-sakuracloud-1.7.2 lib/fog/sakuracloud/models/volume/disk.rb
fog-sakuracloud-1.7.1 lib/fog/sakuracloud/models/volume/disk.rb
fog-sakuracloud-1.7.0 lib/fog/sakuracloud/models/volume/disk.rb
fog-sakuracloud-1.6.0 lib/fog/sakuracloud/models/volume/disk.rb