class Vultrlife::Server
Attributes
subid[R]
Public Class Methods
create!(config)
click to toggle source
# File lib/vultrlife/server.rb, line 21 def self.create!(config) self.validate_config(config) self.exec_create end
new(subid, account=nil, hash=nil)
click to toggle source
# File lib/vultrlife/server.rb, line 5 def initialize(subid, account=nil, hash=nil) @subid = subid @account = account self.merge!(hash) if hash end
show_servers(account)
click to toggle source
# File lib/vultrlife/server.rb, line 26 def self.show_servers(account) servers = Agent.server_list(account.api_key) servers = servers.map do |subid, attributes| self.new(subid, account, attributes) end end
Private Class Methods
exec_create()
click to toggle source
# File lib/vultrlife/server.rb, line 34 def self.exec_create subid_hash = Agent.server_create(@option) self.new(subid_hash['SUBID'].to_i) end
validate_config(config)
click to toggle source
# File lib/vultrlife/server.rb, line 39 def self.validate_config(config) plans = Agent.plans_list plans = plans.select{|key,value| config.plan == value['name'] } raise if not plans.size == 1 regions = Agent.regions_list regions = regions.select{|key,value| config.region.to_s == value['name'].downcase } raise if not regions.keys.size == 1 oss = Agent.os_list oss = oss.select{|key,value| config.os == value['name'] } raise if not oss.keys.size == 1 dcid = regions.keys.first available_plans = Agent.regions_availability(dcid).map(&:to_i) raise if not available_plans.include?(plans.keys.first.to_i) @option = { VPSPLANID: plans.keys.first.to_i, DCID: dcid.to_i, OSID: oss.keys.first.to_i, api_key: config.api_key, } if config.ipxe_chain_url @option[:ipxe_chain_url] = config.ipxe_chain_url end end
Public Instance Methods
destroy!()
click to toggle source
# File lib/vultrlife/server.rb, line 11 def destroy! Agent.server_destroy(SUBID: @subid, api_key: @account.api_key) self['destroyed'] = true @subid end
destroyed?()
click to toggle source
# File lib/vultrlife/server.rb, line 17 def destroyed? !!self['destroyed'] end