class MMS::CLI::MMS::CLI::MMS::CLI::Command
Attributes
agent[RW]
app_name[RW]
client[RW]
config[RW]
Public Class Methods
new(_invocation_path, _context = {}, _parent_attribute_values = {})
click to toggle source
# File lib/mms/cli.rb, line 51 def initialize(_invocation_path, _context = {}, _parent_attribute_values = {}) @config ||= MMS::Config.new end
Public Instance Methods
clusters()
click to toggle source
@return [Array<MMS::Resource::Cluster>]
# File lib/mms/cli.rb, line 83 def clusters id = ignore? ? nil : @config.default_cluster_id groups.collect! do |group| id.nil? ? group.clusters : group.cluster(id) end.flatten end
groups()
click to toggle source
@return [Array<MMS::Resource::Group>]
# File lib/mms/cli.rb, line 77 def groups id = ignore? ? nil : @config.default_group_id id.nil? ? agent.groups : [agent.find_group(id)] end
parse_user_home_config()
click to toggle source
# File lib/mms/cli.rb, line 55 def parse_user_home_config raise(MMS::ConfigError.new('Config file path is not set!')) if @config.config_path.nil? config_file = Pathname.new(@config.config_path) raise(MMS::ConfigError.new("Config file `#{config_file}` does not exist")) unless config_file.exist? config = ParseConfig.new(config_file) config.params.map do |key, value| begin @config.send("#{key}=", value) rescue Exception => _e raise MMS::ConfigError.new("Config option `#{key}` from file `#{config_file}` is not allowed!") end end end
print(heading, resource_list)
click to toggle source
@param [String] heading @param [Array<MMS::Resource>] resource_list
# File lib/mms/cli.rb, line 93 def print(heading, resource_list) json? ? print_json(resource_list) : print_human(heading, resource_list) end
print_human(heading, resource_list)
click to toggle source
@param [String] heading @param [Array<MMS::Resource>] resource_list
# File lib/mms/cli.rb, line 99 def print_human(heading, resource_list) rows = [] resource_list.first(@config.limit).each do |resource| rows += resource.table_section end puts Terminal::Table.new headings: (heading.nil? ? [] : heading), rows: rows print_tips unless ignore? end
print_json(resource_list)
click to toggle source
@param [Array<MMS::Resource>] resource_list
# File lib/mms/cli.rb, line 112 def print_json(resource_list) rows = [] resource_list.first(@config.limit).each do |resource| rows.push(resource.to_hash) end puts JSON.pretty_generate(rows) end
print_tips()
click to toggle source
# File lib/mms/cli.rb, line 122 def print_tips puts 'Default group: ' + @config.default_group_id unless @config.default_group_id.nil? puts 'Default cluster: ' + @config.default_cluster_id unless @config.default_cluster_id.nil? if !@config.default_group_id.nil? || !@config.default_cluster_id.nil? puts "Add flag --ignore or update --default-group-id, --default-cluster-id or update your `#{@config.config_path}` to see all resources" end end
run(arguments)
click to toggle source
@param [Array] arguments
Calls superclass method
# File lib/mms/cli.rb, line 132 def run(arguments) parse_user_home_config super rescue Clamp::HelpWanted => _e raise(help) rescue Clamp::UsageError => e raise([e.message, help].join("\n")) rescue MMS::AuthError => _e raise('Authorisation problem. Please check you credential!') rescue MMS::ResourceError => e raise(["Resource #{e.resource.class.name} problem:", e.message].join("\n")) end