morpheus-cli 3.6.14 → 3.6.15
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/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
|