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