class Tengine::Resource::CLI::Credential

Public Instance Methods

add(name, *args) click to toggle source
# File lib/tengine/resource/cli/credential.rb, line 33
def add(name, *args)
  opts = merge_options(args, options)
  config_mongoid
  auth_type_key = !opts[:password].blank? ? :ssh_password :
    !opts[:private_key_file].blank? ? :ssh_public_key_file :
    (raise "password or private_key_file is required")
  auth_values = { username: opts[:username] }
  [:password, :private_key_file, :passphrase].each do |k|
    if v = opts[k]
      auth_values[k] = v
    end
  end
  credential = Tengine::Resource::Credential.create!({
      name: name,
      auth_type_key: auth_type_key,
      auth_values: auth_values
    })
  $stdout.puts "credential created successfully!: #{credential.to_json}"
end
list(*args) click to toggle source
# File lib/tengine/resource/cli/credential.rb, line 9
def list(*args)
  opts = merge_options(args, options)
  config_mongoid
  require 'text-table'
  res = [%w[name auth_values created_at updated_at]]
  sort_options = {(opts[:sort] || "name").to_sym => 1}
  sort_options[:name] = 1 # 同じ時刻などのソートキーが決まらない場合を想定して名前もソートキーに入れる
  Tengine::Resource::Credential.all.order_by(sort_options).each do |credential|
    res << [
      credential.name,
      credential.auth_values.to_json,
      credential.created_at.iso8601,
      credential.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/credential.rb, line 54
def remove(name)
  config_mongoid
  if credential = Tengine::Resource::Credential.where({name: name}).first
    credential.destroy
    $stdout.puts "credential was destroyed successfully!: #{name}"
  else
    raise Mongoid::Errors::DocumentNotFound, "credential \"#{name}\" not found"
  end
end