morpheus-cli 2.10.3 → 2.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/morpheus +5 -96
- data/lib/morpheus/api/api_client.rb +23 -1
- data/lib/morpheus/api/checks_interface.rb +106 -0
- data/lib/morpheus/api/incidents_interface.rb +102 -0
- data/lib/morpheus/api/monitoring_apps_interface.rb +47 -0
- data/lib/morpheus/api/monitoring_contacts_interface.rb +47 -0
- data/lib/morpheus/api/monitoring_groups_interface.rb +47 -0
- data/lib/morpheus/api/monitoring_interface.rb +36 -0
- data/lib/morpheus/api/option_type_lists_interface.rb +47 -0
- data/lib/morpheus/api/option_types_interface.rb +47 -0
- data/lib/morpheus/api/roles_interface.rb +0 -1
- data/lib/morpheus/api/setup_interface.rb +19 -9
- data/lib/morpheus/cli.rb +20 -1
- data/lib/morpheus/cli/accounts.rb +8 -3
- data/lib/morpheus/cli/app_templates.rb +19 -11
- data/lib/morpheus/cli/apps.rb +52 -37
- data/lib/morpheus/cli/cli_command.rb +229 -53
- data/lib/morpheus/cli/cli_registry.rb +48 -40
- data/lib/morpheus/cli/clouds.rb +55 -26
- data/lib/morpheus/cli/command_error.rb +12 -0
- data/lib/morpheus/cli/credentials.rb +68 -26
- data/lib/morpheus/cli/curl_command.rb +98 -0
- data/lib/morpheus/cli/dashboard_command.rb +2 -7
- data/lib/morpheus/cli/deployments.rb +4 -4
- data/lib/morpheus/cli/deploys.rb +1 -2
- data/lib/morpheus/cli/dot_file.rb +5 -8
- data/lib/morpheus/cli/error_handler.rb +179 -15
- data/lib/morpheus/cli/groups.rb +21 -13
- data/lib/morpheus/cli/hosts.rb +220 -110
- data/lib/morpheus/cli/instance_types.rb +2 -2
- data/lib/morpheus/cli/instances.rb +257 -167
- data/lib/morpheus/cli/key_pairs.rb +15 -9
- data/lib/morpheus/cli/library.rb +673 -27
- data/lib/morpheus/cli/license.rb +2 -2
- data/lib/morpheus/cli/load_balancers.rb +4 -4
- data/lib/morpheus/cli/log_level_command.rb +6 -4
- data/lib/morpheus/cli/login.rb +17 -3
- data/lib/morpheus/cli/logout.rb +25 -11
- data/lib/morpheus/cli/man_command.rb +388 -0
- data/lib/morpheus/cli/mixins/accounts_helper.rb +1 -1
- data/lib/morpheus/cli/mixins/monitoring_helper.rb +434 -0
- data/lib/morpheus/cli/mixins/print_helper.rb +620 -112
- data/lib/morpheus/cli/mixins/provisioning_helper.rb +1 -1
- data/lib/morpheus/cli/monitoring_apps_command.rb +29 -0
- data/lib/morpheus/cli/monitoring_checks_command.rb +427 -0
- data/lib/morpheus/cli/monitoring_contacts_command.rb +373 -0
- data/lib/morpheus/cli/monitoring_groups_command.rb +29 -0
- data/lib/morpheus/cli/monitoring_incidents_command.rb +711 -0
- data/lib/morpheus/cli/option_types.rb +10 -1
- data/lib/morpheus/cli/recent_activity_command.rb +2 -5
- data/lib/morpheus/cli/remote.rb +874 -134
- data/lib/morpheus/cli/roles.rb +54 -27
- data/lib/morpheus/cli/security_group_rules.rb +2 -2
- data/lib/morpheus/cli/security_groups.rb +23 -19
- data/lib/morpheus/cli/set_prompt_command.rb +50 -0
- data/lib/morpheus/cli/shell.rb +222 -157
- data/lib/morpheus/cli/tasks.rb +19 -15
- data/lib/morpheus/cli/users.rb +27 -17
- data/lib/morpheus/cli/version.rb +1 -1
- data/lib/morpheus/cli/virtual_images.rb +28 -13
- data/lib/morpheus/cli/whoami.rb +131 -52
- data/lib/morpheus/cli/workflows.rb +24 -9
- data/lib/morpheus/formatters.rb +195 -3
- data/lib/morpheus/logging.rb +86 -0
- data/lib/morpheus/terminal.rb +371 -0
- data/scripts/generate_morpheus_commands_help.morpheus +60 -0
- metadata +21 -2
@@ -275,7 +275,7 @@ module Morpheus::Cli::ProvisioningHelper
|
|
275
275
|
payload['networkInterfaces'] = network_interfaces
|
276
276
|
end
|
277
277
|
rescue RestClient::Exception => e
|
278
|
-
|
278
|
+
print yellow,"Unable to load network options. Proceeding...",reset,"\n"
|
279
279
|
print_rest_exception(e, options) if Morpheus::Logging.debug?
|
280
280
|
end
|
281
281
|
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'morpheus/cli/cli_command'
|
2
|
+
require 'morpheus/cli/mixins/monitoring_helper'
|
3
|
+
|
4
|
+
class Morpheus::Cli::MonitoringAppsCommand
|
5
|
+
include Morpheus::Cli::CliCommand
|
6
|
+
include Morpheus::Cli::MonitoringHelper
|
7
|
+
|
8
|
+
set_command_name :'check-apps'
|
9
|
+
register_subcommands :list, :get, :add, :update, :remove, :quarantine, :history, :statistics
|
10
|
+
set_default_subcommand :list
|
11
|
+
|
12
|
+
set_command_hidden # remove me when implemented
|
13
|
+
|
14
|
+
def initialize()
|
15
|
+
# @appliance_name, @appliance_url = Morpheus::Cli::Remote.active_appliance
|
16
|
+
end
|
17
|
+
|
18
|
+
def connect(opts)
|
19
|
+
@api_client = establish_remote_appliance_connection(opts)
|
20
|
+
@monitoring_interface = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url).monitoring
|
21
|
+
end
|
22
|
+
|
23
|
+
def handle(args)
|
24
|
+
handle_subcommand(args)
|
25
|
+
end
|
26
|
+
|
27
|
+
# todo: API updates and subcommands
|
28
|
+
|
29
|
+
end
|
@@ -0,0 +1,427 @@
|
|
1
|
+
require 'morpheus/cli/cli_command'
|
2
|
+
require 'morpheus/cli/mixins/monitoring_helper'
|
3
|
+
|
4
|
+
class Morpheus::Cli::MonitoringChecksCommand
|
5
|
+
include Morpheus::Cli::CliCommand
|
6
|
+
include Morpheus::Cli::MonitoringHelper
|
7
|
+
|
8
|
+
set_command_name :checks # :'monitoring-checks'
|
9
|
+
register_subcommands :list, :get, :update, :remove, :quarantine, :history #, :statistics
|
10
|
+
set_default_subcommand :list
|
11
|
+
|
12
|
+
def initialize()
|
13
|
+
# @appliance_name, @appliance_url = Morpheus::Cli::Remote.active_appliance
|
14
|
+
end
|
15
|
+
|
16
|
+
def connect(opts)
|
17
|
+
@api_client = establish_remote_appliance_connection(opts)
|
18
|
+
@monitoring_interface = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url).monitoring
|
19
|
+
end
|
20
|
+
|
21
|
+
def handle(args)
|
22
|
+
handle_subcommand(args)
|
23
|
+
end
|
24
|
+
|
25
|
+
def list(args)
|
26
|
+
options = {}
|
27
|
+
params = {}
|
28
|
+
optparse = OptionParser.new do|opts|
|
29
|
+
opts.banner = subcommand_usage()
|
30
|
+
opts.on('--status LIST', Array, "Filter by status. open, closed") do |list|
|
31
|
+
params['status'] = list
|
32
|
+
end
|
33
|
+
opts.on('--severity LIST', Array, "Filter by severity. critical, warning, info") do |list|
|
34
|
+
params['severity'] = list
|
35
|
+
end
|
36
|
+
build_common_options(opts, options, [:list, :last_updated, :json, :csv, :fields, :json, :dry_run])
|
37
|
+
end
|
38
|
+
optparse.parse!(args)
|
39
|
+
connect(options)
|
40
|
+
begin
|
41
|
+
[:phrase, :offset, :max, :sort, :direction, :lastUpdated].each do |k|
|
42
|
+
params[k] = options[k] unless options[k].nil?
|
43
|
+
end
|
44
|
+
# JD: lastUpdated 500ing, checks don't have that property ? =o Fix it!
|
45
|
+
|
46
|
+
if options[:dry_run]
|
47
|
+
print_dry_run @monitoring_interface.checks.dry.list(params)
|
48
|
+
return
|
49
|
+
end
|
50
|
+
|
51
|
+
json_response = @monitoring_interface.checks.list(params)
|
52
|
+
if options[:json]
|
53
|
+
if options[:include_fields]
|
54
|
+
json_response = {"checks" => filter_data(json_response["checks"], options[:include_fields]) }
|
55
|
+
end
|
56
|
+
puts as_json(json_response, options)
|
57
|
+
return 0
|
58
|
+
end
|
59
|
+
if options[:csv]
|
60
|
+
puts records_as_csv(json_response['checks'], options)
|
61
|
+
return 0
|
62
|
+
end
|
63
|
+
checks = json_response['checks']
|
64
|
+
title = "Morpheus Checks"
|
65
|
+
subtitles = []
|
66
|
+
# if group
|
67
|
+
# subtitles << "Group: #{group['name']}".strip
|
68
|
+
# end
|
69
|
+
# if cloud
|
70
|
+
# subtitles << "Cloud: #{cloud['name']}".strip
|
71
|
+
# end
|
72
|
+
if params[:phrase]
|
73
|
+
subtitles << "Search: #{params[:phrase]}".strip
|
74
|
+
end
|
75
|
+
print_h1 title, subtitles
|
76
|
+
if checks.empty?
|
77
|
+
print cyan,"No checks found.",reset,"\n"
|
78
|
+
else
|
79
|
+
print_checks_table(checks, options)
|
80
|
+
print_results_pagination(json_response, {:label => "check", :n_label => "checks"})
|
81
|
+
end
|
82
|
+
print reset,"\n"
|
83
|
+
rescue RestClient::Exception => e
|
84
|
+
print_rest_exception(e, options)
|
85
|
+
exit 1
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
def get(args)
|
90
|
+
options = {}
|
91
|
+
optparse = OptionParser.new do|opts|
|
92
|
+
opts.banner = subcommand_usage("[id list]")
|
93
|
+
opts.on(nil,'--history', "Display Check History") do |val|
|
94
|
+
options[:show_history] = true
|
95
|
+
end
|
96
|
+
# opts.on(nil,'--statistics', "Display Statistics") do |val|
|
97
|
+
# options[:show_statistics] = true
|
98
|
+
# end
|
99
|
+
build_common_options(opts, options, [:json, :csv, :fields, :dry_run, :remote])
|
100
|
+
end
|
101
|
+
optparse.parse!(args)
|
102
|
+
if args.count < 1
|
103
|
+
puts optparse
|
104
|
+
exit 1
|
105
|
+
end
|
106
|
+
connect(options)
|
107
|
+
id_list = parse_id_list(args)
|
108
|
+
return run_command_for_each_arg(id_list) do |arg|
|
109
|
+
_get(arg, options)
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
def _get(id, options)
|
114
|
+
|
115
|
+
begin
|
116
|
+
check = find_check_by_name_or_id(id)
|
117
|
+
|
118
|
+
if options[:dry_run]
|
119
|
+
print_dry_run @monitoring_interface.checks.dry.get(check['id'])
|
120
|
+
return
|
121
|
+
end
|
122
|
+
json_response = @monitoring_interface.checks.get(check['id'])
|
123
|
+
check = json_response['check']
|
124
|
+
|
125
|
+
if options[:json]
|
126
|
+
if options[:include_fields]
|
127
|
+
json_response = {"check" => filter_data(json_response["check"], options[:include_fields]) }
|
128
|
+
end
|
129
|
+
puts as_json(json_response, options)
|
130
|
+
return 0
|
131
|
+
elsif options[:csv]
|
132
|
+
puts records_as_csv([json_response['check']], options)
|
133
|
+
return 0
|
134
|
+
end
|
135
|
+
|
136
|
+
print_h1 "Check Details"
|
137
|
+
print cyan
|
138
|
+
description_cols = {
|
139
|
+
"ID" => lambda {|it| it['id'] },
|
140
|
+
"Status" => lambda {|it| format_monitoring_check_status(it) },
|
141
|
+
"Name" => lambda {|it| it['name'] },
|
142
|
+
"Time" => lambda {|it| format_local_dt(it['lastRunDate']) },
|
143
|
+
"Availability" => lambda {|it| it['availability'] ? "#{it['availability'].to_f.round(3).to_s}%" : "N/A"},
|
144
|
+
"Response Time" => lambda {|it| it['lastTimer'] ? "#{it['lastTimer']}ms" : "N/A" },
|
145
|
+
"Last Metric" => lambda {|it| it['lastMetric'] ? "#{it['lastMetric']}" : "N/A" },
|
146
|
+
"Type" => 'checkType.name'
|
147
|
+
}
|
148
|
+
print_description_list(description_cols, check)
|
149
|
+
|
150
|
+
## Chart Stats
|
151
|
+
|
152
|
+
|
153
|
+
## Activity
|
154
|
+
|
155
|
+
## Groups
|
156
|
+
|
157
|
+
check_groups = json_response["groups"]
|
158
|
+
if check_groups && !check_groups.empty?
|
159
|
+
print_h2 "Check Groups"
|
160
|
+
print as_pretty_table(check_groups, [:id, {"Check Group" => :name}], options)
|
161
|
+
else
|
162
|
+
# print "\n"
|
163
|
+
# puts "This check is not in any check groups."
|
164
|
+
end
|
165
|
+
|
166
|
+
## Open Incidents
|
167
|
+
|
168
|
+
open_incidents = json_response["openIncidents"]
|
169
|
+
if open_incidents && !open_incidents.empty?
|
170
|
+
print_h2 "Open Incidents"
|
171
|
+
# puts "\n(table coming soon...)\n"
|
172
|
+
puts print JSON.pretty_generate(open_incidents)
|
173
|
+
# todo: move this to MonitoringHelper ?
|
174
|
+
# print_incidents_table(issues, options)
|
175
|
+
else
|
176
|
+
print "\n"
|
177
|
+
puts "No open incidents for this check"
|
178
|
+
end
|
179
|
+
|
180
|
+
## History (plain old Hash)
|
181
|
+
if options[:show_history]
|
182
|
+
# history_items = json_response["history"]
|
183
|
+
# gotta go get it
|
184
|
+
history_json_response = @monitoring_interface.checks.history(check["id"], {})
|
185
|
+
history_items = history_json_response["history"] || history_json_response["events"] || history_json_response["issues"]
|
186
|
+
issues = history_items
|
187
|
+
if history_items && !history_items.empty?
|
188
|
+
print_h2 "History"
|
189
|
+
print_check_history_table(history_items, options)
|
190
|
+
print_results_pagination(history_json_response, {:label => "event", :n_label => "events"})
|
191
|
+
else
|
192
|
+
print "\n"
|
193
|
+
puts "No history found for this check"
|
194
|
+
end
|
195
|
+
end
|
196
|
+
|
197
|
+
## Statistics (Hash)
|
198
|
+
if options[:show_statistics]
|
199
|
+
# todo....
|
200
|
+
end
|
201
|
+
|
202
|
+
print reset,"\n"
|
203
|
+
|
204
|
+
rescue RestClient::Exception => e
|
205
|
+
print_rest_exception(e, options)
|
206
|
+
exit 1
|
207
|
+
end
|
208
|
+
end
|
209
|
+
|
210
|
+
def history(args)
|
211
|
+
options = {}
|
212
|
+
params = {}
|
213
|
+
optparse = OptionParser.new do|opts|
|
214
|
+
opts.banner = subcommand_usage("[id] [options]")
|
215
|
+
# opts.on('--status LIST', Array, "Filter by status. open, closed") do |list|
|
216
|
+
# params['status'] = list
|
217
|
+
# end
|
218
|
+
opts.on('--severity LIST', Array, "Filter by severity. critical, warning, info") do |list|
|
219
|
+
params['severity'] = list
|
220
|
+
end
|
221
|
+
build_common_options(opts, options, [:list, :last_updated, :json, :csv, :fields, :json, :dry_run])
|
222
|
+
end
|
223
|
+
optparse.parse!(args)
|
224
|
+
if args.count < 1
|
225
|
+
puts optparse
|
226
|
+
exit 1
|
227
|
+
end
|
228
|
+
connect(options)
|
229
|
+
begin
|
230
|
+
check = find_check_by_name_or_id(args[0])
|
231
|
+
# return false if check.nil?
|
232
|
+
|
233
|
+
[:phrase, :offset, :max, :sort, :direction, :lastUpdated].each do |k|
|
234
|
+
params[k] = options[k] unless options[k].nil?
|
235
|
+
end
|
236
|
+
# JD: lastUpdated 500ing, checks don't have that property ? =o Fix it!
|
237
|
+
|
238
|
+
if options[:dry_run]
|
239
|
+
print_dry_run @monitoring_interface.checks.dry.history(check['id'], params)
|
240
|
+
return
|
241
|
+
end
|
242
|
+
|
243
|
+
json_response = @monitoring_interface.checks.history(check['id'], params)
|
244
|
+
if options[:json]
|
245
|
+
if options[:include_fields]
|
246
|
+
json_response = {"history" => filter_data(json_response["history"], options[:include_fields]) }
|
247
|
+
end
|
248
|
+
puts as_json(json_response, options)
|
249
|
+
return 0
|
250
|
+
end
|
251
|
+
if options[:csv]
|
252
|
+
puts records_as_csv(json_response['history'], options)
|
253
|
+
return 0
|
254
|
+
end
|
255
|
+
history_items = json_response['history']
|
256
|
+
title = "Check History: #{check['id']}: #{check['displayName'] || check['name']}"
|
257
|
+
subtitles = []
|
258
|
+
if params[:phrase]
|
259
|
+
subtitles << "Search: #{params[:phrase]}".strip
|
260
|
+
end
|
261
|
+
print_h1 title, subtitles
|
262
|
+
if history_items.empty?
|
263
|
+
print cyan,"No history found.",reset,"\n"
|
264
|
+
else
|
265
|
+
print_check_history_table(history_items, options)
|
266
|
+
print_results_pagination(json_response, {:label => "event", :n_label => "events"})
|
267
|
+
end
|
268
|
+
print reset,"\n"
|
269
|
+
rescue RestClient::Exception => e
|
270
|
+
print_rest_exception(e, options)
|
271
|
+
exit 1
|
272
|
+
end
|
273
|
+
end
|
274
|
+
|
275
|
+
def update(args)
|
276
|
+
options = {}
|
277
|
+
params = {}
|
278
|
+
optparse = OptionParser.new do|opts|
|
279
|
+
opts.banner = subcommand_usage("[id]")
|
280
|
+
build_common_options(opts, options, [:json, :dry_run, :quiet])
|
281
|
+
end
|
282
|
+
optparse.parse!(args)
|
283
|
+
if args.count < 1
|
284
|
+
puts optparse
|
285
|
+
exit 1
|
286
|
+
end
|
287
|
+
connect(options)
|
288
|
+
|
289
|
+
begin
|
290
|
+
check = find_check_by_name_or_id(args[0])
|
291
|
+
|
292
|
+
if params.empty?
|
293
|
+
print_red_alert "Specify atleast one option to update"
|
294
|
+
puts optparse
|
295
|
+
exit 1
|
296
|
+
end
|
297
|
+
|
298
|
+
payload = {
|
299
|
+
'check' => {id: check["id"]}
|
300
|
+
}
|
301
|
+
payload['check'].merge!(params)
|
302
|
+
|
303
|
+
if options[:dry_run]
|
304
|
+
print_dry_run @monitoring_interface.checks.dry.update(check["id"], payload)
|
305
|
+
return
|
306
|
+
end
|
307
|
+
|
308
|
+
json_response = @monitoring_interface.checks.update(check["id"], payload)
|
309
|
+
if options[:json]
|
310
|
+
puts as_json(json_response, options)
|
311
|
+
elsif !options[:quiet]
|
312
|
+
print_green_success "Updated check #{check['id']}"
|
313
|
+
_get(check['id'], {})
|
314
|
+
end
|
315
|
+
|
316
|
+
rescue RestClient::Exception => e
|
317
|
+
print_rest_exception(e, options)
|
318
|
+
exit 1
|
319
|
+
end
|
320
|
+
end
|
321
|
+
|
322
|
+
|
323
|
+
def quarantine(args)
|
324
|
+
options = {}
|
325
|
+
params = {'enabled' => true}
|
326
|
+
optparse = OptionParser.new do|opts|
|
327
|
+
opts.banner = subcommand_usage("[id list]")
|
328
|
+
# this one is a bit weird.. it's a way to toggle incident.inUptime
|
329
|
+
# opts.on("--enabled BOOL", String, "Quarantine can be removed with --enabled false") do |val|
|
330
|
+
# params['enabled'] = ['on','true'].include?(val.to_s.downcase)
|
331
|
+
# end
|
332
|
+
opts.on("-d", "--disabled", "Disable Quarantine instead") do
|
333
|
+
params['enabled'] = false
|
334
|
+
end
|
335
|
+
build_common_options(opts, options, [:json, :dry_run, :quiet])
|
336
|
+
end
|
337
|
+
optparse.parse!(args)
|
338
|
+
if args.count < 1
|
339
|
+
puts optparse
|
340
|
+
exit 1
|
341
|
+
end
|
342
|
+
connect(options)
|
343
|
+
|
344
|
+
begin
|
345
|
+
check = find_check_by_name_or_id(args[0])
|
346
|
+
|
347
|
+
if params.empty?
|
348
|
+
print_red_alert "Specify atleast one option to update"
|
349
|
+
puts optparse
|
350
|
+
exit 1
|
351
|
+
end
|
352
|
+
|
353
|
+
# payload = {
|
354
|
+
# 'check' => {id: check["id"]}
|
355
|
+
# }
|
356
|
+
# payload['check'].merge!(check)
|
357
|
+
payload = params
|
358
|
+
|
359
|
+
if options[:dry_run]
|
360
|
+
print_dry_run @monitoring_interface.checks.dry.update(check["id"], payload)
|
361
|
+
return
|
362
|
+
end
|
363
|
+
|
364
|
+
json_response = @monitoring_interface.checks.update(check["id"], payload)
|
365
|
+
if options[:json]
|
366
|
+
puts as_json(json_response, options)
|
367
|
+
elsif !options[:quiet]
|
368
|
+
print_green_success "Quarantined check #{check['id']}"
|
369
|
+
_get(check['id'], {})
|
370
|
+
end
|
371
|
+
|
372
|
+
rescue RestClient::Exception => e
|
373
|
+
print_rest_exception(e, options)
|
374
|
+
exit 1
|
375
|
+
end
|
376
|
+
end
|
377
|
+
|
378
|
+
def remove(args)
|
379
|
+
options = {}
|
380
|
+
optparse = OptionParser.new do|opts|
|
381
|
+
opts.banner = subcommand_usage("[id]")
|
382
|
+
build_common_options(opts, options, [:json, :dry_run, :quiet])
|
383
|
+
end
|
384
|
+
optparse.parse!(args)
|
385
|
+
if args.count < 1
|
386
|
+
puts optparse
|
387
|
+
return 127
|
388
|
+
end
|
389
|
+
connect(options)
|
390
|
+
|
391
|
+
begin
|
392
|
+
check = find_check_by_name_or_id(args[0])
|
393
|
+
|
394
|
+
unless options[:yes] || ::Morpheus::Cli::OptionTypes::confirm("Are you sure you would like to delete check '#{check['name']}'?", options)
|
395
|
+
return false
|
396
|
+
end
|
397
|
+
|
398
|
+
# payload = {
|
399
|
+
# 'check' => {id: check["id"]}
|
400
|
+
# }
|
401
|
+
# payload['check'].merge!(check)
|
402
|
+
payload = params
|
403
|
+
|
404
|
+
if options[:dry_run]
|
405
|
+
print_dry_run @monitoring_interface.checks.dry.destroy(check["id"])
|
406
|
+
return
|
407
|
+
end
|
408
|
+
|
409
|
+
json_response = @monitoring_interface.checks.destroy(check["id"])
|
410
|
+
if options[:json]
|
411
|
+
puts as_json(json_response, options)
|
412
|
+
elsif !options[:quiet]
|
413
|
+
print_green_success "Deleted check #{check['id']}"
|
414
|
+
end
|
415
|
+
return 0, nil
|
416
|
+
rescue RestClient::Exception => e
|
417
|
+
print_rest_exception(e, options)
|
418
|
+
return 1
|
419
|
+
end
|
420
|
+
end
|
421
|
+
|
422
|
+
|
423
|
+
private
|
424
|
+
|
425
|
+
|
426
|
+
|
427
|
+
end
|