morpheus-cli 4.2.8 → 4.2.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. checksums.yaml +4 -4
  2. data/Dockerfile +1 -1
  3. data/lib/morpheus/api.rb +1 -1
  4. data/lib/morpheus/api/activity_interface.rb +9 -0
  5. data/lib/morpheus/api/api_client.rb +83 -27
  6. data/lib/morpheus/api/apps_interface.rb +21 -0
  7. data/lib/morpheus/api/dashboard_interface.rb +5 -21
  8. data/lib/morpheus/api/instances_interface.rb +3 -10
  9. data/lib/morpheus/api/invoice_line_items_interface.rb +14 -0
  10. data/lib/morpheus/api/invoices_interface.rb +7 -12
  11. data/lib/morpheus/api/library_layouts_interface.rb +8 -0
  12. data/lib/morpheus/api/ping_interface.rb +20 -0
  13. data/lib/morpheus/api/projects_interface.rb +33 -0
  14. data/lib/morpheus/api/setup_interface.rb +19 -36
  15. data/lib/morpheus/api/user_settings_interface.rb +0 -6
  16. data/lib/morpheus/api/whoami_interface.rb +4 -8
  17. data/lib/morpheus/benchmarking.rb +16 -26
  18. data/lib/morpheus/cli.rb +10 -5
  19. data/lib/morpheus/cli/access_token_command.rb +5 -8
  20. data/lib/morpheus/cli/activity_command.rb +146 -0
  21. data/lib/morpheus/cli/apps.rb +312 -121
  22. data/lib/morpheus/cli/archives_command.rb +1 -1
  23. data/lib/morpheus/cli/auth_command.rb +4 -11
  24. data/lib/morpheus/cli/blueprints_command.rb +196 -137
  25. data/lib/morpheus/cli/change_password_command.rb +1 -1
  26. data/lib/morpheus/cli/cli_command.rb +225 -72
  27. data/lib/morpheus/cli/cli_registry.rb +2 -2
  28. data/lib/morpheus/cli/cloud_datastores_command.rb +1 -1
  29. data/lib/morpheus/cli/clouds.rb +5 -20
  30. data/lib/morpheus/cli/clusters.rb +4 -28
  31. data/lib/morpheus/cli/commands/standard/alias_command.rb +2 -9
  32. data/lib/morpheus/cli/commands/standard/benchmark_command.rb +2 -0
  33. data/lib/morpheus/cli/commands/standard/curl_command.rb +2 -3
  34. data/lib/morpheus/cli/commands/standard/history_command.rb +3 -6
  35. data/lib/morpheus/cli/commands/standard/man_command.rb +10 -7
  36. data/lib/morpheus/cli/commands/standard/ssl_verification_command.rb +10 -9
  37. data/lib/morpheus/cli/containers_command.rb +3 -3
  38. data/lib/morpheus/cli/credentials.rb +13 -16
  39. data/lib/morpheus/cli/error_handler.rb +18 -12
  40. data/lib/morpheus/cli/errors.rb +45 -0
  41. data/lib/morpheus/cli/execute_schedules_command.rb +1 -1
  42. data/lib/morpheus/cli/execution_request_command.rb +4 -4
  43. data/lib/morpheus/cli/groups.rb +84 -132
  44. data/lib/morpheus/cli/hosts.rb +6 -16
  45. data/lib/morpheus/cli/instances.rb +100 -183
  46. data/lib/morpheus/cli/invoices_command.rb +505 -71
  47. data/lib/morpheus/cli/library_layouts_command.rb +254 -166
  48. data/lib/morpheus/cli/library_option_lists_command.rb +0 -87
  49. data/lib/morpheus/cli/library_option_types_command.rb +0 -96
  50. data/lib/morpheus/cli/license.rb +3 -0
  51. data/lib/morpheus/cli/login.rb +17 -37
  52. data/lib/morpheus/cli/logout.rb +9 -5
  53. data/lib/morpheus/cli/mixins/accounts_helper.rb +83 -7
  54. data/lib/morpheus/cli/mixins/operations_helper.rb +41 -0
  55. data/lib/morpheus/cli/mixins/option_source_helper.rb +255 -0
  56. data/lib/morpheus/cli/mixins/print_helper.rb +18 -4
  57. data/lib/morpheus/cli/mixins/provisioning_helper.rb +222 -13
  58. data/lib/morpheus/cli/mixins/remote_helper.rb +139 -0
  59. data/lib/morpheus/cli/monitoring_checks_command.rb +11 -3
  60. data/lib/morpheus/cli/network_groups_command.rb +8 -2
  61. data/lib/morpheus/cli/option_types.rb +1 -1
  62. data/lib/morpheus/cli/ping.rb +252 -0
  63. data/lib/morpheus/cli/price_sets_command.rb +16 -27
  64. data/lib/morpheus/cli/prices_command.rb +34 -27
  65. data/lib/morpheus/cli/processes_command.rb +81 -7
  66. data/lib/morpheus/cli/projects_command.rb +607 -0
  67. data/lib/morpheus/cli/recent_activity_command.rb +87 -65
  68. data/lib/morpheus/cli/remote.rb +965 -974
  69. data/lib/morpheus/cli/reports_command.rb +3 -15
  70. data/lib/morpheus/cli/roles.rb +8 -31
  71. data/lib/morpheus/cli/service_plans_command.rb +25 -31
  72. data/lib/morpheus/cli/setup.rb +392 -0
  73. data/lib/morpheus/cli/shell.rb +144 -56
  74. data/lib/morpheus/cli/subnets_command.rb +71 -11
  75. data/lib/morpheus/cli/tasks.rb +3 -3
  76. data/lib/morpheus/cli/user_sources_command.rb +4 -4
  77. data/lib/morpheus/cli/users.rb +135 -109
  78. data/lib/morpheus/cli/version.rb +1 -1
  79. data/lib/morpheus/cli/whitelabel_settings_command.rb +7 -7
  80. data/lib/morpheus/cli/whoami.rb +90 -129
  81. data/lib/morpheus/cli/wiki_command.rb +2 -14
  82. data/lib/morpheus/ext/rest_client.rb +36 -0
  83. data/lib/morpheus/formatters.rb +42 -5
  84. data/lib/morpheus/rest_client.rb +0 -10
  85. data/lib/morpheus/terminal.rb +41 -1
  86. data/lib/morpheus/util.rb +24 -0
  87. metadata +16 -3
  88. data/lib/morpheus/cli/command_error.rb +0 -22
@@ -69,16 +69,6 @@ module Morpheus
69
69
  @@ssl_verification_enabled = verify
70
70
  end
71
71
 
72
- private
73
-
74
- # unused eh?
75
- def build_request_args(url, method, payload)
76
- args = {url: url, method: method, payload: payload}
77
- unless ssl_verification_enabled?
78
- args[:verify_ssl] = OpenSSL::SSL::VERIFY_NONE
79
- end
80
- args
81
- end
82
72
  end
83
73
  end
84
74
  end
@@ -238,6 +238,21 @@ module Morpheus
238
238
  opts.on('--noprofile','--noprofile', "Do not read and execute the personal initialization script .morpheus_profile") do
239
239
  @noprofile = true
240
240
  end
241
+ # todo: make these work
242
+ # opts.on('--home','--home', "Morpheus client home directory, where configuration files are located. The default is MORPHEUS_CLI_HOME or HOME/.morpheus") do |val|
243
+ # @use_home_directory = val
244
+ # set_home_directory(@use_home_directory)
245
+ # # that it? all done...
246
+ # end
247
+ # opts.on('-Z','--temporary', "Temporary shell. Use a temporary shell with the current remote configuration, credentials and commands loaded. Configuration changes and command history will not be saved.") do
248
+ # @noprofile = true
249
+ # @temporary_shell_mode = true
250
+ # end
251
+ # opts.on('-z','--clean', "Clean shell. Use a temporary shell without any remote configuration, credentials or command history loaded.") do
252
+ # @noprofile = true
253
+ # @temporary_shell_mode = true
254
+ # @clean_shell_mode = true
255
+ # end
241
256
  opts.on('-C','--nocolor', "Disable ANSI coloring") do
242
257
  @coloring = false
243
258
  Term::ANSIColor::coloring = false
@@ -355,6 +370,29 @@ module Morpheus
355
370
  result = nil
356
371
  begin
357
372
 
373
+ # todo: no, this needs to be supported as --home for every darn command..
374
+ # add it to CliCommand build_common_options()
375
+ # use custom home directory from --home
376
+ # todo: this should happen in initialize..
377
+ # @use_home_directory
378
+ # need to get index, and delete both the switch and the arg after it
379
+ homedir = false
380
+ home_switch_index = args.index {|it| it == '--home' }
381
+ if args.find {|it| it == '--home' }
382
+ deleted_option = args.delete_at(home_switch_index)
383
+ home_dir = args.delete_at(home_switch_index)
384
+ @use_home_directory = home_dir
385
+ #puts "Setting home directory to #{@use_home_directory}"
386
+ set_home_directory(@use_home_directory)
387
+ # re-initialize some variables
388
+ # startup script
389
+ if File.exists? Morpheus::Cli::DotFile.morpheus_profile_filename
390
+ @profile_dot_file = Morpheus::Cli::DotFile.new(Morpheus::Cli::DotFile.morpheus_profile_filename)
391
+ else
392
+ @profile_dot_file = nil
393
+ end
394
+ end
395
+
358
396
  # execute startup script .morpheus_profile unless --noprofile is passed
359
397
  # todo: this should happen in initialize..
360
398
  noprofile = false
@@ -363,6 +401,7 @@ module Morpheus
363
401
  args.delete_if {|it| it == '--noprofile' }
364
402
  end
365
403
 
404
+
366
405
  if @profile_dot_file && !@profile_dot_file_has_run
367
406
  if !noprofile && File.exists?(@profile_dot_file.filename)
368
407
  execute_profile_script()
@@ -411,7 +450,7 @@ module Morpheus
411
450
  # all commands should be registered commands or aliases
412
451
  # ahh, but it could support expressions (), use -e for that ..
413
452
  # if !(Morpheus::Cli::CliRegistry.has_command?(cmd_name) || Morpheus::Cli::CliRegistry.has_alias?(cmd_name))
414
- # @stderr.puts "#{@angry_prompt}'#{cmd_name}' is not recognized. See 'morpheus --help'."
453
+ # @stderr.puts "#{@angry_prompt}'#{cmd_name}' is not recognized"
415
454
  # #@stderr.puts usage
416
455
  # return 127, nil
417
456
  # end
@@ -420,6 +459,7 @@ module Morpheus
420
459
  benchmark_name = "morpheus #{formatted_cmd}"
421
460
  benchmark_name.sub!(' -B', '')
422
461
  benchmark_name.sub!(' --benchmark', '')
462
+ #benchmark_name << " -B"
423
463
  start_benchmark(benchmark_name)
424
464
  end
425
465
 
@@ -0,0 +1,24 @@
1
+ # Provides global utility methods
2
+ # Such as opening a web browser to a url
3
+ #
4
+ module Morpheus::Util
5
+
6
+ def self.open_url_command(url)
7
+ cmd = nil
8
+ if RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/
9
+ cmd = "start #{url}"
10
+ elsif RbConfig::CONFIG['host_os'] =~ /darwin/
11
+ cmd = "open #{url}"
12
+ elsif RbConfig::CONFIG['host_os'] =~ /linux|bsd/
13
+ cmd = "xdg-open #{url}"
14
+ else
15
+ raise "open_url_command cannot determine host OS"
16
+ end
17
+ return cmd
18
+ end
19
+
20
+ def self.open_url(url)
21
+ cmd = open_url_command(url)
22
+ return system(cmd)
23
+ end
24
+ 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.8
4
+ version: 4.2.10
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-04-09 00:00:00.000000000 Z
14
+ date: 2020-05-08 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: bundler
@@ -174,6 +174,7 @@ files:
174
174
  - lib/morpheus/api.rb
175
175
  - lib/morpheus/api/account_groups_interface.rb
176
176
  - lib/morpheus/api/accounts_interface.rb
177
+ - lib/morpheus/api/activity_interface.rb
177
178
  - lib/morpheus/api/api_client.rb
178
179
  - lib/morpheus/api/appliance_settings_interface.rb
179
180
  - lib/morpheus/api/approvals_interface.rb
@@ -212,6 +213,7 @@ files:
212
213
  - lib/morpheus/api/instance_types_interface.rb
213
214
  - lib/morpheus/api/instances_interface.rb
214
215
  - lib/morpheus/api/integrations_interface.rb
216
+ - lib/morpheus/api/invoice_line_items_interface.rb
215
217
  - lib/morpheus/api/invoices_interface.rb
216
218
  - lib/morpheus/api/jobs_interface.rb
217
219
  - lib/morpheus/api/key_pairs_interface.rb
@@ -252,11 +254,13 @@ files:
252
254
  - lib/morpheus/api/option_types_interface.rb
253
255
  - lib/morpheus/api/options_interface.rb
254
256
  - lib/morpheus/api/packages_interface.rb
257
+ - lib/morpheus/api/ping_interface.rb
255
258
  - lib/morpheus/api/policies_interface.rb
256
259
  - lib/morpheus/api/power_schedules_interface.rb
257
260
  - lib/morpheus/api/price_sets_interface.rb
258
261
  - lib/morpheus/api/prices_interface.rb
259
262
  - lib/morpheus/api/processes_interface.rb
263
+ - lib/morpheus/api/projects_interface.rb
260
264
  - lib/morpheus/api/provision_types_interface.rb
261
265
  - lib/morpheus/api/provisioning_license_types_interface.rb
262
266
  - lib/morpheus/api/provisioning_licenses_interface.rb
@@ -286,6 +290,7 @@ files:
286
290
  - lib/morpheus/cli.rb
287
291
  - lib/morpheus/cli/access_token_command.rb
288
292
  - lib/morpheus/cli/account_groups_command.rb
293
+ - lib/morpheus/cli/activity_command.rb
289
294
  - lib/morpheus/cli/appliance_settings_command.rb
290
295
  - lib/morpheus/cli/approvals_command.rb
291
296
  - lib/morpheus/cli/apps.rb
@@ -303,7 +308,6 @@ files:
303
308
  - lib/morpheus/cli/cloud_resource_pools_command.rb
304
309
  - lib/morpheus/cli/clouds.rb
305
310
  - lib/morpheus/cli/clusters.rb
306
- - lib/morpheus/cli/command_error.rb
307
311
  - lib/morpheus/cli/commands/standard/alias_command.rb
308
312
  - lib/morpheus/cli/commands/standard/benchmark_command.rb
309
313
  - lib/morpheus/cli/commands/standard/cat_command.rb
@@ -334,6 +338,7 @@ files:
334
338
  - lib/morpheus/cli/dot_file.rb
335
339
  - lib/morpheus/cli/environments_command.rb
336
340
  - lib/morpheus/cli/error_handler.rb
341
+ - lib/morpheus/cli/errors.rb
337
342
  - lib/morpheus/cli/execute_schedules_command.rb
338
343
  - lib/morpheus/cli/execution_request_command.rb
339
344
  - lib/morpheus/cli/expression_parser.rb
@@ -371,9 +376,12 @@ files:
371
376
  - lib/morpheus/cli/mixins/library_helper.rb
372
377
  - lib/morpheus/cli/mixins/logs_helper.rb
373
378
  - lib/morpheus/cli/mixins/monitoring_helper.rb
379
+ - lib/morpheus/cli/mixins/operations_helper.rb
380
+ - lib/morpheus/cli/mixins/option_source_helper.rb
374
381
  - lib/morpheus/cli/mixins/print_helper.rb
375
382
  - lib/morpheus/cli/mixins/processes_helper.rb
376
383
  - lib/morpheus/cli/mixins/provisioning_helper.rb
384
+ - lib/morpheus/cli/mixins/remote_helper.rb
377
385
  - lib/morpheus/cli/mixins/whoami_helper.rb
378
386
  - lib/morpheus/cli/monitoring_alerts_command.rb
379
387
  - lib/morpheus/cli/monitoring_apps_command.rb
@@ -392,12 +400,14 @@ files:
392
400
  - lib/morpheus/cli/option_parser.rb
393
401
  - lib/morpheus/cli/option_types.rb
394
402
  - lib/morpheus/cli/packages_command.rb
403
+ - lib/morpheus/cli/ping.rb
395
404
  - lib/morpheus/cli/policies_command.rb
396
405
  - lib/morpheus/cli/power_schedules_command.rb
397
406
  - lib/morpheus/cli/preseed_scripts_command.rb
398
407
  - lib/morpheus/cli/price_sets_command.rb
399
408
  - lib/morpheus/cli/prices_command.rb
400
409
  - lib/morpheus/cli/processes_command.rb
410
+ - lib/morpheus/cli/projects_command.rb
401
411
  - lib/morpheus/cli/provisioning_licenses_command.rb
402
412
  - lib/morpheus/cli/provisioning_settings_command.rb
403
413
  - lib/morpheus/cli/recent_activity_command.rb
@@ -407,6 +417,7 @@ files:
407
417
  - lib/morpheus/cli/security_group_rules.rb
408
418
  - lib/morpheus/cli/security_groups.rb
409
419
  - lib/morpheus/cli/service_plans_command.rb
420
+ - lib/morpheus/cli/setup.rb
410
421
  - lib/morpheus/cli/shell.rb
411
422
  - lib/morpheus/cli/storage_providers_command.rb
412
423
  - lib/morpheus/cli/subnets_command.rb
@@ -424,11 +435,13 @@ files:
424
435
  - lib/morpheus/cli/workflows.rb
425
436
  - lib/morpheus/ext/hash.rb
426
437
  - lib/morpheus/ext/nil_class.rb
438
+ - lib/morpheus/ext/rest_client.rb
427
439
  - lib/morpheus/formatters.rb
428
440
  - lib/morpheus/logging.rb
429
441
  - lib/morpheus/morpkg.rb
430
442
  - lib/morpheus/rest_client.rb
431
443
  - lib/morpheus/terminal.rb
444
+ - lib/morpheus/util.rb
432
445
  - morpheus-cli.gemspec
433
446
  homepage:
434
447
  licenses:
@@ -1,22 +0,0 @@
1
- # A standard error to raise in your CliCommand classes.
2
- class Morpheus::Cli::CommandError < StandardError
3
-
4
- attr_reader :args, :exit_code
5
-
6
- # def initialize(msg, args=[], options={})
7
- # @args = args
8
- # @options = options
9
- # super(msg)
10
- # end
11
-
12
- def initialize(msg, args=[], exit_code=nil)
13
- @args = args
14
- @exit_code = exit_code
15
- super(msg)
16
- end
17
-
18
- # def inspect
19
- # to_s
20
- # end
21
-
22
- end