morpheus-cli 4.2.12 → 4.2.13

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5e122acdb8c77d80c4d352581e33ee8e8a7d7caf6e631fda4645e8f5854f8c6e
4
- data.tar.gz: 67d82f25c0fd463098d96183f0301ee22f3538bd6d6043c77132ae12fa5c3324
3
+ metadata.gz: 2788d4682a38deca42b716fa364b76fa58b81bc4dd0d9e0d61088029462684f9
4
+ data.tar.gz: 68fa32a490908ba747a7ea4ce63e34a6894e7e0398592a7a53e01fa688f237de
5
5
  SHA512:
6
- metadata.gz: 84efcd68bc06c45125654bc2279894cb5e1d7ef484f63015185fdedbdcdef57c48179cababa63128fd978416109229e08dc267ee0094c74fb16824f4450a4306
7
- data.tar.gz: 8326f9f6dc94b22cb3e0df8ce18155bbadf67e5256301d9ad0df07803c99e4eaccfe36eabcde0b8ec9461f226dd3beea5c0584c30bb5146937dbf70c59e7b75b
6
+ metadata.gz: 25a714b9505f60ad3c71da4b1af361f32112efe774ec08f1fb85c162f59e62150410127ed3b34f37de23a71ebc2857b112cf68b9d0501478bf401d348553473c
7
+ data.tar.gz: 6ec182c42b61ebf359e3ea9158c63e109b3a5369bc4242e5cad80355dd6093b82e6593d26c7968683e55903ee184791187b0db5f470ff0b100b16fdaeb5ba2b3
data/Dockerfile CHANGED
@@ -1,5 +1,5 @@
1
1
  FROM ruby:2.5.1
2
2
 
3
- RUN gem install morpheus-cli -v 4.2.12
3
+ RUN gem install morpheus-cli -v 4.2.13
4
4
 
5
5
  ENTRYPOINT ["morpheus"]
@@ -1303,7 +1303,7 @@ EOT
1303
1303
  # options[:interval] = parse_time(val).utc.iso8601
1304
1304
  # end
1305
1305
  opts.on('--level VALUE', String, "Log Level. DEBUG,INFO,WARN,ERROR") do |val|
1306
- params['level'] = params['level'] ? [params['level'], val].flatten : val
1306
+ params['level'] = params['level'] ? [params['level'], val].flatten : [val]
1307
1307
  end
1308
1308
  opts.on('--table', '--table', "Format ouput as a table.") do
1309
1309
  options[:table] = true
@@ -1346,6 +1346,7 @@ EOT
1346
1346
  end
1347
1347
  end
1348
1348
  params = {}
1349
+ params['level'] = params['level'].collect {|it| it.to_s.upcase }.join('|') if params['level'] # api works with INFO|WARN
1349
1350
  params.merge!(parse_list_options(options))
1350
1351
  params['query'] = params.delete('phrase') if params['phrase']
1351
1352
  params['order'] = params['direction'] unless params['direction'].nil? # old api version expects order instead of direction
@@ -128,6 +128,11 @@ module Morpheus
128
128
  previous_command_result = nil
129
129
  current_operator = nil
130
130
  still_executing = true
131
+ # need to error before executing anything, could be dangerous otherwise!
132
+ # also maybe only pass flow commands if they have a space on either side..
133
+ if flow.include?("|")
134
+ raise Morpheus::Cli::ExpressionParser::InvalidExpression.new "The PIPE (|) operator is not yet supported. You can wrap your arguments in quotations."
135
+ end
131
136
  flow.each do |flow_cmd|
132
137
  if still_executing
133
138
  if flow_cmd == '&&'
@@ -144,7 +149,8 @@ module Morpheus
144
149
  still_executing = false
145
150
  end
146
151
  elsif flow_cmd == '|' # or with previous command
147
- raise Morpheus::Cli::ExpressionParser::InvalidExpression.new "The PIPE (|) operator is not yet supported =["
152
+ # todo, handle pipe!
153
+ raise Morpheus::Cli::ExpressionParser::InvalidExpression.new "The PIPE (|) operator is not yet supported. You can wrap your arguments in quotations."
148
154
  previous_command_result = nil
149
155
  still_executing = false
150
156
  # or just continue?
@@ -836,7 +836,7 @@ class Morpheus::Cli::Clusters
836
836
  options[:end] = parse_time(val) #.utc.iso8601
837
837
  end
838
838
  opts.on('--level VALUE', String, "Log Level. DEBUG,INFO,WARN,ERROR") do |val|
839
- params['level'] = params['level'] ? [params['level'], val].flatten : val
839
+ params['level'] = params['level'] ? [params['level'], val].flatten : [val]
840
840
  end
841
841
  opts.on('--table', '--table', "Format ouput as a table.") do
842
842
  options[:table] = true
@@ -854,6 +854,7 @@ class Morpheus::Cli::Clusters
854
854
  begin
855
855
  cluster = find_cluster_by_name_or_id(args[0])
856
856
  params = {}
857
+ params['level'] = params['level'].collect {|it| it.to_s.upcase }.join('|') if params['level'] # api works with INFO|WARN
857
858
  params.merge!(parse_list_options(options))
858
859
  params['query'] = params.delete('phrase') if params['phrase']
859
860
  params['startMs'] = (options[:start].to_i * 1000) if options[:start]
@@ -519,7 +519,7 @@ class Morpheus::Cli::ContainersCommand
519
519
  options[:end] = parse_time(val) #.utc.iso8601
520
520
  end
521
521
  opts.on('--level VALUE', String, "Log Level. DEBUG,INFO,WARN,ERROR") do |val|
522
- params['level'] = params['level'] ? [params['level'], val].flatten : val
522
+ params['level'] = params['level'] ? [params['level'], val].flatten : [val]
523
523
  end
524
524
  opts.on('--table', '--table', "Format ouput as a table.") do
525
525
  options[:table] = true
@@ -541,6 +541,7 @@ class Morpheus::Cli::ContainersCommand
541
541
  id_list = parse_id_list(args)
542
542
  begin
543
543
  containers = id_list # heh
544
+ params['level'] = params['level'].collect {|it| it.to_s.upcase }.join('|') if params['level'] # api works with INFO|WARN
544
545
  params.merge!(parse_list_options(options))
545
546
  params['query'] = params.delete('phrase') if params['phrase']
546
547
  params[:order] = params[:direction] unless params[:direction].nil? # old api version expects order instead of direction
@@ -457,7 +457,7 @@ class Morpheus::Cli::HealthCommand
457
457
  optparse = Morpheus::Cli::OptionParser.new do |opts|
458
458
  opts.banner = subcommand_usage()
459
459
  opts.on('--level VALUE', String, "Log Level. DEBUG,INFO,WARN,ERROR") do |val|
460
- params['level'] = params['level'] ? [params['level'], val].flatten : val
460
+ params['level'] = params['level'] ? [params['level'], val].flatten : [val]
461
461
  end
462
462
  opts.on('--start TIMESTAMP','--start TIMESTAMP', "Start timestamp. Default is 30 days ago.") do |val|
463
463
  start_date = parse_time(val) #.utc.iso8601
@@ -465,7 +465,7 @@ class Morpheus::Cli::HealthCommand
465
465
  opts.on('--end TIMESTAMP','--end TIMESTAMP', "End timestamp. Default is now.") do |val|
466
466
  end_date = parse_time(val) #.utc.iso8601
467
467
  end
468
- opts.on('--table', '--table', "Format output as a table.") do
468
+ opts.on('-t', '--table', "Format output as a table.") do
469
469
  options[:table] = true
470
470
  end
471
471
  opts.on('-a', '--all', "Display all details: entire message." ) do
@@ -484,6 +484,7 @@ class Morpheus::Cli::HealthCommand
484
484
  # params['endDate'] = end_date.utc.iso8601 if end_date
485
485
  params['startMs'] = (start_date.to_i * 1000) if start_date
486
486
  params['endMs'] = (end_date.to_i * 1000) if end_date
487
+ params['level'] = params['level'].collect {|it| it.to_s.upcase }.join('|') if params['level'] # api works with INFO|WARN
487
488
  params.merge!(parse_list_options(options))
488
489
  @health_interface.setopts(options)
489
490
  if options[:dry_run]
@@ -497,7 +498,7 @@ class Morpheus::Cli::HealthCommand
497
498
  title = "Morpheus Health Logs"
498
499
  subtitles = []
499
500
  if params['level']
500
- subtitles << "Level: #{params['level']}"
501
+ subtitles << "Level: #{[params['level']].flatten.join(',')}"
501
502
  end
502
503
  if start_date
503
504
  subtitles << "Start: #{start_date}"
@@ -582,7 +582,7 @@ class Morpheus::Cli::Hosts
582
582
  options[:end] = parse_time(val) #.utc.iso8601
583
583
  end
584
584
  opts.on('--level VALUE', String, "Log Level. DEBUG,INFO,WARN,ERROR") do |val|
585
- params['level'] = params['level'] ? [params['level'], val].flatten : val
585
+ params['level'] = params['level'] ? [params['level'], val].flatten : [val]
586
586
  end
587
587
  opts.on('--table', '--table', "Format ouput as a table.") do
588
588
  options[:table] = true
@@ -600,6 +600,7 @@ class Morpheus::Cli::Hosts
600
600
  connect(options)
601
601
  begin
602
602
  server = find_host_by_name_or_id(args[0])
603
+ params['level'] = params['level'].collect {|it| it.to_s.upcase }.join('|') if params['level'] # api works with INFO|WARN
603
604
  params.merge!(parse_list_options(options))
604
605
  params['query'] = params.delete('phrase') if params['phrase']
605
606
  params['order'] = params['direction'] unless params['direction'].nil? # old api version expects order instead of direction
@@ -1009,7 +1009,7 @@ class Morpheus::Cli::Instances
1009
1009
  # options[:interval] = parse_time(val).utc.iso8601
1010
1010
  # end
1011
1011
  opts.on('--level VALUE', String, "Log Level. DEBUG,INFO,WARN,ERROR") do |val|
1012
- params['level'] = params['level'] ? [params['level'], val].flatten : val
1012
+ params['level'] = params['level'] ? [params['level'], val].flatten : [val]
1013
1013
  end
1014
1014
  opts.on('--table', '--table', "Format ouput as a table.") do
1015
1015
  options[:table] = true
@@ -1036,6 +1036,7 @@ class Morpheus::Cli::Instances
1036
1036
  return 1
1037
1037
  end
1038
1038
  end
1039
+ params['level'] = params['level'].collect {|it| it.to_s.upcase }.join('|') if params['level'] # api works with INFO|WARN
1039
1040
  params.merge!(parse_list_options(options))
1040
1041
  params['query'] = params.delete('phrase') if params['phrase']
1041
1042
  params['order'] = params['direction'] unless params['direction'].nil? # old api version expects order instead of direction
@@ -63,9 +63,9 @@ class Morpheus::Cli::LogsCommand
63
63
  # options[:interval] = parse_time(val).utc.iso8601
64
64
  # end
65
65
  opts.on('--level VALUE', String, "Log Level. DEBUG,INFO,WARN,ERROR") do |val|
66
- params['level'] = params['level'] ? [params['level'], val].flatten : val
66
+ params['level'] = params['level'] ? [params['level'], val].flatten : [val]
67
67
  end
68
- opts.on('--table', '--table', "Format ouput as a table.") do
68
+ opts.on('-t', '--table', "Format ouput as a table.") do
69
69
  options[:table] = true
70
70
  end
71
71
  opts.on('-a', '--all', "Display all details: entire message." ) do
@@ -81,6 +81,7 @@ class Morpheus::Cli::LogsCommand
81
81
  end
82
82
  connect(options)
83
83
  begin
84
+ params['level'] = params['level'].collect {|it| it.to_s.upcase }.join('|') if params['level'] # api works with INFO|WARN
84
85
  params.merge!(parse_list_options(options))
85
86
  params['query'] = params.delete('phrase') if params['phrase']
86
87
  params['order'] = params['direction'] unless params['direction'].nil? # old api version expects order instead of direction
@@ -45,6 +45,8 @@ module Morpheus::Cli::LogsHelper
45
45
  end
46
46
  out = ""
47
47
  table_color = options.key?(:color) ? options[:color] : cyan
48
+ term_width = current_terminal_width()
49
+ message_col_width = current_terminal_width() - (show_object ? 56 : 36)
48
50
  log_records.each do |log_entry|
49
51
  log_level = format_log_level(log_entry['level'], table_color, 6)
50
52
  out << table_color if table_color
@@ -52,15 +54,20 @@ module Morpheus::Cli::LogsHelper
52
54
  out << "#{log_level} "
53
55
  out << "[#{log_entry['ts']}] "
54
56
  if show_object
55
- out << "(#{log_entry['typeCode']} #{log_entry['objectId']}) "
57
+ log_src = "#{log_entry['typeCode']} #{log_entry['objectId']}"
58
+ if options[:details] || options[:all]
59
+ # log_src = "#{log_entry['typeCode']} #{log_entry['objectId']}"
60
+ else
61
+ log_src = truncate_string(log_src, 20)
62
+ end
63
+ out << "(#{log_src}) "
56
64
  end
57
65
  log_msg = ""
58
66
  if options[:details] || options[:all]
59
- log_msg = log_entry['message'].to_s.strip
60
- else
61
- # truncate_string(log_entry['message'].to_s.split.select {|it| it.to_s.strip != "" }.first, 100)
62
- log_msg = truncate_string(log_entry['message'].to_s.gsub("\r\n", " ").gsub("\n", " "), 100)
63
- end
67
+ log_msg = log_entry['message'].to_s.strip
68
+ else
69
+ log_msg = truncate_string(log_entry['message'].to_s.strip.gsub(/\r?\n/, " "), message_col_width)
70
+ end
64
71
  out << "- #{log_msg}"
65
72
  out << table_color if table_color
66
73
  out << "\n"
@@ -71,15 +78,17 @@ module Morpheus::Cli::LogsHelper
71
78
  def format_log_table(logs, options={}, show_object=true)
72
79
  out = ""
73
80
  table_color = options.key?(:color) ? options[:color] : cyan
81
+ term_width = current_terminal_width()
82
+ message_col_width = current_terminal_width() - (show_object ? 56 : 36)
74
83
  log_columns = [
75
84
  {"LEVEL" => lambda {|log_entry| format_log_level(log_entry['level'], table_color) } },
76
85
  {"DATE" => lambda {|log_entry| log_entry['ts'] } },
77
86
  {"SOURCE" => lambda {|log_entry| "#{log_entry['typeCode']} #{log_entry['objectId']}" } },
78
87
  {"MESSAGE" => lambda {|log_entry|
79
88
  if options[:details] || options[:all]
80
- log_entry['message'].to_s
89
+ log_entry['message'].to_s.strip
81
90
  else
82
- truncate_string(log_entry['message'].to_s.split.first, 100)
91
+ truncate_string(log_entry['message'].to_s.strip.gsub(/\r?\n/, " "), message_col_width)
83
92
  end
84
93
  } }
85
94
  ]
@@ -89,7 +98,7 @@ module Morpheus::Cli::LogsHelper
89
98
  # if options[:include_fields]
90
99
  # columns = options[:include_fields]
91
100
  # end
92
- out << as_pretty_table(logs, log_columns, options.merge(responsive_table:false))
101
+ out << as_pretty_table(logs, log_columns, options.merge(wrap:true))
93
102
  # out << "\n"
94
103
  return out
95
104
  end
@@ -302,15 +302,12 @@ EOT
302
302
  # secure is the default,
303
303
  # try to only store insecure:false in the appliances config
304
304
  if url.to_s =~ /^https\:/ && secure.nil?
305
- if secure != nil
306
- new_appliance_map[:insecure] = !secure
307
- else
308
- #v_prompt = Morpheus::Cli::OptionTypes.prompt([{'fieldName' => 'secure', 'fieldLabel' => 'Secure', 'type' => 'checkbox', 'required' => false, 'defaultValue' => true, 'description' => 'Prevent insecure HTTPS communication, respect SSL errors.'}], options[:options])
309
- v_prompt = Morpheus::Cli::OptionTypes.prompt([{'fieldName' => 'insecure', 'fieldLabel' => 'Insecure (Ignore SSL Errors)', 'type' => 'checkbox', 'required' => false, 'defaultValue' => false, 'description' => 'Allow insecure HTTPS communication, ignore SSL errors.'}], options[:options])
310
- if v_prompt['insecure'].to_s == 'true' || v_prompt['insecure'].to_s == 'on'
311
- new_appliance_map[:insecure] = true
312
- end
305
+ v_prompt = Morpheus::Cli::OptionTypes.prompt([{'fieldName' => 'insecure', 'fieldLabel' => 'Insecure (Ignore SSL Errors)', 'type' => 'checkbox', 'required' => false, 'defaultValue' => false, 'description' => 'Allow insecure HTTPS communication, ignore SSL errors.'}], options[:options])
306
+ if v_prompt['insecure'].to_s == 'true' || v_prompt['insecure'].to_s == 'on'
307
+ new_appliance_map[:insecure] = true
313
308
  end
309
+ elsif secure != nil
310
+ new_appliance_map[:insecure] = !secure
314
311
  end
315
312
 
316
313
  # --use
@@ -1,6 +1,6 @@
1
1
 
2
2
  module Morpheus
3
3
  module Cli
4
- VERSION = "4.2.12"
4
+ VERSION = "4.2.13"
5
5
  end
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: morpheus-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.12
4
+ version: 4.2.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Estes
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2020-05-13 00:00:00.000000000 Z
14
+ date: 2020-05-14 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: bundler