class Fog::Compute::Linode::Server

Attributes

stack_script[R]

Public Class Methods

new(attributes={}) click to toggle source
Calls superclass method
# File lib/fog/linode/models/compute/server.rb, line 12
def initialize(attributes={})
  super
  self.username = 'root'
end

Public Instance Methods

boot() click to toggle source
# File lib/fog/linode/models/compute/server.rb, line 41
def boot
  service.linode_boot id, config
end
destroy() click to toggle source
# File lib/fog/linode/models/compute/server.rb, line 61
def destroy
  requires :identity
  service.linode_shutdown id
  disks.each { |disk| disk.destroy }
  wait_for { not disks? }
  service.linode_delete id
end
disks() click to toggle source
# File lib/fog/linode/models/compute/server.rb, line 25
def disks
  Fog::Compute::Linode::Disks.new :server => self, :service => service
end
disks?() click to toggle source
# File lib/fog/linode/models/compute/server.rb, line 29
def disks?
  not disks.empty?
end
ips() click to toggle source
# File lib/fog/linode/models/compute/server.rb, line 17
def ips
  Fog::Compute::Linode::Ips.new :server => self, :service => service
end
public_ip_address() click to toggle source
# File lib/fog/linode/models/compute/server.rb, line 21
def public_ip_address
  ips.find{|ip| ip.ip !~ /^192\.168\./}.ip
end
ready?() click to toggle source
# File lib/fog/linode/models/compute/server.rb, line 69
def ready?
  status == 1
end
reboot() click to toggle source
# File lib/fog/linode/models/compute/server.rb, line 33
def reboot
  service.linode_reboot id
end
save() click to toggle source
# File lib/fog/linode/models/compute/server.rb, line 45
def save
  raise Fog::Errors::Error.new('Resaving an existing object may create a duplicate') if persisted?
  @data_center, @flavor, @image, @kernel, @type, @payment_terms, @stack_script, @name, @password, @callback =
    attributes.values_at :data_center, :flavor, :image, :kernel, :type, :payment_terms, :stack_script, :name, :password, :callback

  create_linode
  @callback.call self if @callback
  create_disks
  create_config
  boot_linode
  self
rescue Exception => ex
  destroy if id
  raise ex
end
shutdown() click to toggle source
# File lib/fog/linode/models/compute/server.rb, line 37
def shutdown
  service.linode_shutdown id
end

Private Instance Methods

boot_linode() click to toggle source
# File lib/fog/linode/models/compute/server.rb, line 95
def boot_linode
  service.linode_boot id, @config
end
config() click to toggle source
# File lib/fog/linode/models/compute/server.rb, line 74
def config
  service.linode_config_list(id).body['DATA'].first['ConfigID']
end
create_config() click to toggle source
# File lib/fog/linode/models/compute/server.rb, line 91
def create_config
  @config = service.linode_config_create(id, @kernel.id, @name, "#{@disk.id},#{@swap.id},,,,,,,").body['DATA']['ConfigID']
end
create_disks() click to toggle source
# File lib/fog/linode/models/compute/server.rb, line 85
def create_disks
  @swap = disks.create :type => :swap, :name => @name, :size => 256
  @disk = disks.create(:type => @type, :image => @image, :stack_script => @stack_script,
                       :password => @password, :name => @name, :size => (@flavor.disk*1024)-256)
end
create_linode() click to toggle source
# File lib/fog/linode/models/compute/server.rb, line 78
def create_linode
  self.id = service.linode_create(@data_center.id, @flavor.id, @payment_terms).body['DATA']['LinodeID']
  service.linode_update id, :label => @name
  ips.create
  reload
end