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