morpheus-cli 5.5.2.1 → 5.5.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (117) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -1
  3. data/Dockerfile +1 -1
  4. data/README.md +57 -4
  5. data/Rakefile +9 -0
  6. data/bin/morpheus +4 -4
  7. data/lib/morpheus/api/api_client.rb +8 -2
  8. data/lib/morpheus/api/archive_buckets_interface.rb +1 -1
  9. data/lib/morpheus/api/archive_files_interface.rb +3 -3
  10. data/lib/morpheus/api/clients_interface.rb +2 -2
  11. data/lib/morpheus/api/clusters_interface.rb +8 -1
  12. data/lib/morpheus/api/containers_interface.rb +29 -16
  13. data/lib/morpheus/api/custom_instance_types_interface.rb +0 -2
  14. data/lib/morpheus/api/doc_interface.rb +8 -6
  15. data/lib/morpheus/api/file_copy_request_interface.rb +1 -1
  16. data/lib/morpheus/api/health_interface.rb +1 -1
  17. data/lib/morpheus/api/image_builder_interface.rb +3 -3
  18. data/lib/morpheus/api/instances_interface.rb +25 -0
  19. data/lib/morpheus/api/logs_interface.rb +2 -4
  20. data/lib/morpheus/api/monitoring_interface.rb +6 -6
  21. data/lib/morpheus/api/packages_interface.rb +1 -1
  22. data/lib/morpheus/api/reports_interface.rb +1 -1
  23. data/lib/morpheus/api/servers_interface.rb +9 -1
  24. data/lib/morpheus/api/storage_providers_interface.rb +2 -2
  25. data/lib/morpheus/api/virtual_images_interface.rb +1 -1
  26. data/lib/morpheus/api.rb +2 -0
  27. data/lib/morpheus/benchmarking.rb +1 -1
  28. data/lib/morpheus/cli/cli_command.rb +69 -36
  29. data/lib/morpheus/cli/cli_registry.rb +19 -10
  30. data/lib/morpheus/cli/commands/access_token_command.rb +1 -1
  31. data/lib/morpheus/cli/commands/apps.rb +1 -1
  32. data/lib/morpheus/cli/commands/archives_command.rb +25 -33
  33. data/lib/morpheus/cli/commands/blueprints_command.rb +10 -21
  34. data/lib/morpheus/cli/commands/boot_scripts_command.rb +2 -2
  35. data/lib/morpheus/cli/commands/cat_command.rb +1 -1
  36. data/lib/morpheus/cli/commands/catalog_item_types_command.rb +12 -12
  37. data/lib/morpheus/cli/commands/clouds.rb +3 -3
  38. data/lib/morpheus/cli/commands/clusters.rb +154 -3
  39. data/lib/morpheus/cli/commands/containers_command.rb +398 -253
  40. data/lib/morpheus/cli/commands/deployments.rb +1 -1
  41. data/lib/morpheus/cli/commands/deploys.rb +9 -9
  42. data/lib/morpheus/cli/commands/doc.rb +15 -16
  43. data/lib/morpheus/cli/commands/execution_request_command.rb +2 -2
  44. data/lib/morpheus/cli/commands/file_copy_request_command.rb +5 -5
  45. data/lib/morpheus/cli/commands/groups.rb +2 -2
  46. data/lib/morpheus/cli/commands/health_command.rb +4 -4
  47. data/lib/morpheus/cli/commands/hosts.rb +43 -5
  48. data/lib/morpheus/cli/commands/image_builder_command.rb +1 -1
  49. data/lib/morpheus/cli/commands/instances.rb +419 -148
  50. data/lib/morpheus/cli/commands/integrations_command.rb +22 -20
  51. data/lib/morpheus/cli/commands/key_pairs.rb +2 -2
  52. data/lib/morpheus/cli/commands/library_container_scripts_command.rb +2 -2
  53. data/lib/morpheus/cli/commands/library_container_templates_command.rb +2 -2
  54. data/lib/morpheus/cli/commands/library_instance_types_command.rb +3 -3
  55. data/lib/morpheus/cli/commands/library_spec_templates_command.rb +2 -2
  56. data/lib/morpheus/cli/commands/login.rb +1 -1
  57. data/lib/morpheus/cli/commands/man_command.rb +32 -18
  58. data/lib/morpheus/cli/commands/packages_command.rb +11 -11
  59. data/lib/morpheus/cli/commands/plugins.rb +1 -1
  60. data/lib/morpheus/cli/commands/policies_command.rb +4 -4
  61. data/lib/morpheus/cli/commands/preseed_scripts_command.rb +2 -2
  62. data/lib/morpheus/cli/commands/remote.rb +1 -1
  63. data/lib/morpheus/cli/commands/reports_command.rb +3 -3
  64. data/lib/morpheus/cli/commands/roles.rb +6 -3
  65. data/lib/morpheus/cli/commands/security_groups.rb +1 -1
  66. data/lib/morpheus/cli/commands/shell.rb +40 -62
  67. data/lib/morpheus/cli/commands/snapshots.rb +3 -5
  68. data/lib/morpheus/cli/commands/source_command.rb +8 -16
  69. data/lib/morpheus/cli/commands/storage_providers_command.rb +7 -7
  70. data/lib/morpheus/cli/commands/tasks.rb +2 -2
  71. data/lib/morpheus/cli/commands/vdi_pools_command.rb +6 -6
  72. data/lib/morpheus/cli/commands/view.rb +5 -1
  73. data/lib/morpheus/cli/commands/whitelabel_settings_command.rb +4 -4
  74. data/lib/morpheus/cli/commands/whoami.rb +2 -2
  75. data/lib/morpheus/cli/credentials.rb +30 -8
  76. data/lib/morpheus/cli/dot_file.rb +8 -15
  77. data/lib/morpheus/cli/error_handler.rb +16 -0
  78. data/lib/morpheus/cli/errors.rb +8 -1
  79. data/lib/morpheus/cli/mixins/print_helper.rb +17 -13
  80. data/lib/morpheus/cli/mixins/rest_command.rb +18 -18
  81. data/lib/morpheus/cli/mixins/secondary_rest_command.rb +12 -12
  82. data/lib/morpheus/cli/option_parser.rb +5 -1
  83. data/lib/morpheus/cli/option_types.rb +59 -12
  84. data/lib/morpheus/cli/version.rb +1 -1
  85. data/lib/morpheus/cli.rb +26 -16
  86. data/lib/morpheus/ext/rest_client.rb +3 -2
  87. data/lib/morpheus/formatters.rb +1 -1
  88. data/lib/morpheus/logging.rb +4 -4
  89. data/lib/morpheus/morpkg.rb +4 -4
  90. data/lib/morpheus/rest_client.rb +2 -2
  91. data/lib/morpheus/routes.rb +2 -2
  92. data/lib/morpheus/terminal.rb +65 -16
  93. data/lib/morpheus.rb +1 -1
  94. data/morpheus-cli.gemspec +1 -0
  95. data/test/api/containers_interface_test.rb +68 -0
  96. data/test/api/doc_interface_test.rb +35 -0
  97. data/test/api/instances_interface_test.rb +22 -0
  98. data/test/api/whoami_interface_test.rb +14 -0
  99. data/test/cli/access_token_test.rb +36 -0
  100. data/test/cli/auth_test.rb +82 -0
  101. data/test/cli/cli_test.rb +48 -0
  102. data/test/cli/containers_test.rb +92 -0
  103. data/test/cli/doc_test.rb +35 -0
  104. data/test/cli/help_test.rb +25 -0
  105. data/test/cli/instances_test.rb +36 -0
  106. data/test/cli/man_test.rb +14 -0
  107. data/test/cli/remote_test.rb +89 -0
  108. data/test/cli/roles_test.rb +34 -0
  109. data/test/cli/shell_test.rb +81 -0
  110. data/test/cli/version_test.rb +23 -0
  111. data/test/cli/view_test.rb +55 -0
  112. data/test/cli/whoami_test.rb +17 -0
  113. data/test/morpheus_test.rb +16 -0
  114. data/test/test_case.rb +338 -0
  115. data/test/test_config.rb +137 -0
  116. data/test/test_data_helper.rb +97 -0
  117. metadata +61 -3
@@ -133,10 +133,12 @@ module Morpheus
133
133
  end
134
134
 
135
135
  # this returns all the options passed in by -O, parsed all nicely into objects.
136
- def parse_passed_options(options)
137
- passed_options = options[:options] ? options[:options].reject {|k,v| k.is_a?(Symbol) } : {}
136
+ def parse_passed_options(options, parse_opts={})
137
+ excludes = [parse_opts[:exclude], parse_opts[:excludes]].flatten.compact
138
+ passed_options = options[:options] ? options[:options].reject {|k,v| k.is_a?(Symbol) || excludes.include?(k) } : {}
138
139
  return passed_options
139
140
  end
141
+
140
142
  # Appends Array of OptionType definitions to an OptionParser instance
141
143
  # This adds an option like --fieldContext.fieldName="VALUE"
142
144
  # @param opts [OptionParser]
@@ -378,35 +380,53 @@ module Morpheus
378
380
  end
379
381
  options[:options] = custom_options
380
382
  end
381
- opts.on('-P','--prompt', "Always prompts. Use passed options as the default value.") do |val|
383
+ # --always-prompt can be used with for update commands where it normally defaults to --no-prompt
384
+ opts.on('--prompt', "Always prompt for input on every option, even those not prompted for by default.") do
382
385
  options[:always_prompt] = true
383
- options[:options] ||= {}
384
386
  options[:options][:always_prompt] = true
385
387
  end
386
- opts.on('-N','--no-prompt', "Skip prompts. Use default values for all optional fields.") do |val|
388
+ opts.on('-N','--no-prompt', "No prompt, skips all input prompting.") do |val|
387
389
  options[:no_prompt] = true
388
- options[:options] ||= {}
389
- options[:options][:no_prompt] = true
390
- end
391
-
392
- when :prompt
393
- opts.on('-P','--prompt', "Always prompts. Use passed options as the default value.") do |val|
394
- options[:always_prompt] = true
395
- options[:options] ||= {}
396
- options[:options][:always_prompt] = true
397
- end
398
- opts.on('-N','--no-prompt', "Skip prompts. Use default values for all optional fields.") do |val|
399
- options[:no_prompt] = true
400
- options[:options] ||= {}
401
390
  options[:options][:no_prompt] = true
402
391
  end
392
+ # opts.on('--skip-prompt x,y,z', String, "Skip prompt, do not prompt for input of the specified options.") do |val|
393
+ # options[:skip_prompt] ||= []
394
+ # options[:skip_prompt] += parse_array(val)
395
+ # options[:options][:skip_prompt] = options[:skip_prompt]
396
+ # end
397
+ # opts.on('--only-prompt x,y,z', String, "Only prompt for input on the specified options.") do |val|
398
+ # options[:only_prompt] ||= []
399
+ # options[:only_prompt] += parse_array(val)
400
+ # options[:options][:only_prompt] = options[:only_prompt]
401
+ # end
402
+ opts.on('--no-options', String, "No options, skips all option parsing so no options are required and no default values are used.") do
403
+ options[:no_options] = true
404
+ options[:options][:no_options] = options[:no_options]
405
+ end
406
+ opts.on('--skip-options x,y,z', String, "Skip parsing of the specified options so that they are not required and their default value is not used.") do |val|
407
+ options[:skip_options] ||= []
408
+ options[:skip_options] += parse_array(val)
409
+ options[:options][:skip_options] = options[:skip_options]
410
+ end
411
+ # opts.on('--only-options x,y,z', String, "Only parse the specified options and skip all others.") do |val|
412
+ # options[:only_options] ||= []
413
+ # options[:only_options] += parse_array(val)
414
+ # options[:options][:only_options] = options[:only_options]
415
+ # end
416
+
417
+ # hide these while incubating
418
+ opts.add_hidden_option('--skip-prompt')
419
+ opts.add_hidden_option('--only-prompt')
420
+ opts.add_hidden_option('--no-options')
421
+ opts.add_hidden_option('--skip-options')
422
+ opts.add_hidden_option('--only-options')
403
423
 
404
424
  when :payload
405
425
  opts.on('--payload FILE', String, "Payload from a local JSON or YAML file, skip all prompting") do |val|
406
426
  options[:payload_file] = val.to_s
407
427
  begin
408
428
  payload_file = File.expand_path(options[:payload_file])
409
- if !File.exists?(payload_file) || !File.file?(payload_file)
429
+ if !File.exist?(payload_file) || !File.file?(payload_file)
410
430
  raise ::OptionParser::InvalidOption.new("File not found: #{payload_file}")
411
431
  #return false
412
432
  end
@@ -419,10 +439,10 @@ module Morpheus
419
439
  raise ::OptionParser::InvalidOption.new("Failed to parse payload file: #{payload_file} Error: #{ex.message}")
420
440
  end
421
441
  end
422
- opts.on('--payload-dir DIRECTORY', String, "Payload from a local directory containing 1-N JSON or YAML files, skip all prompting") do |val|
442
+ opts.on('--payload-dir DIRECTORY', String, "Payload from a local directory containing 1-N JSON or YAML files, skip all prompting.") do |val|
423
443
  options[:payload_dir] = val.to_s
424
444
  payload_dir = File.expand_path(options[:payload_dir])
425
- if !Dir.exists?(payload_dir) || !File.directory?(payload_dir)
445
+ if !Dir.exist?(payload_dir) || !File.directory?(payload_dir)
426
446
  raise ::OptionParser::InvalidOption.new("Directory not found: #{payload_dir}")
427
447
  end
428
448
  payload = {}
@@ -592,7 +612,7 @@ module Morpheus
592
612
  end unless excludes.include?(:remote_token)
593
613
  opts.on( '--token-file FILE', String, "Token File, read a file containing the access token." ) do |val|
594
614
  token_file = File.expand_path(val)
595
- if !File.exists?(token_file) || !File.file?(token_file)
615
+ if !File.exist?(token_file) || !File.file?(token_file)
596
616
  raise ::OptionParser::InvalidOption.new("File not found: #{token_file}")
597
617
  end
598
618
  options[:remote_token] = File.read(token_file).to_s.split("\n").first.strip
@@ -609,7 +629,7 @@ module Morpheus
609
629
  end
610
630
  opts.on( '--password-file FILE', String, "Password File, read a file containing the password for authentication." ) do |val|
611
631
  password_file = File.expand_path(val)
612
- if !File.exists?(password_file) || !File.file?(password_file)
632
+ if !File.exist?(password_file) || !File.file?(password_file)
613
633
  raise ::OptionParser::InvalidOption.new("File not found: #{password_file}")
614
634
  end
615
635
  file_content = File.read(password_file) #.strip
@@ -914,12 +934,12 @@ module Morpheus
914
934
 
915
935
  opts.on('--hidden-help', "Print help that includes all the hidden options, like this one." ) do
916
936
  puts opts.full_help_message({show_hidden_options:true})
917
- exit # return 0 maybe?
937
+ exit 0 # return 0 maybe?
918
938
  end
919
939
  opts.add_hidden_option('--hidden-help') if opts.is_a?(Morpheus::Cli::OptionParser)
920
940
  opts.on('-h', '--help', "Print this help" ) do
921
941
  puts opts
922
- exit # return 0 maybe?
942
+ exit 0 # return 0 maybe?
923
943
  end
924
944
 
925
945
  opts
@@ -1012,9 +1032,9 @@ module Morpheus
1012
1032
  out << "\n"
1013
1033
  }
1014
1034
  end
1015
- if command_description
1035
+ if command_description && !command_description.to_s.strip.empty?
1016
1036
  out << "\n"
1017
- out << "#{command_description}\n"
1037
+ out << "#{command_description.strip}\n"
1018
1038
  end
1019
1039
  # out << "\n"
1020
1040
  out
@@ -1248,6 +1268,14 @@ module Morpheus
1248
1268
  true
1249
1269
  end
1250
1270
 
1271
+ def confirm(msg, options)
1272
+ options[:yes] or ::Morpheus::Cli::OptionTypes::confirm(msg, options)
1273
+ end
1274
+
1275
+ def confirm!(msg, options)
1276
+ confirm(msg, options) or raise CommandAborted.new("confirmation declined: #{msg}")
1277
+ end
1278
+
1251
1279
  # The default way to build options for the list command
1252
1280
  # @param [OptionParser] opts
1253
1281
  # @param [Hash] options
@@ -1449,11 +1477,11 @@ module Morpheus
1449
1477
  def validate_outfile(outfile, options)
1450
1478
  full_filename = File.expand_path(outfile)
1451
1479
  outdir = File.dirname(full_filename)
1452
- if Dir.exists?(full_filename)
1480
+ if Dir.exist?(full_filename)
1453
1481
  print_red_alert "[local-file] is invalid. It is the name of an existing directory: #{outfile}"
1454
1482
  return false
1455
1483
  end
1456
- if !Dir.exists?(outdir)
1484
+ if !Dir.exist?(outdir)
1457
1485
  if options[:mkdir]
1458
1486
  print cyan,"Creating local directory #{outdir}",reset,"\n"
1459
1487
  FileUtils.mkdir_p(outdir)
@@ -1462,7 +1490,7 @@ module Morpheus
1462
1490
  return false
1463
1491
  end
1464
1492
  end
1465
- if File.exists?(full_filename) && !options[:overwrite]
1493
+ if File.exist?(full_filename) && !options[:overwrite]
1466
1494
  print_red_alert "[local-file] is invalid. File already exists: #{outfile}\nUse -f to overwrite the existing file."
1467
1495
  return false
1468
1496
  end
@@ -1753,6 +1781,9 @@ module Morpheus
1753
1781
 
1754
1782
  module ClassMethods
1755
1783
 
1784
+ # attr_writer :command_name, :command_description, :hidden_command, :default_refresh_interval,
1785
+ # :subcommands, :hidden_subcommands, :default_subcommand, :subcommand_aliases, :subcommand_descriptions
1786
+
1756
1787
  def prog_name
1757
1788
  "morpheus"
1758
1789
  end
@@ -1779,7 +1810,11 @@ module Morpheus
1779
1810
  # alias :command_name= :set_command_name
1780
1811
 
1781
1812
  def hidden_command
1782
- !!@hidden_command
1813
+ defined?(@hidden_command) && @hidden_command == true
1814
+ end
1815
+
1816
+ def hidden_subcommands
1817
+ @hidden_subcommands ||= []
1783
1818
  end
1784
1819
 
1785
1820
  def set_subcommands_hidden(*cmds)
@@ -1791,7 +1826,7 @@ module Morpheus
1791
1826
  end
1792
1827
 
1793
1828
  def command_description
1794
- @command_description
1829
+ @command_description ||= ""
1795
1830
  end
1796
1831
 
1797
1832
  def set_command_description(val)
@@ -1880,10 +1915,8 @@ module Morpheus
1880
1915
 
1881
1916
  def visible_subcommands
1882
1917
  cmds = subcommands.clone
1883
- if @hidden_subcommands && !@hidden_subcommands.empty?
1884
- @hidden_subcommands.each do |hidden_cmd|
1885
- cmds.delete(hidden_cmd.to_s.gsub('_', '-'))
1886
- end
1918
+ hidden_subcommands.each do |hidden_cmd|
1919
+ cmds.delete(hidden_cmd.to_s.gsub('_', '-'))
1887
1920
  end
1888
1921
  cmds
1889
1922
  end
@@ -78,10 +78,17 @@ module Morpheus
78
78
 
79
79
  def exec_command(command_name, args)
80
80
  #puts "exec_command(#{command_name}, #{args})"
81
+ result = nil
81
82
  if has_alias?(command_name)
82
- exec_alias(command_name, args)
83
+ result = exec_alias(command_name, args)
83
84
  elsif has_command?(command_name)
84
- instance.get(command_name).new.handle(args)
85
+ begin
86
+ result = instance.get(command_name).new.handle(args)
87
+ rescue SystemExit => e
88
+ result = Morpheus::Cli::ErrorHandler.new(Morpheus::Terminal.instance.stderr).handle_error(e) # lol
89
+ rescue => e
90
+ result = Morpheus::Cli::ErrorHandler.new(Morpheus::Terminal.instance.stderr).handle_error(e) # lol
91
+ end
85
92
  else
86
93
  # todo: need to just return error instead of raise
87
94
  msg = "'#{command_name}' is not a morpheus command."
@@ -97,8 +104,10 @@ module Morpheus
97
104
  msg += "\t" + suggestion + "\n"
98
105
  end
99
106
  end
100
- raise CommandNotFoundError.new(msg)
107
+ #raise CommandNotFoundError.new(msg)
108
+ result = Morpheus::Cli::ErrorHandler.new(Morpheus::Terminal.instance.stderr).handle_error(CommandNotFoundError.new(msg)) # lol
101
109
  end
110
+ return result
102
111
  end
103
112
 
104
113
  def exec_alias(alias_name, args)
@@ -248,17 +257,17 @@ module Morpheus
248
257
 
249
258
  # parse any object into a command result [exit_code, error]
250
259
  # 0 means success.
251
- # This treats nil, true, or an object success.
252
- # 0 or
253
- # @return [Array] exit_code, error. Success returns [0, nil].
260
+ # This treats nil, true, or an object as success ie. [0, nil]
261
+ # and false is treated as an error [1, error]
262
+ # @return [Array] [exit_code, error]. Success returns [0, nil].
254
263
  def parse_command_result(cmd_result)
255
- exit_code, err = nil, nil
264
+ exit_code, error = nil, nil
256
265
  if cmd_result.is_a?(Array)
257
266
  exit_code = cmd_result[0] || 0
258
- err = cmd_result[1]
267
+ error = cmd_result[1]
259
268
  elsif cmd_result.is_a?(Hash)
260
269
  exit_code = cmd_result[:exit_code] || 0
261
- err = cmd_result[:error] || cmd_result[:err]
270
+ error = cmd_result[:error] || cmd_result[:err]
262
271
  elsif cmd_result == nil || cmd_result == true
263
272
  exit_code = 0
264
273
  elsif cmd_result == false
@@ -279,7 +288,7 @@ module Morpheus
279
288
  exit_code = 0
280
289
  end
281
290
  end
282
- return exit_code, err
291
+ return exit_code, error
283
292
  end
284
293
 
285
294
  def cached_command_list
@@ -116,7 +116,7 @@ class Morpheus::Cli::AccessTokenCommand
116
116
  end
117
117
  opts.on( '--token-file FILE', String, "Refresh Token File, read a file containing the refresh token." ) do |val|
118
118
  token_file = File.expand_path(val)
119
- if !File.exists?(token_file) || !File.file?(token_file)
119
+ if !File.exist?(token_file) || !File.file?(token_file)
120
120
  raise ::OptionParser::InvalidOption.new("File not found: #{token_file}")
121
121
  end
122
122
  options[:refresh_token] = File.read(token_file).to_s.split("\n").first.strip
@@ -2260,7 +2260,7 @@ EOT
2260
2260
  build_option_type_options(opts, options, update_wiki_page_option_types)
2261
2261
  opts.on('--file FILE', "File containing the wiki content. This can be used instead of --content") do |filename|
2262
2262
  full_filename = File.expand_path(filename)
2263
- if File.exists?(full_filename)
2263
+ if File.exist?(full_filename)
2264
2264
  params['content'] = File.read(full_filename)
2265
2265
  else
2266
2266
  print_red_alert "File not found: #{full_filename}"
@@ -383,7 +383,6 @@ class Morpheus::Cli::ArchivesCommand
383
383
  end
384
384
 
385
385
  def remove_bucket(args)
386
- full_command_string = "#{command_name} remove #{args.join(' ')}".strip
387
386
  options = {}
388
387
  query_params = {}
389
388
  optparse = Morpheus::Cli::OptionParser.new do |opts|
@@ -414,7 +413,7 @@ class Morpheus::Cli::ArchivesCommand
414
413
  end
415
414
  @archive_buckets_interface.setopts(options)
416
415
  if options[:dry_run]
417
- print_dry_run @archive_buckets_interface.dry.destroy(archive_bucket['id'], query_params), full_command_string
416
+ print_dry_run @archive_buckets_interface.dry.destroy(archive_bucket['id'], query_params)
418
417
  return 0
419
418
  end
420
419
  json_response = @archive_buckets_interface.destroy(archive_bucket['id'], query_params)
@@ -470,7 +469,7 @@ class Morpheus::Cli::ArchivesCommand
470
469
  puts_error "#{command_name} missing argument: [local-file]\n#{optparse}"
471
470
  return 1
472
471
  end
473
- if !File.exists?(local_file_path)
472
+ if !File.exist?(local_file_path)
474
473
  print_error Morpheus::Terminal.angry_prompt
475
474
  puts_error "#{command_name} bad argument: [local-file]\nFile '#{local_file_path}' was not found.\n#{optparse}"
476
475
  return 1
@@ -595,7 +594,7 @@ class Morpheus::Cli::ArchivesCommand
595
594
  else
596
595
 
597
596
  # upload file
598
- if !File.exists?(local_file_path) && !File.file?(local_file_path)
597
+ if !File.exist?(local_file_path) && !File.file?(local_file_path)
599
598
  print_error Morpheus::Terminal.angry_prompt
600
599
  puts_error "#{command_name} bad argument: [local-file]\nFile '#{local_file_path}' was not found.\n#{optparse}"
601
600
  return 1
@@ -886,7 +885,6 @@ class Morpheus::Cli::ArchivesCommand
886
885
  end
887
886
 
888
887
  def get_file(args)
889
- full_command_string = "#{command_name} get-file #{args.join(' ')}".strip
890
888
  options = {}
891
889
  max_links = 10
892
890
  max_history = 10
@@ -929,9 +927,9 @@ class Morpheus::Cli::ArchivesCommand
929
927
  @archive_files_interface.setopts(options)
930
928
  if options[:dry_run]
931
929
  if file_id
932
- print_dry_run @archive_files_interface.dry.get(file_id, params), full_command_string
930
+ print_dry_run @archive_files_interface.dry.get(file_id, params)
933
931
  else
934
- print_dry_run @archive_buckets_interface.dry.list_files(bucket_id, file_path, params), full_command_string
932
+ print_dry_run @archive_buckets_interface.dry.list_files(bucket_id, file_path, params)
935
933
  end
936
934
  return 0
937
935
  end
@@ -1211,7 +1209,6 @@ class Morpheus::Cli::ArchivesCommand
1211
1209
  end
1212
1210
 
1213
1211
  def download_file(args)
1214
- full_command_string = "#{command_name} download #{args.join(' ')}".strip
1215
1212
  options = {}
1216
1213
  outfile = nil
1217
1214
  do_overwrite = false
@@ -1256,15 +1253,15 @@ class Morpheus::Cli::ArchivesCommand
1256
1253
  # outfile = File.join(outfile, File.basename(full_file_path))
1257
1254
  # end
1258
1255
  outfile = File.expand_path(outfile)
1259
- if Dir.exists?(outfile)
1256
+ if Dir.exist?(outfile)
1260
1257
  outfile = File.join(outfile, File.basename(full_file_path))
1261
1258
  end
1262
- if Dir.exists?(outfile)
1259
+ if Dir.exist?(outfile)
1263
1260
  print_red_alert "[local-file] is invalid. It is the name of an existing directory: #{outfile}"
1264
1261
  return 1
1265
1262
  end
1266
1263
  destination_dir = File.dirname(outfile)
1267
- if !Dir.exists?(destination_dir)
1264
+ if !Dir.exist?(destination_dir)
1268
1265
  if do_mkdir
1269
1266
  print cyan,"Creating local directory #{destination_dir}",reset,"\n"
1270
1267
  FileUtils.mkdir_p(destination_dir)
@@ -1273,7 +1270,7 @@ class Morpheus::Cli::ArchivesCommand
1273
1270
  return 1
1274
1271
  end
1275
1272
  end
1276
- if File.exists?(outfile)
1273
+ if File.exist?(outfile)
1277
1274
  if do_overwrite
1278
1275
  # uhh need to be careful wih the passed filepath here..
1279
1276
  # don't delete, just overwrite.
@@ -1288,11 +1285,10 @@ class Morpheus::Cli::ArchivesCommand
1288
1285
  begin
1289
1286
  @archive_files_interface.setopts(options)
1290
1287
  if options[:dry_run]
1291
- # print_dry_run @archive_files_interface.dry.download_file_by_path(full_file_path), full_command_string
1292
1288
  if use_public_url
1293
- print_dry_run @archive_files_interface.dry.download_public_file_by_path_chunked(full_file_path, outfile), full_command_string
1289
+ print_dry_run @archive_files_interface.dry.download_public_file_by_path_chunked(full_file_path, outfile)
1294
1290
  else
1295
- print_dry_run @archive_files_interface.dry.download_file_by_path_chunked(full_file_path, outfile), full_command_string
1291
+ print_dry_run @archive_files_interface.dry.download_file_by_path_chunked(full_file_path, outfile)
1296
1292
  end
1297
1293
  return 0
1298
1294
  end
@@ -1322,7 +1318,7 @@ class Morpheus::Cli::ArchivesCommand
1322
1318
  print red + "ERROR" + reset + " HTTP #{http_response.code}" + "\n"
1323
1319
  end
1324
1320
  # F it, just remove a bad result
1325
- if File.exists?(outfile) && File.file?(outfile)
1321
+ if File.exist?(outfile) && File.file?(outfile)
1326
1322
  Morpheus::Logging::DarkPrinter.puts "Deleting bad file download: #{outfile}" if Morpheus::Logging.debug?
1327
1323
  File.delete(outfile)
1328
1324
  end
@@ -1348,7 +1344,6 @@ class Morpheus::Cli::ArchivesCommand
1348
1344
  end
1349
1345
 
1350
1346
  def read_file(args)
1351
- full_command_string = "archives read #{args.join(' ')}".strip
1352
1347
  options = {}
1353
1348
  outfile = nil
1354
1349
  do_overwrite = false
@@ -1374,7 +1369,7 @@ class Morpheus::Cli::ArchivesCommand
1374
1369
  full_file_path = "#{bucket_id}/#{file_path}".squeeze('/')
1375
1370
  @archive_files_interface.setopts(options)
1376
1371
  if options[:dry_run]
1377
- print_dry_run @archive_files_interface.dry.download_file_by_path(full_file_path), full_command_string
1372
+ print_dry_run @archive_files_interface.dry.download_file_by_path(full_file_path)
1378
1373
  return 1
1379
1374
  end
1380
1375
  if archive_file['rawSize'].to_i > 1024
@@ -1497,7 +1492,6 @@ class Morpheus::Cli::ArchivesCommand
1497
1492
  end
1498
1493
 
1499
1494
  def download_file_link(args)
1500
- full_command_string = "archives download-link #{args.join(' ')}".strip
1501
1495
  options = {}
1502
1496
  outfile = nil
1503
1497
  do_overwrite = false
@@ -1533,15 +1527,15 @@ class Morpheus::Cli::ArchivesCommand
1533
1527
  # full_file_path = args[0]
1534
1528
  outfile = File.expand_path(args[1])
1535
1529
  # [local-file] must include the full file name when downloading a link
1536
- # if Dir.exists?(outfile)
1530
+ # if Dir.exist?(outfile)
1537
1531
  # outfile = File.join(outfile, File.basename(archive_file['name']))
1538
1532
  # end
1539
- if Dir.exists?(outfile)
1533
+ if Dir.exist?(outfile)
1540
1534
  print_red_alert "[local-file] is invalid. It is the name of an existing directory: #{outfile}"
1541
1535
  return 1
1542
1536
  end
1543
1537
  destination_dir = File.dirname(outfile)
1544
- if !Dir.exists?(destination_dir)
1538
+ if !Dir.exist?(destination_dir)
1545
1539
  if do_mkdir
1546
1540
  print cyan,"Creating local directory #{destination_dir}",reset,"\n"
1547
1541
  FileUtils.mkdir_p(destination_dir)
@@ -1550,7 +1544,7 @@ class Morpheus::Cli::ArchivesCommand
1550
1544
  return 1
1551
1545
  end
1552
1546
  end
1553
- if File.exists?(outfile)
1547
+ if File.exist?(outfile)
1554
1548
  if do_overwrite
1555
1549
  # uhh need to be careful wih the passed filepath here..
1556
1550
  # don't delete, just overwrite.
@@ -1566,8 +1560,7 @@ class Morpheus::Cli::ArchivesCommand
1566
1560
  end
1567
1561
  @archive_files_interface.setopts(options)
1568
1562
  if options[:dry_run]
1569
- # print_dry_run @archive_files_interface.dry.download_file_by_path(full_file_path), full_command_string
1570
- print_dry_run @archive_files_interface.dry.download_file_by_link_chunked(link_key, outfile), full_command_string
1563
+ print_dry_run @archive_files_interface.dry.download_file_by_link_chunked(link_key, outfile)
1571
1564
  return 1
1572
1565
  end
1573
1566
  if !options[:quiet]
@@ -1591,7 +1584,7 @@ class Morpheus::Cli::ArchivesCommand
1591
1584
  print red + "ERROR" + reset + " HTTP #{http_response.code}" + "\n"
1592
1585
  end
1593
1586
  # F it, just remove a bad result
1594
- if File.exists?(outfile) && File.file?(outfile)
1587
+ if File.exist?(outfile) && File.file?(outfile)
1595
1588
  Morpheus::Logging::DarkPrinter.puts "Deleting bad file download: #{outfile}" if Morpheus::Logging.debug?
1596
1589
  File.delete(outfile)
1597
1590
  end
@@ -1608,7 +1601,6 @@ class Morpheus::Cli::ArchivesCommand
1608
1601
  end
1609
1602
 
1610
1603
  def download_bucket_zip(args)
1611
- full_command_string = "#{command_name} download-bucket #{args.join(' ')}".strip
1612
1604
  options = {}
1613
1605
  outfile = nil
1614
1606
  do_overwrite = false
@@ -1651,10 +1643,10 @@ class Morpheus::Cli::ArchivesCommand
1651
1643
  # outfile = File.join(outfile, archive_bucket['name'].to_s) + ".zip"
1652
1644
  # end
1653
1645
  outfile = File.expand_path(outfile)
1654
- if Dir.exists?(outfile)
1646
+ if Dir.exist?(outfile)
1655
1647
  outfile = File.join(outfile, archive_bucket['name'].to_s) + ".zip"
1656
1648
  end
1657
- if Dir.exists?(outfile)
1649
+ if Dir.exist?(outfile)
1658
1650
  print_red_alert "[local-file] is invalid. It is the name of an existing directory: #{outfile}"
1659
1651
  return 1
1660
1652
  end
@@ -1663,7 +1655,7 @@ class Morpheus::Cli::ArchivesCommand
1663
1655
  outfile << ".zip"
1664
1656
  end
1665
1657
  destination_dir = File.dirname(outfile)
1666
- if !Dir.exists?(destination_dir)
1658
+ if !Dir.exist?(destination_dir)
1667
1659
  if do_mkdir
1668
1660
  print cyan,"Creating local directory #{destination_dir}",reset,"\n"
1669
1661
  FileUtils.mkdir_p(destination_dir)
@@ -1672,7 +1664,7 @@ class Morpheus::Cli::ArchivesCommand
1672
1664
  return 1
1673
1665
  end
1674
1666
  end
1675
- if File.exists?(outfile)
1667
+ if File.exist?(outfile)
1676
1668
  if do_overwrite
1677
1669
  # uhh need to be careful wih the passed filepath here..
1678
1670
  # don't delete, just overwrite.
@@ -1686,7 +1678,7 @@ class Morpheus::Cli::ArchivesCommand
1686
1678
  end
1687
1679
  @archive_buckets_interface.setopts(options)
1688
1680
  if options[:dry_run]
1689
- print_dry_run @archive_buckets_interface.dry.download_bucket_zip_chunked(bucket_id, outfile), full_command_string
1681
+ print_dry_run @archive_buckets_interface.dry.download_bucket_zip_chunked(bucket_id, outfile)
1690
1682
  return 1
1691
1683
  end
1692
1684
  if !options[:quiet]
@@ -1707,7 +1699,7 @@ class Morpheus::Cli::ArchivesCommand
1707
1699
  print red + "ERROR" + reset + " HTTP #{http_response.code}" + "\n"
1708
1700
  end
1709
1701
  # F it, just remove a bad result
1710
- if File.exists?(outfile) && File.file?(outfile)
1702
+ if File.exist?(outfile) && File.file?(outfile)
1711
1703
  Morpheus::Logging::DarkPrinter.puts "Deleting bad file download: #{outfile}" if Morpheus::Logging.debug?
1712
1704
  File.delete(outfile)
1713
1705
  end