morpheus-cli 5.3.0.3 → 5.3.1

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.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/Dockerfile +1 -1
  3. data/README.md +1 -3
  4. data/lib/morpheus/api/api_client.rb +48 -14
  5. data/lib/morpheus/api/certificate_types_interface.rb +14 -0
  6. data/lib/morpheus/api/certificates_interface.rb +9 -0
  7. data/lib/morpheus/api/integration_types_interface.rb +14 -0
  8. data/lib/morpheus/api/integrations_interface.rb +7 -22
  9. data/lib/morpheus/api/network_services_interface.rb +14 -0
  10. data/lib/morpheus/api/read_interface.rb +23 -0
  11. data/lib/morpheus/api/rest_interface.rb +12 -10
  12. data/lib/morpheus/api/roles_interface.rb +7 -0
  13. data/lib/morpheus/api/servers_interface.rb +7 -0
  14. data/lib/morpheus/api/user_settings_interface.rb +38 -18
  15. data/lib/morpheus/api/vdi_allocations_interface.rb +9 -0
  16. data/lib/morpheus/api/vdi_apps_interface.rb +9 -0
  17. data/lib/morpheus/api/vdi_gateways_interface.rb +9 -0
  18. data/lib/morpheus/api/vdi_interface.rb +28 -0
  19. data/lib/morpheus/api/vdi_pools_interface.rb +19 -0
  20. data/lib/morpheus/cli.rb +9 -2
  21. data/lib/morpheus/cli/apps.rb +59 -75
  22. data/lib/morpheus/cli/catalog_item_types_command.rb +13 -13
  23. data/lib/morpheus/cli/certificates_command.rb +575 -0
  24. data/lib/morpheus/cli/cli_command.rb +61 -6
  25. data/lib/morpheus/cli/clouds.rb +1 -0
  26. data/lib/morpheus/cli/clusters.rb +1 -1
  27. data/lib/morpheus/cli/commands/standard/man_command.rb +4 -5
  28. data/lib/morpheus/cli/hosts.rb +245 -224
  29. data/lib/morpheus/cli/instances.rb +150 -167
  30. data/lib/morpheus/cli/integrations_command.rb +588 -41
  31. data/lib/morpheus/cli/login.rb +7 -0
  32. data/lib/morpheus/cli/mixins/print_helper.rb +33 -18
  33. data/lib/morpheus/cli/mixins/provisioning_helper.rb +3 -3
  34. data/lib/morpheus/cli/mixins/vdi_helper.rb +246 -0
  35. data/lib/morpheus/cli/network_routers_command.rb +22 -9
  36. data/lib/morpheus/cli/networks_command.rb +2 -2
  37. data/lib/morpheus/cli/option_types.rb +34 -33
  38. data/lib/morpheus/cli/remote.rb +1 -1
  39. data/lib/morpheus/cli/reports_command.rb +4 -1
  40. data/lib/morpheus/cli/roles.rb +215 -55
  41. data/lib/morpheus/cli/subnets_command.rb +11 -2
  42. data/lib/morpheus/cli/user_settings_command.rb +268 -57
  43. data/lib/morpheus/cli/vdi_allocations_command.rb +159 -0
  44. data/lib/morpheus/cli/vdi_apps_command.rb +317 -0
  45. data/lib/morpheus/cli/vdi_command.rb +359 -0
  46. data/lib/morpheus/cli/vdi_gateways_command.rb +290 -0
  47. data/lib/morpheus/cli/vdi_pools_command.rb +571 -0
  48. data/lib/morpheus/cli/version.rb +1 -1
  49. data/lib/morpheus/rest_client.rb +30 -0
  50. data/lib/morpheus/terminal.rb +15 -7
  51. metadata +18 -2
@@ -1,6 +1,6 @@
1
1
 
2
2
  module Morpheus
3
3
  module Cli
4
- VERSION = "5.3.0.3"
4
+ VERSION = "5.3.1"
5
5
  end
6
6
  end
@@ -44,8 +44,22 @@ module Morpheus
44
44
  end
45
45
  query_string = params
46
46
  if query_string.respond_to?(:map)
47
+ if options[:grails_params] != false
48
+ query_string = grails_params(query_string)
49
+ end
47
50
  query_string = URI.encode_www_form(query_string)
48
51
  end
52
+ # grails expects dot notation in body params
53
+ if opts[:method] == :post || opts[:method] == :put
54
+ if opts[:headers]['Content-Type'].nil? || opts[:headers]['Content-Type'] == 'application/x-www-form-urlencoded' || opts[:headers]['Content-Type'] == 'multipart/form-data'
55
+ if opts[:payload].respond_to?(:map)
56
+ if opts[:grails_params] != false
57
+ # puts "grailsifying it!"
58
+ opts[:payload] = grails_params(opts[:payload])
59
+ end
60
+ end
61
+ end
62
+ end
49
63
  if query_string && !query_string.empty?
50
64
  opts[:url] = "#{opts[:url]}?#{query_string}"
51
65
  end
@@ -69,6 +83,22 @@ module Morpheus
69
83
  @@ssl_verification_enabled = verify
70
84
  end
71
85
 
86
+ def grails_params(data, context=nil)
87
+ params = {}
88
+ data.each do |k,v|
89
+ if v.is_a?(Hash)
90
+ params.merge!(grails_params(v, context ? "#{context}.#{k.to_s}" : k))
91
+ else
92
+ if context
93
+ params["#{context}.#{k.to_s}"] = v
94
+ else
95
+ params[k] = v
96
+ end
97
+ end
98
+ end
99
+ return params
100
+ end
101
+
72
102
  end
73
103
  end
74
104
  end
@@ -19,17 +19,25 @@ module Morpheus
19
19
  #
20
20
  # ==== Example Usage
21
21
  #
22
- # morph = Morpheus::Terminal.new
23
- # exit_code, err = morph.execute("instances list -m 10")
22
+ # require 'morpheus/terminal'
23
+ #
24
+ # # Write output to STDOUT is the default behavior
25
+ #
26
+ # terminal = Morpheus::Terminal.new
27
+ # exit_code, err = terminal.execute("instances list -m 10")
24
28
  # assert exit_code == 0
25
29
  # assert err == nil
26
30
  #
27
- # morph = Morpheus::Terminal.new(STDIN, File.new("/tmp/morph.log", "w+"))
28
- # morph.execute("hosts get 23")
31
+ # # Write command output to a file instead
32
+ # terminal = Morpheus::Terminal.new(stdout: File.new("morpheus-terminal.log", "w+"))
33
+ # terminal.execute("version")
34
+ # terminal.execute("instances list")
35
+ # terminal.execute("apps list")
29
36
  #
30
- # morph = Morpheus::Terminal.new(STDIN, File.new("/tmp/host23.json", "w"))
31
- # morph.execute("hosts get 23 --json")
32
- # puts File.read("/tmp/host23.json")
37
+ # # Overwrite file with output of a command
38
+ # terminal = Morpheus::Terminal.new(stdout: File.new("instance23.json", "w"))
39
+ # terminal.execute("instances get 23 --json")
40
+ # puts "Instance 23 Details: ", File.read("instance23.json")
33
41
  #
34
42
  class Terminal
35
43
  include Morpheus::Benchmarking::HasBenchmarking
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: 5.3.0.3
4
+ version: 5.3.1
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: 2021-04-16 00:00:00.000000000 Z
14
+ date: 2021-05-20 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: bundler
@@ -189,6 +189,8 @@ files:
189
189
  - lib/morpheus/api/blueprints_interface.rb
190
190
  - lib/morpheus/api/budgets_interface.rb
191
191
  - lib/morpheus/api/catalog_item_types_interface.rb
192
+ - lib/morpheus/api/certificate_types_interface.rb
193
+ - lib/morpheus/api/certificates_interface.rb
192
194
  - lib/morpheus/api/cloud_datastores_interface.rb
193
195
  - lib/morpheus/api/cloud_folders_interface.rb
194
196
  - lib/morpheus/api/cloud_policies_interface.rb
@@ -218,6 +220,7 @@ files:
218
220
  - lib/morpheus/api/image_builder_preseed_scripts_interface.rb
219
221
  - lib/morpheus/api/instance_types_interface.rb
220
222
  - lib/morpheus/api/instances_interface.rb
223
+ - lib/morpheus/api/integration_types_interface.rb
221
224
  - lib/morpheus/api/integrations_interface.rb
222
225
  - lib/morpheus/api/invoice_line_items_interface.rb
223
226
  - lib/morpheus/api/invoices_interface.rb
@@ -271,6 +274,7 @@ files:
271
274
  - lib/morpheus/api/provisioning_license_types_interface.rb
272
275
  - lib/morpheus/api/provisioning_licenses_interface.rb
273
276
  - lib/morpheus/api/provisioning_settings_interface.rb
277
+ - lib/morpheus/api/read_interface.rb
274
278
  - lib/morpheus/api/reports_interface.rb
275
279
  - lib/morpheus/api/rest_interface.rb
276
280
  - lib/morpheus/api/roles_interface.rb
@@ -292,6 +296,11 @@ files:
292
296
  - lib/morpheus/api/user_settings_interface.rb
293
297
  - lib/morpheus/api/user_sources_interface.rb
294
298
  - lib/morpheus/api/users_interface.rb
299
+ - lib/morpheus/api/vdi_allocations_interface.rb
300
+ - lib/morpheus/api/vdi_apps_interface.rb
301
+ - lib/morpheus/api/vdi_gateways_interface.rb
302
+ - lib/morpheus/api/vdi_interface.rb
303
+ - lib/morpheus/api/vdi_pools_interface.rb
295
304
  - lib/morpheus/api/virtual_images_interface.rb
296
305
  - lib/morpheus/api/whitelabel_settings_interface.rb
297
306
  - lib/morpheus/api/whoami_interface.rb
@@ -312,6 +321,7 @@ files:
312
321
  - lib/morpheus/cli/boot_scripts_command.rb
313
322
  - lib/morpheus/cli/budgets_command.rb
314
323
  - lib/morpheus/cli/catalog_item_types_command.rb
324
+ - lib/morpheus/cli/certificates_command.rb
315
325
  - lib/morpheus/cli/change_password_command.rb
316
326
  - lib/morpheus/cli/cli_command.rb
317
327
  - lib/morpheus/cli/cli_registry.rb
@@ -400,6 +410,7 @@ files:
400
410
  - lib/morpheus/cli/mixins/processes_helper.rb
401
411
  - lib/morpheus/cli/mixins/provisioning_helper.rb
402
412
  - lib/morpheus/cli/mixins/remote_helper.rb
413
+ - lib/morpheus/cli/mixins/vdi_helper.rb
403
414
  - lib/morpheus/cli/mixins/whoami_helper.rb
404
415
  - lib/morpheus/cli/monitoring_alerts_command.rb
405
416
  - lib/morpheus/cli/monitoring_apps_command.rb
@@ -448,6 +459,11 @@ files:
448
459
  - lib/morpheus/cli/user_settings_command.rb
449
460
  - lib/morpheus/cli/user_sources_command.rb
450
461
  - lib/morpheus/cli/users.rb
462
+ - lib/morpheus/cli/vdi_allocations_command.rb
463
+ - lib/morpheus/cli/vdi_apps_command.rb
464
+ - lib/morpheus/cli/vdi_command.rb
465
+ - lib/morpheus/cli/vdi_gateways_command.rb
466
+ - lib/morpheus/cli/vdi_pools_command.rb
451
467
  - lib/morpheus/cli/version.rb
452
468
  - lib/morpheus/cli/virtual_images.rb
453
469
  - lib/morpheus/cli/whitelabel_settings_command.rb