morpheus-cli 0.9.9 → 0.9.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/lib/morpheus/api/api_client.rb +4 -0
  3. data/lib/morpheus/api/app_templates_interface.rb +74 -0
  4. data/lib/morpheus/api/instance_types_interface.rb +9 -0
  5. data/lib/morpheus/api/instances_interface.rb +16 -0
  6. data/lib/morpheus/api/roles_interface.rb +37 -1
  7. data/lib/morpheus/cli.rb +4 -1
  8. data/lib/morpheus/cli/accounts.rb +82 -58
  9. data/lib/morpheus/cli/app_templates.rb +908 -0
  10. data/lib/morpheus/cli/apps.rb +226 -187
  11. data/lib/morpheus/cli/cli_command.rb +57 -30
  12. data/lib/morpheus/cli/clouds.rb +50 -65
  13. data/lib/morpheus/cli/deployments.rb +18 -33
  14. data/lib/morpheus/cli/deploys.rb +1 -3
  15. data/lib/morpheus/cli/groups.rb +54 -38
  16. data/lib/morpheus/cli/hosts.rb +86 -80
  17. data/lib/morpheus/cli/instance_types.rb +42 -29
  18. data/lib/morpheus/cli/instances.rb +192 -69
  19. data/lib/morpheus/cli/key_pairs.rb +70 -87
  20. data/lib/morpheus/cli/license.rb +7 -9
  21. data/lib/morpheus/cli/load_balancers.rb +23 -53
  22. data/lib/morpheus/cli/mixins/accounts_helper.rb +7 -8
  23. data/lib/morpheus/cli/mixins/print_helper.rb +67 -0
  24. data/lib/morpheus/cli/mixins/provisioning_helper.rb +461 -0
  25. data/lib/morpheus/cli/option_types.rb +71 -18
  26. data/lib/morpheus/cli/roles.rb +725 -34
  27. data/lib/morpheus/cli/security_group_rules.rb +50 -70
  28. data/lib/morpheus/cli/security_groups.rb +61 -48
  29. data/lib/morpheus/cli/shell.rb +123 -14
  30. data/lib/morpheus/cli/tasks.rb +24 -59
  31. data/lib/morpheus/cli/users.rb +86 -71
  32. data/lib/morpheus/cli/version.rb +1 -1
  33. data/lib/morpheus/cli/virtual_images.rb +21 -51
  34. data/lib/morpheus/cli/workflows.rb +14 -29
  35. data/lib/morpheus/ext/nil_class.rb +5 -0
  36. data/lib/morpheus/formatters.rb +1 -0
  37. metadata +7 -3
  38. data/lib/morpheus/cli/error_handler.rb +0 -44
@@ -1,7 +1,5 @@
1
- # require 'yaml'
2
1
  require 'io/console'
3
2
  require 'rest_client'
4
- require 'term/ansicolor'
5
3
  require 'optparse'
6
4
  require 'morpheus/cli/cli_command'
7
5
  require 'morpheus/cli/option_types'
@@ -9,7 +7,6 @@ require 'morpheus/cli/mixins/accounts_helper'
9
7
  require 'json'
10
8
 
11
9
  class Morpheus::Cli::KeyPairs
12
- include Term::ANSIColor
13
10
  include Morpheus::Cli::CliCommand
14
11
  include Morpheus::Cli::AccountsHelper
15
12
 
@@ -20,7 +17,7 @@ class Morpheus::Cli::KeyPairs
20
17
  def connect(opts)
21
18
  @access_token = Morpheus::Cli::Credentials.new(@appliance_name,@appliance_url).request_credentials()
22
19
  if @access_token.empty?
23
- print red,bold, "\nInvalid Credentials. Unable to acquire access token. Please verify your credentials and try again.\n\n",reset
20
+ print_red_alert "Invalid Credentials. Unable to acquire access token. Please verify your credentials and try again."
24
21
  exit 1
25
22
  end
26
23
  @api_client = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url)
@@ -53,12 +50,12 @@ class Morpheus::Cli::KeyPairs
53
50
  end
54
51
 
55
52
  def list(args)
53
+ usage = "Usage: morpheus key-pairs list [options]"
56
54
  options = {}
57
55
  params = {}
58
- account = nil
59
56
  optparse = OptionParser.new do|opts|
60
- Morpheus::Cli::CliCommand.accountScopeOptions(opts,options)
61
- Morpheus::Cli::CliCommand.genericOptions(opts,options)
57
+ opts.banner = usage
58
+ build_common_options(opts, options, [:account, :list, :json])
62
59
  end
63
60
  optparse.parse(args)
64
61
  connect(options)
@@ -86,27 +83,27 @@ class Morpheus::Cli::KeyPairs
86
83
  print reset,"\n\n"
87
84
  end
88
85
  rescue RestClient::Exception => e
89
- ::Morpheus::Cli::ErrorHandler.new.print_rest_exception(e)
86
+ print_rest_exception(e, options)
90
87
  exit 1
91
88
  end
92
89
  end
93
90
 
94
91
  def details(args)
95
92
  usage = "Usage: morpheus key-pairs details [name] [options]"
96
- if args.count < 1
97
- puts "\n#{usage}\n\n"
98
- exit 1
99
- end
100
- account = nil
101
- name = args[0]
102
93
  options = {}
103
94
  params = {}
104
95
  optparse = OptionParser.new do|opts|
105
96
  opts.banner = usage
106
- Morpheus::Cli::CliCommand.accountScopeOptions(opts,options)
107
- Morpheus::Cli::CliCommand.genericOptions(opts,options)
97
+ build_common_options(opts, options, [:account, :json])
108
98
  end
109
99
  optparse.parse(args)
100
+
101
+ if args.count < 1
102
+ puts "\n#{usage}\n\n"
103
+ exit 1
104
+ end
105
+ name = args[0]
106
+
110
107
  connect(options)
111
108
  begin
112
109
 
@@ -121,7 +118,7 @@ class Morpheus::Cli::KeyPairs
121
118
  exit 1 if key_pair.nil?
122
119
 
123
120
  if options[:json]
124
- print JSON.pretty_generate(key_pair)
121
+ print JSON.pretty_generate({keyPair: key_pair})
125
122
  print "\n"
126
123
  else
127
124
  print "\n" ,cyan, bold, "Key Pair Details\n","==================", reset, "\n\n"
@@ -137,27 +134,17 @@ class Morpheus::Cli::KeyPairs
137
134
 
138
135
  end
139
136
  rescue RestClient::Exception => e
140
- ::Morpheus::Cli::ErrorHandler.new.print_rest_exception(e)
137
+ print_rest_exception(e, options)
141
138
  exit 1
142
139
  end
143
140
  end
144
141
 
145
142
  def add(args)
146
- # if args.count > 0
147
- # puts "\nUsage: morpheus hosts add [options]\n\n"
148
- # exit 1
149
- # end
150
- account_name = nil
151
- keypair_name = args[0]
152
143
  options = {}
153
144
  optparse = OptionParser.new do|opts|
154
145
  opts.banner = "Usage: morpheus key-pairs add [name] [options]"
155
-
156
- opts.on( '-a', '--account ACCOUNT', "Account Name" ) do |val|
157
- account_name = val
158
- end
159
146
 
160
- opts.on( '', '--public-key-file FILENAME', "Public Key File" ) do |filename|
147
+ opts.on('', '--public-key-file FILENAME', "Public Key File" ) do |filename|
161
148
  if File.exists?(File.expand_path(filename))
162
149
  options['publicKey'] = File.read(File.expand_path(filename))
163
150
  options[:options] ||= {}
@@ -168,13 +155,13 @@ class Morpheus::Cli::KeyPairs
168
155
  end
169
156
  end
170
157
 
171
- opts.on( '', '--public-key TEXT', "Public Key Text" ) do |val|
158
+ opts.on('', '--public-key TEXT', "Public Key Text" ) do |val|
172
159
  options['publicKey'] = val
173
160
  options[:options] ||= {}
174
161
  options[:options]['publicKey'] = options['publicKey']
175
162
  end
176
163
 
177
- opts.on( '', '--private-key-file FILENAME', "Private Key File" ) do |filename|
164
+ opts.on('', '--private-key-file FILENAME', "Private Key File" ) do |filename|
178
165
  if File.exists?(File.expand_path(filename))
179
166
  options['privateKey'] = File.read(File.expand_path(filename))
180
167
  options[:options] ||= {}
@@ -185,14 +172,15 @@ class Morpheus::Cli::KeyPairs
185
172
  end
186
173
  end
187
174
 
188
- opts.on( '', '--private-key TEXT', "Private Key Text" ) do |val|
175
+ opts.on('', '--private-key TEXT', "Private Key Text" ) do |val|
189
176
  options['privateKey'] = val
190
177
  options[:options] ||= {}
191
178
  options[:options]['privateKey'] = options['privateKey']
192
179
  end
193
180
 
194
- Morpheus::Cli::CliCommand.genericOptions(opts,options)
181
+ build_common_options(opts, options, [:account, :options, :json])
195
182
  end
183
+
196
184
  if args.count < 1
197
185
  puts "\n#{optparse}\n\n"
198
186
  exit 1
@@ -203,15 +191,10 @@ class Morpheus::Cli::KeyPairs
203
191
 
204
192
  begin
205
193
 
206
- # current user account by default
207
- account = nil
208
- if !account_name.nil?
209
- account = find_account_by_name(account_name)
210
- exit 1 if account.nil?
211
- end
194
+ account = find_account_from_options(options)
212
195
  account_id = account ? account['id'] : nil
213
196
 
214
- params = Morpheus::Cli::OptionTypes.prompt(add_key_pair_option_types, options[:options], @api_client, options[:params]) # options[:params] is mysterious
197
+ params = Morpheus::Cli::OptionTypes.prompt(add_key_pair_option_types, options[:options], @api_client, options[:params])
215
198
 
216
199
  if !params['publicKey']
217
200
  print_red_alert "publicKey is required"
@@ -225,49 +208,45 @@ class Morpheus::Cli::KeyPairs
225
208
  key_pair_payload = params.select {|k,v| ['name','publicKey', 'privateKey'].include?(k) }
226
209
 
227
210
  request_payload = {keyPair: key_pair_payload}
228
- response = @key_pairs_interface.create(account_id, request_payload)
229
- print "\n", cyan, "Keypair #{key_pair_payload['name']} added", reset, "\n\n"
211
+ json_response = @key_pairs_interface.create(account_id, request_payload)
212
+ if options[:json]
213
+ print JSON.pretty_generate(json_response)
214
+ print "\n"
215
+ else
216
+ print_green_success "Key Pair #{key_pair_payload['name']} added"
217
+ end
230
218
  rescue RestClient::Exception => e
231
- ::Morpheus::Cli::ErrorHandler.new.print_rest_exception(e)
219
+ print_rest_exception(e, options)
232
220
  exit 1
233
221
  end
234
222
  end
235
223
 
236
224
  def update(args)
237
- usage = "Usage: morpheus hosts update [name] [options]"
238
- if args.count < 1
239
- puts "\n#{usage}\n\n"
240
- exit 1
241
- end
242
- account_name = nil
243
- name = args[0]
225
+ usage = "Usage: morpheus key-pairs update [name] [options]"
244
226
  options = {}
245
227
  optparse = OptionParser.new do|opts|
246
228
  opts.banner = usage
247
-
248
- opts.on( '-a', '--account ACCOUNT', "Account Name" ) do |val|
249
- account_name = val
250
- end
251
-
252
- Morpheus::Cli::CliCommand.genericOptions(opts,options)
229
+ build_common_options(opts, options, [:account, :options, :json])
253
230
  end
254
231
  optparse.parse(args)
255
232
 
233
+ if args.count < 1
234
+ puts "\n#{usage}\n\n"
235
+ exit 1
236
+ end
237
+ name = args[0]
238
+
256
239
  connect(options)
257
240
 
258
241
  begin
259
242
 
260
- account_id = nil
261
- if !account_name.nil?
262
- account = find_account_by_name(account_name)
263
- exit 1 if account.nil?
264
- account_id = account['id']
265
- end
243
+ account = find_account_from_options(options)
244
+ account_id = account ? account['id'] : nil
266
245
 
267
246
  key_pair = ((name.to_s =~ /\A\d{1,}\Z/) ? find_key_pair_by_id(account_id, name) : find_key_pair_by_name(account_id, name) )
268
247
  exit 1 if key_pair.nil?
269
248
 
270
- #params = Morpheus::Cli::OptionTypes.prompt(update_key_pair_option_types, options[:options], @api_client, options[:params]) # options[:params] is mysterious
249
+ #params = Morpheus::Cli::OptionTypes.prompt(update_key_pair_option_types, options[:options], @api_client, options[:params])
271
250
  params = options[:options] || {}
272
251
 
273
252
  if params.empty?
@@ -279,51 +258,55 @@ class Morpheus::Cli::KeyPairs
279
258
 
280
259
  key_pair_payload = params.select {|k,v| ['name'].include?(k) }
281
260
  request_payload = {keyPair: key_pair_payload}
282
- response = @key_pairs_interface.update(account_id, key_pair['id'], request_payload)
283
- print "\n", cyan, "Key Pair #{key_pair_payload['name'] || key_pair['name']} updated", reset, "\n\n"
261
+ json_response = @key_pairs_interface.update(account_id, key_pair['id'], request_payload)
262
+ if options[:json]
263
+ print JSON.pretty_generate(json_response)
264
+ print "\n"
265
+ else
266
+ print_green_success "Key Pair #{key_pair_payload['name'] || key_pair['name']} updated"
267
+ end
284
268
  rescue RestClient::Exception => e
285
- ::Morpheus::Cli::ErrorHandler.new.print_rest_exception(e)
269
+ print_rest_exception(e, options)
286
270
  exit 1
287
271
  end
288
272
  end
289
273
 
290
274
  def remove(args)
291
275
  usage = "Usage: morpheus key-pairs remove [name]"
276
+ options = {}
277
+ optparse = OptionParser.new do|opts|
278
+ opts.banner = usage
279
+ build_common_options(opts, options, [:account, :auto_confirm, :json])
280
+ end
281
+ optparse.parse(args)
282
+
292
283
  if args.count < 1
293
284
  puts "\n#{usage}\n\n"
294
285
  exit 1
295
286
  end
296
- account_name = nil
297
287
  name = args[0]
298
- options = {}
299
- optparse = OptionParser.new do|opts|
300
- opts.banner = usage
301
288
 
302
- opts.on( '-a', '--account ACCOUNT', "Account Name or ID" ) do |val|
303
- account_name = val
304
- end
305
-
306
- Morpheus::Cli::CliCommand.genericOptions(opts,options)
307
- end
308
- optparse.parse(args)
309
289
  connect(options)
310
290
  begin
311
291
  # current user account by default
312
- account = nil
313
- if !account_name.nil?
314
- account = find_account_by_name(account_name)
315
- exit 1 if account.nil?
316
- end
292
+ account = find_account_from_options(options)
317
293
  account_id = account ? account['id'] : nil
318
294
  # allow finding by ID since name is not unique!
319
295
  key_pair = ((name.to_s =~ /\A\d{1,}\Z/) ? find_key_pair_by_id(account_id, name) : find_key_pair_by_name(account_id, name) )
320
296
  exit 1 if key_pair.nil?
321
- exit unless Morpheus::Cli::OptionTypes.confirm("Are you sure you want to delete the key pair #{key_pair['name']}?")
322
- @key_pairs_interface.destroy(account_id, key_pair['id'])
323
- # list([])
324
- print "\n", cyan, "Key Pair #{key_pair['name']} removed", reset, "\n\n"
297
+ unless options[:yes] || Morpheus::Cli::OptionTypes.confirm("Are you sure you want to delete the key pair #{key_pair['name']}?")
298
+ exit
299
+ end
300
+ json_response = @key_pairs_interface.destroy(account_id, key_pair['id'])
301
+ if options[:json]
302
+ print JSON.pretty_generate(json_response)
303
+ print "\n"
304
+ else
305
+ print_green_success "Key Pair #{key_pair['name']} removed"
306
+ # list([])
307
+ end
325
308
  rescue RestClient::Exception => e
326
- ::Morpheus::Cli::ErrorHandler.new.print_rest_exception(e)
309
+ print_rest_exception(e, options)
327
310
  exit 1
328
311
  end
329
312
  end
@@ -1,14 +1,12 @@
1
- # require 'yaml'
2
1
  require 'io/console'
3
2
  require 'rest_client'
4
- require 'term/ansicolor'
5
3
  require 'optparse'
6
4
  require 'table_print'
7
5
  require 'morpheus/cli/cli_command'
8
6
 
9
7
  class Morpheus::Cli::License
10
8
  include Morpheus::Cli::CliCommand
11
- include Term::ANSIColor
9
+
12
10
  def initialize()
13
11
  @appliance_name, @appliance_url = Morpheus::Cli::Remote.active_appliance
14
12
  end
@@ -25,7 +23,7 @@ class Morpheus::Cli::License
25
23
  @license_interface = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url).license
26
24
 
27
25
  if @access_token.empty?
28
- print red,bold, "\nInvalid Credentials. Unable to acquire access token. Please verify your credentials and try again.\n\n",reset
26
+ print_red_alert "Invalid Credentials. Unable to acquire access token. Please verify your credentials and try again."
29
27
  exit 1
30
28
  end
31
29
  end
@@ -53,7 +51,7 @@ class Morpheus::Cli::License
53
51
  options = {}
54
52
  optparse = OptionParser.new do|opts|
55
53
  opts.banner = "Usage: morpheus license details"
56
- Morpheus::Cli::CliCommand.genericOptions(opts,options)
54
+ build_common_options(opts, options, [:json, :remote])
57
55
  end
58
56
  optparse.parse(args)
59
57
  connect(options)
@@ -80,7 +78,7 @@ class Morpheus::Cli::License
80
78
  print reset,"\n\n"
81
79
  end
82
80
  rescue RestClient::Exception => e
83
- ::Morpheus::Cli::ErrorHandler.new.print_rest_exception(e)
81
+ print_rest_exception(e, options)
84
82
  exit 1
85
83
  end
86
84
  end
@@ -91,7 +89,7 @@ class Morpheus::Cli::License
91
89
  account_name = nil
92
90
  optparse = OptionParser.new do|opts|
93
91
  opts.banner = "Usage: morpheus license apply [key]"
94
- Morpheus::Cli::CliCommand.genericOptions(opts,options)
92
+ build_common_options(opts, options, [:json, :remote])
95
93
  end
96
94
  if args.count < 1
97
95
  puts "\n#{optparse.banner}\n\n"
@@ -110,9 +108,9 @@ class Morpheus::Cli::License
110
108
  puts "License applied successfully!"
111
109
  end
112
110
  rescue RestClient::Exception => e
113
- ::Morpheus::Cli::ErrorHandler.new.print_rest_exception(e)
111
+ print_rest_exception(e, options)
114
112
  exit 1
115
113
  end
116
114
  end
117
115
 
118
- end
116
+ end
@@ -1,14 +1,13 @@
1
1
  # require 'yaml'
2
2
  require 'io/console'
3
3
  require 'rest_client'
4
- require 'term/ansicolor'
5
4
  require 'optparse'
6
5
  require 'table_print'
7
6
  require 'morpheus/cli/cli_command'
8
7
 
9
8
  class Morpheus::Cli::LoadBalancers
10
9
  include Morpheus::Cli::CliCommand
11
- include Term::ANSIColor
10
+
12
11
  def initialize()
13
12
  @appliance_name, @appliance_url = Morpheus::Cli::Remote.active_appliance
14
13
  end
@@ -25,7 +24,7 @@ class Morpheus::Cli::LoadBalancers
25
24
  @load_balancers_interface = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url).load_balancers
26
25
 
27
26
  if @access_token.empty?
28
- print red,bold, "\nInvalid Credentials. Unable to acquire access token. Please verify your credentials and try again.\n\n",reset
27
+ print_red_alert "Invalid Credentials. Unable to acquire access token. Please verify your credentials and try again."
29
28
  exit 1
30
29
  end
31
30
  end
@@ -60,20 +59,14 @@ class Morpheus::Cli::LoadBalancers
60
59
  options = {}
61
60
  optparse = OptionParser.new do|opts|
62
61
  opts.banner = "Usage: morpheus load-balancers list [-s] [-o] [-m]"
63
- Morpheus::Cli::CliCommand.genericOptions(opts,options)
62
+ build_common_options(opts, options, [:list, :json, :remote])
64
63
  end
65
64
  optparse.parse(args)
66
65
  connect(options)
67
66
  begin
68
67
  params = {}
69
- if options[:offset]
70
- params[:offset] = options[:offset]
71
- end
72
- if options[:max]
73
- params[:max] = options[:max]
74
- end
75
- if options[:phrase]
76
- params[:phrase] = options[:phrase]
68
+ [:phrase, :offset, :max, :sort, :direction].each do |k|
69
+ params[k] = options[k] unless options[k].nil?
77
70
  end
78
71
  json_response = @load_balancers_interface.get(params)
79
72
  if options[:json]
@@ -95,12 +88,7 @@ class Morpheus::Cli::LoadBalancers
95
88
 
96
89
 
97
90
  rescue RestClient::Exception => e
98
- if e.response.code == 400
99
- error = JSON.parse(e.response.to_s)
100
- ::Morpheus::Cli::ErrorHandler.new.print_errors(error,options)
101
- else
102
- puts "Error Communicating with the Appliance. Please try again later. #{e}"
103
- end
91
+ print_rest_exception(e, options)
104
92
  exit 1
105
93
  end
106
94
  end
@@ -110,7 +98,7 @@ class Morpheus::Cli::LoadBalancers
110
98
  options = {}
111
99
  optparse = OptionParser.new do|opts|
112
100
  opts.banner = "Usage: morpheus load-balancers details [name]"
113
- Morpheus::Cli::CliCommand.genericOptions(opts,options)
101
+ build_common_options(opts, options, [:json, :remote])
114
102
  end
115
103
  if args.count < 1
116
104
  puts "\n#{optparse.banner}\n\n"
@@ -133,12 +121,7 @@ class Morpheus::Cli::LoadBalancers
133
121
  print reset,"\n\n"
134
122
  end
135
123
  rescue RestClient::Exception => e
136
- if e.response.code == 400
137
- error = JSON.parse(e.response.to_s)
138
- ::Morpheus::Cli::ErrorHandler.new.print_errors(error,options)
139
- else
140
- puts "Error Communicating with the Appliance. Please try again later. #{e}"
141
- end
124
+ print_rest_exception(e, options)
142
125
  exit 1
143
126
  end
144
127
  end
@@ -149,7 +132,7 @@ class Morpheus::Cli::LoadBalancers
149
132
  account_name = nil
150
133
  optparse = OptionParser.new do|opts|
151
134
  opts.banner = "Usage: morpheus tasks update [task] [options]"
152
- Morpheus::Cli::CliCommand.genericOptions(opts,options)
135
+ build_common_options(opts, options, [:options, :json, :remote])
153
136
  end
154
137
  if args.count < 1
155
138
  puts "\n#{optparse.banner}\n\n"
@@ -199,12 +182,7 @@ class Morpheus::Cli::LoadBalancers
199
182
  print "\n", cyan, "Task #{response['task']['name']} updated", reset, "\n\n"
200
183
  end
201
184
  rescue RestClient::Exception => e
202
- if e.response.code == 400
203
- error = JSON.parse(e.response.to_s)
204
- ::Morpheus::Cli::ErrorHandler.new.print_errors(error)
205
- else
206
- puts "Error Communicating with the Appliance. Please try again later. #{e}"
207
- end
185
+ print_rest_exception(e, options)
208
186
  exit 1
209
187
  end
210
188
  end
@@ -214,7 +192,7 @@ class Morpheus::Cli::LoadBalancers
214
192
  options = {}
215
193
  optparse = OptionParser.new do|opts|
216
194
  opts.banner = "Usage: morpheus load-balancers lb-types"
217
- Morpheus::Cli::CliCommand.genericOptions(opts,options)
195
+ build_common_options(opts, options, [:json, :remote])
218
196
  end
219
197
  optparse.parse(args)
220
198
  connect(options)
@@ -239,13 +217,8 @@ class Morpheus::Cli::LoadBalancers
239
217
  end
240
218
 
241
219
 
242
- rescue => e
243
- if e.response.code == 400
244
- error = JSON.parse(e.response.to_s)
245
- ::Morpheus::Cli::ErrorHandler.new.print_errors(error,options)
246
- else
247
- puts "Error Communicating with the Appliance. Please try again later. #{e}"
248
- end
220
+ rescue RestClient::Exception => e
221
+ print_rest_exception(e, options)
249
222
  exit 1
250
223
  end
251
224
  end
@@ -259,7 +232,7 @@ class Morpheus::Cli::LoadBalancers
259
232
  opts.on( '-t', '--type LB_TYPE', "Lb Type" ) do |val|
260
233
  lb_type_name = val
261
234
  end
262
- Morpheus::Cli::CliCommand.genericOptions(opts,options)
235
+ build_common_options(opts, options, [:options, :json, :remote])
263
236
  end
264
237
  if args.count < 1
265
238
  puts "\n#{optparse.banner}\n\n"
@@ -288,7 +261,7 @@ class Morpheus::Cli::LoadBalancers
288
261
  print "\n", cyan, "LB #{json_response['loadBalancer']['name']} created successfully", reset, "\n\n"
289
262
  end
290
263
  rescue RestClient::Exception => e
291
- ::Morpheus::Cli::ErrorHandler.new.print_rest_exception(e)
264
+ print_rest_exception(e, options)
292
265
  exit 1
293
266
  end
294
267
  end
@@ -298,7 +271,7 @@ class Morpheus::Cli::LoadBalancers
298
271
  options = {}
299
272
  optparse = OptionParser.new do|opts|
300
273
  opts.banner = "Usage: morpheus load-balancers remove [name]"
301
- Morpheus::Cli::CliCommand.genericOptions(opts,options)
274
+ build_common_options(opts, options, [:auto_confirm, :json, :remote])
302
275
  end
303
276
  if args.count < 1
304
277
  puts "\n#{optparse.banner}\n\n"
@@ -309,7 +282,9 @@ class Morpheus::Cli::LoadBalancers
309
282
  begin
310
283
  lb = find_lb_by_name(lb_name)
311
284
  exit 1 if lb.nil?
312
- exit unless Morpheus::Cli::OptionTypes.confirm("Are you sure you want to delete the load balancer #{lb['name']}?")
285
+ unless options[:yes] || Morpheus::Cli::OptionTypes.confirm("Are you sure you want to delete the load balancer #{lb['name']}?")
286
+ exit
287
+ end
313
288
  json_response = @load_balancers_interface.destroy(lb['id'])
314
289
  if options[:json]
315
290
  print JSON.pretty_generate(json_response)
@@ -317,12 +292,7 @@ class Morpheus::Cli::LoadBalancers
317
292
  print "\n", cyan, "Load Balancer #{lb['name']} removed", reset, "\n\n"
318
293
  end
319
294
  rescue RestClient::Exception => e
320
- if e.response.code == 400
321
- error = JSON.parse(e.response.to_s)
322
- ::Morpheus::Cli::ErrorHandler.new.print_errors(error,options)
323
- else
324
- puts "Error Communicating with the Appliance. Please try again later. #{e}"
325
- end
295
+ print_rest_exception(e, options)
326
296
  exit 1
327
297
  end
328
298
  end
@@ -340,7 +310,7 @@ private
340
310
  result = results['loadBalancer']
341
311
  end
342
312
  if result.nil?
343
- print red,bold, "\nLB not found by '#{val}'\n\n",reset
313
+ print_red_alert "LB not found by '#{val}'"
344
314
  return nil
345
315
  end
346
316
  return result
@@ -357,10 +327,10 @@ private
357
327
  result = results['loadBalancerType']
358
328
  end
359
329
  if result.nil?
360
- print red,bold, "\nLB Type not found by '#{val}'\n\n",reset
330
+ print_red_alert "LB Type not found by '#{val}'"
361
331
  return nil
362
332
  end
363
333
  return result
364
334
  end
365
335
 
366
- end
336
+ end