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