class Tengine::Resource::CLI::Server

Public Instance Methods

add(name, *args) click to toggle source

def add(name, options = {})

# File lib/tengine/resource/cli/server.rb, line 36
def add(name, *args)
  opts = merge_options(args, options)
  config_mongoid
  Tengine::Resource::Provider.manual.tap do |provider|
    server = provider.physical_servers.create!({
        name: name,
        provided_id: name,
        addresses: opts[:addresses] || {},
        properties: opts[:properties] || {}
      })
    $stdout.puts "server created successfully!: #{server.to_json}"
  end
end
list(*args) click to toggle source
# File lib/tengine/resource/cli/server.rb, line 10
def list(*args)
  opts = merge_options(args, options)
  config_mongoid
  require 'text-table'
  res = [%w[provider virtual? name status addresses created_at updated_at]]
  sort_options = {(opts[:sort] || "name").to_sym => 1}
  sort_options[:name] = 1 # 同じ時刻などのソートキーが決まらない場合を想定して名前もソートキーに入れる
  Tengine::Resource::Server.all.order_by(sort_options).each do |server|
    res << [
      server.provider ? server.provider.name : "-",
      server.is_a?(Tengine::Resource::VirtualServer) ? "virtual" : "physical",
      server.name,
      server.status,
      server.addresses.to_json,
      server.created_at.iso8601,
      server.updated_at.iso8601,
    ]
  end
  $stdout.puts res.to_table(:first_row_is_head => true)
  res
end
remove(name) click to toggle source
# File lib/tengine/resource/cli/server.rb, line 51
def remove(name)
  config_mongoid
  Tengine::Resource::Provider.manual.tap do |provider|
    if server = provider.physical_servers.where({name: name}).first
      server.destroy
      $stdout.puts "server was destroyed successfully!: #{name}"
    else
      raise "server \"#{name}\" not found under provider \"#{provider.name}\""
    end
  end
end