morpheus-cli 3.6.14 → 3.6.15
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/morpheus/benchmarking.rb +1 -1
- data/lib/morpheus/cli.rb +30 -0
- data/lib/morpheus/cli/cli_command.rb +0 -36
- data/lib/morpheus/cli/commands/standard/benchmark_command.rb +3 -3
- data/lib/morpheus/cli/groups.rb +15 -10
- data/lib/morpheus/cli/remote.rb +4 -3
- data/lib/morpheus/cli/shell.rb +3 -3
- data/lib/morpheus/cli/version.rb +1 -1
- data/lib/morpheus/terminal.rb +1 -11
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 44cd5f86f718d01477f1d822a42fbf33374ad0339e080b57d589040bcad06dd5
|
4
|
+
data.tar.gz: 3b43a3da6bfa2b65e683a1696ec3d39ef4f17acde0d388dd9004ab1416ad9bb8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 12da78b947b3aec266e206833af10ec1a068efe9aab6e92d01b0d266ff36c06a37d371f5e16bb7d9d9c96cf43daa2b7ce8feed7989d4bc72b2bc065d2a73014c
|
7
|
+
data.tar.gz: a7e99aa6d071b30f64344505c2cce44204f1d11dc255e253c4c750798a7483074dee8162a206ec59bd04be94f9bbc4fc2e09f48b048754dedbccf49bd1896e93
|
@@ -124,7 +124,7 @@ module Morpheus::Benchmarking
|
|
124
124
|
start_benchmark(opts)
|
125
125
|
if block_given?
|
126
126
|
result = block.call()
|
127
|
-
# exit_code, err = Morpheus::Cli
|
127
|
+
# exit_code, err = Morpheus::Cli.parse_command_result(result)
|
128
128
|
if result.is_a?(Array)
|
129
129
|
exit_code = result[0]
|
130
130
|
err = result[0]
|
data/lib/morpheus/cli.rb
CHANGED
@@ -39,6 +39,36 @@ module Morpheus
|
|
39
39
|
return @@is_windows
|
40
40
|
end
|
41
41
|
|
42
|
+
def self.parse_command_result(cmd_result)
|
43
|
+
exit_code, err = nil, nil
|
44
|
+
if cmd_result.is_a?(Array)
|
45
|
+
exit_code, err = cmd_result[0], cmd_result[1]
|
46
|
+
elsif cmd_result.is_a?(Hash)
|
47
|
+
exit_code, err = cmd_result[:exit_code], (cmd_result[:error] || cmd_result[:err])
|
48
|
+
end
|
49
|
+
if cmd_result == nil || cmd_result == true
|
50
|
+
exit_code = 0
|
51
|
+
elsif cmd_result == false
|
52
|
+
exit_code = 1
|
53
|
+
elsif cmd_result.is_a?(Integer)
|
54
|
+
exit_code = cmd_result
|
55
|
+
elsif cmd_result.is_a?(Float)
|
56
|
+
exit_code = cmd_result.to_i
|
57
|
+
elsif cmd_result.is_a?(String)
|
58
|
+
exit_code = cmd_result.to_i
|
59
|
+
else
|
60
|
+
if cmd_result.respond_to?(:to_i)
|
61
|
+
exit_code = cmd_result.to_i
|
62
|
+
else
|
63
|
+
# happens for aliases right now.. and execution flow probably, need to handle Array
|
64
|
+
# uncomment to track them down, proceed with exit 0 for now
|
65
|
+
#Morpheus::Logging::DarkPrinter.puts "debug: command #{command_name} produced an unexpected result: (#{cmd_result.class}) #{cmd_result}" if Morpheus::Logging.debug?
|
66
|
+
exit_code = 0
|
67
|
+
end
|
68
|
+
end
|
69
|
+
return exit_code, err
|
70
|
+
end
|
71
|
+
|
42
72
|
# load all the well known commands and utilties they need
|
43
73
|
def self.load!()
|
44
74
|
# load interfaces
|
@@ -933,44 +933,8 @@ module Morpheus
|
|
933
933
|
return output
|
934
934
|
end
|
935
935
|
|
936
|
-
def parse_command_result(cmd_result)
|
937
|
-
self.class.parse_command_result(cmd_result)
|
938
|
-
end
|
939
|
-
|
940
936
|
module ClassMethods
|
941
937
|
|
942
|
-
# Parse exit_code and err from a command result (object of some type)
|
943
|
-
# returns [exit_code, err]
|
944
|
-
def parse_command_result(cmd_result)
|
945
|
-
exit_code, err = nil, nil
|
946
|
-
if cmd_result.is_a?(Array)
|
947
|
-
exit_code, err = cmd_result[0], cmd_result[1]
|
948
|
-
elsif cmd_result.is_a?(Hash)
|
949
|
-
exit_code, err = cmd_result[:exit_code], (cmd_result[:error] || cmd_result[:err])
|
950
|
-
end
|
951
|
-
if cmd_result == nil || cmd_result == true
|
952
|
-
exit_code = 0
|
953
|
-
elsif cmd_result == false
|
954
|
-
exit_code = 1
|
955
|
-
elsif cmd_result.is_a?(Integer)
|
956
|
-
exit_code = cmd_result
|
957
|
-
elsif cmd_result.is_a?(Float)
|
958
|
-
exit_code = cmd_result.to_i
|
959
|
-
elsif cmd_result.is_a?(String)
|
960
|
-
exit_code = cmd_result.to_i
|
961
|
-
else
|
962
|
-
if cmd_result.respond_to?(:to_i)
|
963
|
-
exit_code = cmd_result.to_i
|
964
|
-
else
|
965
|
-
# happens for aliases right now.. and execution flow probably, need to handle Array
|
966
|
-
# uncomment to track them down, proceed with exit 0 for now
|
967
|
-
#Morpheus::Logging::DarkPrinter.puts "debug: command #{command_name} produced an unexpected result: (#{cmd_result.class}) #{cmd_result}" if Morpheus::Logging.debug?
|
968
|
-
exit_code = 0
|
969
|
-
end
|
970
|
-
end
|
971
|
-
return exit_code, err
|
972
|
-
end
|
973
|
-
|
974
938
|
def set_command_name(cmd_name)
|
975
939
|
@command_name = cmd_name
|
976
940
|
Morpheus::Cli::CliRegistry.add(self, self.command_name)
|
@@ -322,7 +322,7 @@ EOT
|
|
322
322
|
# exit_code, err = my_terminal.execute(cmd)
|
323
323
|
# do this way until terminal supports expressions
|
324
324
|
cmd_result = execute_commands_as_expression(cmd)
|
325
|
-
exit_code, err = parse_command_result(cmd_result)
|
325
|
+
exit_code, err = Morpheus::Cli.parse_command_result(cmd_result)
|
326
326
|
|
327
327
|
benchmark_record = stop_benchmark(exit_code, err)
|
328
328
|
Morpheus::Logging::DarkPrinter.puts(cyan + dark + benchmark_record.msg) if benchmark_record
|
@@ -373,13 +373,13 @@ EOT
|
|
373
373
|
if flow_cmd == '&&'
|
374
374
|
# AND operator
|
375
375
|
current_operator = flow_cmd
|
376
|
-
exit_code, cmd_err = parse_command_result(previous_command_result)
|
376
|
+
exit_code, cmd_err = Morpheus::Cli.parse_command_result(previous_command_result)
|
377
377
|
if exit_code != 0
|
378
378
|
still_executing = false
|
379
379
|
end
|
380
380
|
elsif flow_cmd == '||' # or with previous command
|
381
381
|
current_operator = flow_cmd
|
382
|
-
exit_code, err = parse_command_result(previous_command_result)
|
382
|
+
exit_code, err = Morpheus::Cli.parse_command_result(previous_command_result)
|
383
383
|
if exit_code == 0
|
384
384
|
still_executing = false
|
385
385
|
end
|
data/lib/morpheus/cli/groups.rb
CHANGED
@@ -64,7 +64,7 @@ class Morpheus::Cli::Groups
|
|
64
64
|
active_group = groups.find { |it| it['id'] == @active_group_id }
|
65
65
|
active_group = active_group || find_group_by_name_or_id(@active_group_id)
|
66
66
|
#unless @appliances.keys.size == 1
|
67
|
-
print cyan, "\n# => Currently using group #{
|
67
|
+
print cyan, "\n# => Currently using group #{active_group['name']}\n", reset
|
68
68
|
#end
|
69
69
|
else
|
70
70
|
unless options[:remote]
|
@@ -399,12 +399,12 @@ class Morpheus::Cli::Groups
|
|
399
399
|
"This sets the active group.\n" +
|
400
400
|
"The active group will be auto-selected for use during provisioning.\n" +
|
401
401
|
"You can still use the --group option to override this."
|
402
|
-
build_common_options(opts, options, [])
|
402
|
+
build_common_options(opts, options, [:quiet, :remote])
|
403
403
|
end
|
404
404
|
optparse.parse!(args)
|
405
405
|
if args.count < 1
|
406
406
|
puts optparse
|
407
|
-
|
407
|
+
return 1
|
408
408
|
end
|
409
409
|
connect(options)
|
410
410
|
begin
|
@@ -412,20 +412,24 @@ class Morpheus::Cli::Groups
|
|
412
412
|
group = find_group_by_name_or_id(args[0])
|
413
413
|
if !group
|
414
414
|
print_red_alert "Group not found by name #{args[0]}"
|
415
|
-
|
415
|
+
return 1
|
416
416
|
end
|
417
|
-
|
418
417
|
if @active_group_id == group['id']
|
419
|
-
|
418
|
+
unless options[:quiet]
|
419
|
+
print reset,"Already using the group #{group['name']}","\n",reset
|
420
|
+
end
|
420
421
|
else
|
421
422
|
::Morpheus::Cli::Groups.set_active_group(@appliance_name, group['id'])
|
422
423
|
# ::Morpheus::Cli::Groups.save_groups(@active_groups)
|
423
|
-
|
424
|
+
unless options[:quiet]
|
425
|
+
print cyan,"Switched active group to #{group['name']}","\n",reset
|
426
|
+
end
|
424
427
|
#list([])
|
425
428
|
end
|
429
|
+
return 0
|
426
430
|
rescue RestClient::Exception => e
|
427
431
|
print_rest_exception(e, options)
|
428
|
-
|
432
|
+
return 1
|
429
433
|
end
|
430
434
|
|
431
435
|
end
|
@@ -486,14 +490,15 @@ class Morpheus::Cli::Groups
|
|
486
490
|
{
|
487
491
|
active: (is_active ? "=>" : ""),
|
488
492
|
id: group['id'],
|
489
|
-
name: is_active ? "#{green}#{group['name']}#{reset}#{table_color}" : group['name'],
|
493
|
+
# name: is_active ? "#{green}#{group['name']}#{reset}#{table_color}" : group['name'],
|
494
|
+
name: group['name'],
|
490
495
|
location: group['location'],
|
491
496
|
cloud_count: group['zones'] ? group['zones'].size : 0,
|
492
497
|
server_count: group['serverCount']
|
493
498
|
}
|
494
499
|
end
|
495
500
|
columns = [
|
496
|
-
|
501
|
+
{:active => {:display_name => ""}},
|
497
502
|
{:id => {:width => 10}},
|
498
503
|
{:name => {:width => 16}},
|
499
504
|
{:location => {:width => 32}},
|
data/lib/morpheus/cli/remote.rb
CHANGED
@@ -72,8 +72,9 @@ EOT
|
|
72
72
|
else
|
73
73
|
print cyan
|
74
74
|
columns = [
|
75
|
-
|
76
|
-
{:name => {display_method: lambda {|it| it[:active] ? "#{green}#{it[:name]}#{reset}#{cyan}" : it[:name] }, :width => 16 } },
|
75
|
+
{:active => {:display_name => "", :display_method => lambda {|it| it[:active] ? "=>" : "" } } },
|
76
|
+
# {:name => {display_method: lambda {|it| it[:active] ? "#{green}#{it[:name]}#{reset}#{cyan}" : it[:name] }, :width => 16 } },
|
77
|
+
{:name => {display_method: lambda {|it| it[:name] }, :width => 16 } },
|
77
78
|
{:url => {display_method: lambda {|it| it[:host] || it[:url] }, :width => 40 } },
|
78
79
|
{:version => lambda {|it| it[:build_version] } },
|
79
80
|
{:status => lambda {|it| format_appliance_status(it, cyan) } },
|
@@ -85,7 +86,7 @@ EOT
|
|
85
86
|
print reset
|
86
87
|
if @appliance_name
|
87
88
|
#unless appliances.keys.size == 1
|
88
|
-
print cyan, "\n# => Currently using remote #{
|
89
|
+
print cyan, "\n# => Currently using remote #{@appliance_name}\n", reset
|
89
90
|
#end
|
90
91
|
else
|
91
92
|
print "\n# => No current remote appliance, see `remote use`\n", reset
|
data/lib/morpheus/cli/shell.rb
CHANGED
@@ -287,13 +287,13 @@ class Morpheus::Cli::Shell
|
|
287
287
|
if flow_cmd == '&&'
|
288
288
|
# AND operator
|
289
289
|
current_operator = flow_cmd
|
290
|
-
exit_code, cmd_err = parse_command_result(previous_command_result)
|
290
|
+
exit_code, cmd_err = Morpheus::Cli.parse_command_result(previous_command_result)
|
291
291
|
if exit_code != 0
|
292
292
|
still_executing = false
|
293
293
|
end
|
294
294
|
elsif flow_cmd == '||' # or with previous command
|
295
295
|
current_operator = flow_cmd
|
296
|
-
exit_code, err = parse_command_result(previous_command_result)
|
296
|
+
exit_code, err = Morpheus::Cli.parse_command_result(previous_command_result)
|
297
297
|
if exit_code == 0
|
298
298
|
still_executing = false
|
299
299
|
end
|
@@ -536,7 +536,7 @@ class Morpheus::Cli::Shell
|
|
536
536
|
end
|
537
537
|
end
|
538
538
|
cmd_result = Morpheus::Cli::CliRegistry.exec(cmd_name, cmd_args)
|
539
|
-
cmd_exit_code, cmd_err = parse_command_result(cmd_result)
|
539
|
+
cmd_exit_code, cmd_err = Morpheus::Cli.parse_command_result(cmd_result)
|
540
540
|
benchmark_record = stop_benchmark(cmd_exit_code, cmd_err) # if benchmarking?
|
541
541
|
Morpheus::Logging::DarkPrinter.puts(cyan + dark + benchmark_record.msg) if benchmark_record
|
542
542
|
else
|
data/lib/morpheus/cli/version.rb
CHANGED
data/lib/morpheus/terminal.rb
CHANGED
@@ -382,17 +382,7 @@ module Morpheus
|
|
382
382
|
else
|
383
383
|
result = Morpheus::Cli::CliRegistry.exec(args[0], args[1..-1])
|
384
384
|
end
|
385
|
-
|
386
|
-
if result == nil || result == true || result == 0
|
387
|
-
exit_code = 0
|
388
|
-
elsif result == false
|
389
|
-
exit_code = 1
|
390
|
-
elsif result.is_a?(Array) # exit_code, err
|
391
|
-
exit_code = result[0] #.to_i
|
392
|
-
err = result[1]
|
393
|
-
else
|
394
|
-
exit_code = result #.to_i
|
395
|
-
end
|
385
|
+
exit_code, err = Morpheus::Cli.parse_command_result(result)
|
396
386
|
rescue => e
|
397
387
|
exit_code = Morpheus::Cli::ErrorHandler.new(@stderr).handle_error(e)
|
398
388
|
err = e
|