Class: MMS::CLI::Command
- Inherits:
-
Clamp::Command
- Object
- Clamp::Command
- MMS::CLI::Command
show all
- Defined in:
- lib/mms/cli.rb
Defined Under Namespace
Classes: Alerts, Clusters, Groups, Hosts, RestoreJobs, Snapshots
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(_invocation_path, _context = {}, _parent_attribute_values = {}) ⇒ Command
Returns a new instance of Command.
51
52
53
|
# File 'lib/mms/cli.rb', line 51
def initialize(_invocation_path, _context = {}, _parent_attribute_values = {})
@config ||= MMS::Config.new
end
|
Instance Attribute Details
71
72
73
|
# File 'lib/mms/cli.rb', line 71
def agent
@agent
end
|
#app_name ⇒ Object
Returns the value of attribute app_name.
7
8
9
|
# File 'lib/mms/cli.rb', line 7
def app_name
@app_name
end
|
#client ⇒ Object
Returns the value of attribute client.
10
11
12
|
# File 'lib/mms/cli.rb', line 10
def client
@client
end
|
#config ⇒ Object
Returns the value of attribute config.
8
9
10
|
# File 'lib/mms/cli.rb', line 8
def config
@config
end
|
Instance Method Details
83
84
85
86
87
88
89
|
# 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
|
77
78
79
80
|
# 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 ⇒ Object
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
# 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) ⇒ Object
93
94
95
|
# 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) ⇒ Object
99
100
101
102
103
104
105
106
107
108
109
|
# 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) ⇒ Object
112
113
114
115
116
117
118
119
120
|
# 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 ⇒ Object
122
123
124
125
126
127
128
129
|
# 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) ⇒ Object
132
133
134
135
136
137
138
139
140
141
142
143
|
# 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
|