morpheus-cli 5.3.3 → 5.4.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (209) hide show
  1. checksums.yaml +4 -4
  2. data/Dockerfile +1 -1
  3. data/lib/morpheus/api/account_users_interface.rb +68 -0
  4. data/lib/morpheus/api/api_client.rb +75 -8
  5. data/lib/morpheus/api/audit_interface.rb +9 -0
  6. data/lib/morpheus/api/clouds_interface.rb +4 -11
  7. data/lib/morpheus/api/health_interface.rb +37 -3
  8. data/lib/morpheus/api/instances_interface.rb +21 -0
  9. data/lib/morpheus/api/load_balancer_monitors_interface.rb +9 -0
  10. data/lib/morpheus/api/load_balancer_profiles_interface.rb +9 -0
  11. data/lib/morpheus/api/load_balancer_virtual_servers_interface.rb +9 -0
  12. data/lib/morpheus/api/load_balancers_interface.rb +5 -0
  13. data/lib/morpheus/api/network_dhcp_relays_interface.rb +36 -0
  14. data/lib/morpheus/api/network_dhcp_servers_interface.rb +36 -0
  15. data/lib/morpheus/api/network_edge_clusters_interface.rb +26 -0
  16. data/lib/morpheus/api/network_routers_interface.rb +30 -0
  17. data/lib/morpheus/api/network_servers_interface.rb +98 -0
  18. data/lib/morpheus/api/network_static_routes_interface.rb +36 -0
  19. data/lib/morpheus/api/read_interface.rb +4 -3
  20. data/lib/morpheus/api/rest_interface.rb +5 -4
  21. data/lib/morpheus/api/roles_interface.rb +7 -0
  22. data/lib/morpheus/api/secondary_read_interface.rb +1 -1
  23. data/lib/morpheus/api/secondary_rest_interface.rb +19 -19
  24. data/lib/morpheus/api/storage_server_types_interface.rb +14 -0
  25. data/lib/morpheus/api/storage_servers_interface.rb +9 -0
  26. data/lib/morpheus/api/storage_volume_types_interface.rb +9 -0
  27. data/lib/morpheus/api/storage_volumes_interface.rb +9 -0
  28. data/lib/morpheus/api/users_interface.rb +16 -63
  29. data/lib/morpheus/api/virtual_servers_interface.rb +9 -0
  30. data/lib/morpheus/cli/cli_command.rb +262 -14
  31. data/lib/morpheus/cli/cli_registry.rb +2 -1
  32. data/lib/morpheus/cli/{access_token_command.rb → commands/access_token_command.rb} +1 -1
  33. data/lib/morpheus/cli/{account_groups_command.rb → commands/account_groups_command.rb} +0 -8
  34. data/lib/morpheus/cli/{activity_command.rb → commands/activity_command.rb} +0 -0
  35. data/lib/morpheus/cli/commands/{standard/alias_command.rb → alias_command.rb} +1 -4
  36. data/lib/morpheus/cli/{appliance_settings_command.rb → commands/appliance_settings_command.rb} +0 -0
  37. data/lib/morpheus/cli/{approvals_command.rb → commands/approvals_command.rb} +0 -0
  38. data/lib/morpheus/cli/{apps.rb → commands/apps.rb} +14 -87
  39. data/lib/morpheus/cli/{archives_command.rb → commands/archives_command.rb} +0 -6
  40. data/lib/morpheus/cli/commands/audit.rb +188 -0
  41. data/lib/morpheus/cli/{backup_jobs_command.rb → commands/backup_jobs_command.rb} +0 -0
  42. data/lib/morpheus/cli/{backup_settings_command.rb → commands/backup_settings_command.rb} +0 -0
  43. data/lib/morpheus/cli/{backups_command.rb → commands/backups_command.rb} +0 -0
  44. data/lib/morpheus/cli/commands/{standard/benchmark_command.rb → benchmark_command.rb} +0 -3
  45. data/lib/morpheus/cli/{blueprints_command.rb → commands/blueprints_command.rb} +1 -1
  46. data/lib/morpheus/cli/{boot_scripts_command.rb → commands/boot_scripts_command.rb} +0 -3
  47. data/lib/morpheus/cli/{budgets_command.rb → commands/budgets_command.rb} +0 -0
  48. data/lib/morpheus/cli/commands/{standard/cat_command.rb → cat_command.rb} +0 -0
  49. data/lib/morpheus/cli/{catalog_item_types_command.rb → commands/catalog_item_types_command.rb} +0 -0
  50. data/lib/morpheus/cli/{certificates_command.rb → commands/certificates_command.rb} +0 -0
  51. data/lib/morpheus/cli/commands/change_password_command.rb +132 -0
  52. data/lib/morpheus/cli/{cloud_datastores_command.rb → commands/cloud_datastores_command.rb} +0 -4
  53. data/lib/morpheus/cli/{cloud_folders_command.rb → commands/cloud_folders_command.rb} +0 -4
  54. data/lib/morpheus/cli/{cloud_resource_pools_command.rb → commands/cloud_resource_pools_command.rb} +1 -5
  55. data/lib/morpheus/cli/{clouds.rb → commands/clouds.rb} +22 -47
  56. data/lib/morpheus/cli/{clusters.rb → commands/clusters.rb} +38 -19
  57. data/lib/morpheus/cli/commands/{standard/coloring_command.rb → coloring_command.rb} +0 -2
  58. data/lib/morpheus/cli/{containers_command.rb → commands/containers_command.rb} +0 -7
  59. data/lib/morpheus/cli/commands/{standard/curl_command.rb → curl_command.rb} +0 -3
  60. data/lib/morpheus/cli/{cypher_command.rb → commands/cypher_command.rb} +0 -1
  61. data/lib/morpheus/cli/{dashboard_command.rb → commands/dashboard_command.rb} +0 -2
  62. data/lib/morpheus/cli/commands/{standard/debug_command.rb → debug_command.rb} +0 -1
  63. data/lib/morpheus/cli/{deploy.rb → commands/deploy.rb} +0 -1
  64. data/lib/morpheus/cli/{deployments.rb → commands/deployments.rb} +0 -0
  65. data/lib/morpheus/cli/{deploys.rb → commands/deploys.rb} +0 -1
  66. data/lib/morpheus/cli/{doc.rb → commands/doc.rb} +1 -1
  67. data/lib/morpheus/cli/commands/{standard/echo_command.rb → echo_command.rb} +0 -2
  68. data/lib/morpheus/cli/commands/{standard/edit_profile_command.rb → edit_profile_command.rb} +15 -4
  69. data/lib/morpheus/cli/commands/{standard/edit_rc_command.rb → edit_rc_command.rb} +19 -3
  70. data/lib/morpheus/cli/{environments_command.rb → commands/environments_command.rb} +0 -5
  71. data/lib/morpheus/cli/{execute_schedules_command.rb → commands/execute_schedules_command.rb} +0 -0
  72. data/lib/morpheus/cli/{execution_request_command.rb → commands/execution_request_command.rb} +0 -2
  73. data/lib/morpheus/cli/commands/{standard/exit_command.rb → exit_command.rb} +0 -2
  74. data/lib/morpheus/cli/{file_copy_request_command.rb → commands/file_copy_request_command.rb} +0 -4
  75. data/lib/morpheus/cli/{forgot_password.rb → commands/forgot_password.rb} +0 -0
  76. data/lib/morpheus/cli/commands/{standard/get_prompt_command.rb → get_prompt_command.rb} +0 -3
  77. data/lib/morpheus/cli/{groups.rb → commands/groups.rb} +0 -7
  78. data/lib/morpheus/cli/{guidance_command.rb → commands/guidance_command.rb} +1 -1
  79. data/lib/morpheus/cli/{health_command.rb → commands/health_command.rb} +104 -19
  80. data/lib/morpheus/cli/commands/{standard/history_command.rb → history_command.rb} +0 -3
  81. data/lib/morpheus/cli/{hosts.rb → commands/hosts.rb} +15 -25
  82. data/lib/morpheus/cli/{image_builder_command.rb → commands/image_builder_command.rb} +6 -16
  83. data/lib/morpheus/cli/{instance_types.rb → commands/instance_types.rb} +0 -3
  84. data/lib/morpheus/cli/{instances.rb → commands/instances.rb} +220 -13
  85. data/lib/morpheus/cli/{integrations_command.rb → commands/integrations_command.rb} +1 -12
  86. data/lib/morpheus/cli/{invoices_command.rb → commands/invoices_command.rb} +43 -39
  87. data/lib/morpheus/cli/{jobs_command.rb → commands/jobs_command.rb} +0 -0
  88. data/lib/morpheus/cli/{key_pairs.rb → commands/key_pairs.rb} +0 -6
  89. data/lib/morpheus/cli/{library_cluster_layouts_command.rb → commands/library_cluster_layouts_command.rb} +0 -4
  90. data/lib/morpheus/cli/{library_container_scripts_command.rb → commands/library_container_scripts_command.rb} +0 -0
  91. data/lib/morpheus/cli/{library_container_templates_command.rb → commands/library_container_templates_command.rb} +0 -1
  92. data/lib/morpheus/cli/{library_container_types_command.rb → commands/library_container_types_command.rb} +0 -4
  93. data/lib/morpheus/cli/{library_instance_types_command.rb → commands/library_instance_types_command.rb} +0 -4
  94. data/lib/morpheus/cli/{library_layouts_command.rb → commands/library_layouts_command.rb} +0 -4
  95. data/lib/morpheus/cli/{library_option_lists_command.rb → commands/library_option_lists_command.rb} +3 -7
  96. data/lib/morpheus/cli/{library_option_types_command.rb → commands/library_option_types_command.rb} +0 -4
  97. data/lib/morpheus/cli/{library_spec_templates_command.rb → commands/library_spec_templates_command.rb} +0 -1
  98. data/lib/morpheus/cli/{library_upgrades_command.rb → commands/library_upgrades_command.rb} +0 -4
  99. data/lib/morpheus/cli/{license.rb → commands/license.rb} +0 -3
  100. data/lib/morpheus/cli/commands/load_balancer_monitors.rb +70 -0
  101. data/lib/morpheus/cli/commands/load_balancer_pools.rb +90 -0
  102. data/lib/morpheus/cli/commands/load_balancer_profiles.rb +64 -0
  103. data/lib/morpheus/cli/{load_balancer_types.rb → commands/load_balancer_types.rb} +9 -8
  104. data/lib/morpheus/cli/commands/load_balancer_virtual_servers.rb +147 -0
  105. data/lib/morpheus/cli/commands/load_balancers.rb +192 -0
  106. data/lib/morpheus/cli/commands/{standard/log_level_command.rb → log_level_command.rb} +0 -3
  107. data/lib/morpheus/cli/{log_settings_command.rb → commands/log_settings_command.rb} +0 -0
  108. data/lib/morpheus/cli/{login.rb → commands/login.rb} +0 -5
  109. data/lib/morpheus/cli/commands/logout.rb +63 -0
  110. data/lib/morpheus/cli/{logs_command.rb → commands/logs_command.rb} +0 -3
  111. data/lib/morpheus/cli/commands/{standard/man_command.rb → man_command.rb} +0 -2
  112. data/lib/morpheus/cli/{monitoring_alerts_command.rb → commands/monitoring_alerts_command.rb} +0 -7
  113. data/lib/morpheus/cli/{monitoring_apps_command.rb → commands/monitoring_apps_command.rb} +0 -1
  114. data/lib/morpheus/cli/{monitoring_checks_command.rb → commands/monitoring_checks_command.rb} +0 -1
  115. data/lib/morpheus/cli/{monitoring_contacts_command.rb → commands/monitoring_contacts_command.rb} +0 -7
  116. data/lib/morpheus/cli/{monitoring_groups_command.rb → commands/monitoring_groups_command.rb} +0 -1
  117. data/lib/morpheus/cli/{monitoring_incidents_command.rb → commands/monitoring_incidents_command.rb} +0 -1
  118. data/lib/morpheus/cli/commands/network_dhcp_relays_command.rb +416 -0
  119. data/lib/morpheus/cli/commands/network_dhcp_servers_command.rb +407 -0
  120. data/lib/morpheus/cli/{network_domains_command.rb → commands/network_domains_command.rb} +0 -4
  121. data/lib/morpheus/cli/commands/network_edge_clusters_command.rb +329 -0
  122. data/lib/morpheus/cli/commands/network_firewalls_command.rb +823 -0
  123. data/lib/morpheus/cli/{network_groups_command.rb → commands/network_groups_command.rb} +0 -4
  124. data/lib/morpheus/cli/{network_pool_servers_command.rb → commands/network_pool_servers_command.rb} +0 -4
  125. data/lib/morpheus/cli/{network_pools_command.rb → commands/network_pools_command.rb} +0 -4
  126. data/lib/morpheus/cli/{network_proxies_command.rb → commands/network_proxies_command.rb} +0 -4
  127. data/lib/morpheus/cli/{network_routers_command.rb → commands/network_routers_command.rb} +387 -57
  128. data/lib/morpheus/cli/{network_services_command.rb → commands/network_services_command.rb} +0 -4
  129. data/lib/morpheus/cli/commands/network_static_routes_command.rb +446 -0
  130. data/lib/morpheus/cli/commands/network_transport_zones_command.rb +452 -0
  131. data/lib/morpheus/cli/{networks_command.rb → commands/networks_command.rb} +20 -20
  132. data/lib/morpheus/cli/commands/open_command.rb +30 -0
  133. data/lib/morpheus/cli/commands/options.rb +98 -0
  134. data/lib/morpheus/cli/{packages_command.rb → commands/packages_command.rb} +0 -2
  135. data/lib/morpheus/cli/{ping.rb → commands/ping.rb} +0 -7
  136. data/lib/morpheus/cli/{policies_command.rb → commands/policies_command.rb} +1 -8
  137. data/lib/morpheus/cli/{power_schedules_command.rb → commands/power_schedules_command.rb} +0 -0
  138. data/lib/morpheus/cli/{preseed_scripts_command.rb → commands/preseed_scripts_command.rb} +0 -3
  139. data/lib/morpheus/cli/{price_sets_command.rb → commands/price_sets_command.rb} +0 -0
  140. data/lib/morpheus/cli/{prices_command.rb → commands/prices_command.rb} +7 -7
  141. data/lib/morpheus/cli/{processes_command.rb → commands/processes_command.rb} +0 -1
  142. data/lib/morpheus/cli/{projects_command.rb → commands/projects_command.rb} +0 -0
  143. data/lib/morpheus/cli/{provisioning_licenses_command.rb → commands/provisioning_licenses_command.rb} +0 -0
  144. data/lib/morpheus/cli/{provisioning_settings_command.rb → commands/provisioning_settings_command.rb} +0 -0
  145. data/lib/morpheus/cli/{recent_activity_command.rb → commands/recent_activity_command.rb} +0 -0
  146. data/lib/morpheus/cli/{remote.rb → commands/remote.rb} +5 -9
  147. data/lib/morpheus/cli/{reports_command.rb → commands/reports_command.rb} +0 -2
  148. data/lib/morpheus/cli/commands/{standard/rm_command.rb → rm_command.rb} +0 -0
  149. data/lib/morpheus/cli/{roles.rb → commands/roles.rb} +245 -40
  150. data/lib/morpheus/cli/{search_command.rb → commands/search_command.rb} +0 -0
  151. data/lib/morpheus/cli/{security_group_rules.rb → commands/security_group_rules.rb} +0 -5
  152. data/lib/morpheus/cli/{security_groups.rb → commands/security_groups.rb} +0 -6
  153. data/lib/morpheus/cli/{service_catalog_command.rb → commands/service_catalog_command.rb} +0 -0
  154. data/lib/morpheus/cli/{service_plans_command.rb → commands/service_plans_command.rb} +0 -0
  155. data/lib/morpheus/cli/commands/{standard/set_prompt_command.rb → set_prompt_command.rb} +0 -3
  156. data/lib/morpheus/cli/{setup.rb → commands/setup.rb} +0 -0
  157. data/lib/morpheus/cli/{shell.rb → commands/shell.rb} +4 -105
  158. data/lib/morpheus/cli/commands/{standard/sleep_command.rb → sleep_command.rb} +0 -2
  159. data/lib/morpheus/cli/commands/{standard/source_command.rb → source_command.rb} +0 -2
  160. data/lib/morpheus/cli/commands/{standard/ssl_verification_command.rb → ssl_verification_command.rb} +0 -3
  161. data/lib/morpheus/cli/{storage_providers_command.rb → commands/storage_providers_command.rb} +0 -4
  162. data/lib/morpheus/cli/commands/storage_server_types.rb +50 -0
  163. data/lib/morpheus/cli/commands/storage_servers.rb +122 -0
  164. data/lib/morpheus/cli/commands/storage_volume_types.rb +50 -0
  165. data/lib/morpheus/cli/commands/storage_volumes.rb +103 -0
  166. data/lib/morpheus/cli/{subnets_command.rb → commands/subnets_command.rb} +7 -6
  167. data/lib/morpheus/cli/{tasks.rb → commands/tasks.rb} +25 -6
  168. data/lib/morpheus/cli/commands/{standard/tee_command.rb → tee_command.rb} +0 -0
  169. data/lib/morpheus/cli/{tenants_command.rb → commands/tenants_command.rb} +1 -8
  170. data/lib/morpheus/cli/commands/{standard/update_command.rb → update_command.rb} +0 -1
  171. data/lib/morpheus/cli/{usage_command.rb → commands/usage_command.rb} +0 -0
  172. data/lib/morpheus/cli/{user_groups_command.rb → commands/user_groups_command.rb} +1 -2
  173. data/lib/morpheus/cli/{user_settings_command.rb → commands/user_settings_command.rb} +2 -1
  174. data/lib/morpheus/cli/{user_sources_command.rb → commands/user_sources_command.rb} +1 -2
  175. data/lib/morpheus/cli/{users.rb → commands/users.rb} +28 -35
  176. data/lib/morpheus/cli/{vdi_allocations_command.rb → commands/vdi_allocations_command.rb} +0 -0
  177. data/lib/morpheus/cli/{vdi_apps_command.rb → commands/vdi_apps_command.rb} +0 -0
  178. data/lib/morpheus/cli/{vdi_command.rb → commands/vdi_command.rb} +0 -0
  179. data/lib/morpheus/cli/{vdi_gateways_command.rb → commands/vdi_gateways_command.rb} +0 -0
  180. data/lib/morpheus/cli/{vdi_pools_command.rb → commands/vdi_pools_command.rb} +0 -0
  181. data/lib/morpheus/cli/commands/{standard/version_command.rb → version_command.rb} +0 -0
  182. data/lib/morpheus/cli/commands/view.rb +102 -0
  183. data/lib/morpheus/cli/{virtual_images.rb → commands/virtual_images.rb} +2 -4
  184. data/lib/morpheus/cli/{whitelabel_settings_command.rb → commands/whitelabel_settings_command.rb} +0 -1
  185. data/lib/morpheus/cli/{whoami.rb → commands/whoami.rb} +0 -4
  186. data/lib/morpheus/cli/{wiki_command.rb → commands/wiki_command.rb} +0 -5
  187. data/lib/morpheus/cli/{workflows.rb → commands/workflows.rb} +0 -3
  188. data/lib/morpheus/cli/mixins/accounts_helper.rb +5 -5
  189. data/lib/morpheus/cli/mixins/load_balancers_helper.rb +26 -6
  190. data/lib/morpheus/cli/mixins/logs_helper.rb +1 -1
  191. data/lib/morpheus/cli/mixins/print_helper.rb +51 -18
  192. data/lib/morpheus/cli/mixins/processes_helper.rb +1 -2
  193. data/lib/morpheus/cli/mixins/provisioning_helper.rb +48 -17
  194. data/lib/morpheus/cli/mixins/rest_command.rb +270 -94
  195. data/lib/morpheus/cli/mixins/secondary_rest_command.rb +667 -0
  196. data/lib/morpheus/cli/mixins/storage_servers_helper.rb +156 -0
  197. data/lib/morpheus/cli/mixins/storage_volumes_helper.rb +119 -0
  198. data/lib/morpheus/cli/option_types.rb +149 -40
  199. data/lib/morpheus/cli/version.rb +1 -1
  200. data/lib/morpheus/cli.rb +6 -128
  201. data/lib/morpheus/ext/string.rb +29 -6
  202. data/lib/morpheus/routes.rb +238 -0
  203. data/lib/morpheus/terminal.rb +5 -6
  204. data/lib/morpheus/util.rb +6 -1
  205. metadata +176 -141
  206. data/lib/morpheus/cli/change_password_command.rb +0 -147
  207. data/lib/morpheus/cli/library.rb +0 -1
  208. data/lib/morpheus/cli/load_balancers.rb +0 -245
  209. data/lib/morpheus/cli/logout.rb +0 -81
@@ -1,245 +0,0 @@
1
- # require 'yaml'
2
- require 'morpheus/cli/cli_command'
3
-
4
- class Morpheus::Cli::LoadBalancers
5
- include Morpheus::Cli::CliCommand
6
- include Morpheus::Cli::RestCommand
7
- include Morpheus::Cli::LoadBalancersHelper
8
-
9
- set_command_name :'load-balancers'
10
- register_subcommands :list, :get, :add, :update, :remove
11
-
12
- # deprecated the `load-balancers types` command in 5.3.2, it moved to `load-balancer-types list`
13
- register_subcommands :types
14
- set_subcommands_hidden :types
15
-
16
- # RestCommand settings
17
- register_interfaces :load_balancers, :load_balancer_types
18
- set_rest_has_type true
19
- # set_rest_type :load_balancer_types
20
-
21
- def render_response_for_get(json_response, options)
22
- render_response(json_response, options, rest_object_key) do
23
- record = json_response[rest_object_key]
24
- print_h1 rest_label, [], options
25
- print cyan
26
- print_description_list(rest_column_definitions, record, options)
27
- # show LB Ports
28
- ports = record['ports']
29
- if ports && ports.size > 0
30
- print_h2 "LB Ports", options
31
- columns = [
32
- {"ID" => 'id'},
33
- {"Name" => 'name'},
34
- #{"Description" => 'description'},
35
- {"Port" => lambda {|it| it['port'] } },
36
- {"Protocol" => lambda {|it| it['proxyProtocol'] } },
37
- {"SSL" => lambda {|it| it['sslEnabled'] ? "Yes (#{it['sslCert'] ? it['sslCert']['name'] : 'none'})" : "No" } },
38
- ]
39
- print as_pretty_table(ports, columns, options)
40
- end
41
- print reset,"\n"
42
- end
43
- end
44
-
45
- =begin
46
-
47
- # now using RestCommand
48
-
49
- def add(args)
50
- lb_type_name = nil
51
- options = {}
52
- optparse = Morpheus::Cli::OptionParser.new do |opts|
53
- opts.banner = subcommand_usage("[name] -t LB_TYPE")
54
- opts.on( '-t', '--type CODE', "Load Balancer Type" ) do |val|
55
- lb_type_name = val
56
- end
57
- #build_option_type_options(opts, options, add_load_balancer_option_types)
58
- build_standard_add_options(opts, options)
59
- end
60
- optparse.parse!(args)
61
- lb_name = args[0]
62
- # verify_args!(args:args, optparse:optparse, min:0, max: 1)
63
- verify_args!(args:args, optparse:optparse, min:1, max: 1)
64
- if lb_type_name.nil?
65
- raise_command_error "Load Balancer Type is required.\n#{optparse}"
66
- puts optparse
67
- exit 1
68
- end
69
- connect(options)
70
- lb_type = load_balancer_type_for_name_or_id(lb_type_name)
71
- if lb_type.nil?
72
- print_red_alert "LB Type #{lb_type_name} not found!"
73
- exit 1
74
- end
75
- passed_options = parse_passed_options(options)
76
- payload = {}
77
- if options[:payload]
78
- payload = options[:payload]
79
- payload.deep_merge!({load_balancer_object_key => passed_options})
80
- else
81
- load_balancer_payload = {'name' => lb_name, 'type' => {'code' => lb_type['code'], 'id' => lb_type['id']}}
82
- load_balancer_payload.deep_merge!({load_balancer_object_key => passed_options})
83
- # options by type
84
- my_option_types = lb_type['optionTypes']
85
- if my_option_types && !my_option_types.empty?
86
- v_prompt = Morpheus::Cli::OptionTypes.prompt(my_option_types, options[:options], @api_client, options[:params])
87
- v_prompt.deep_compact!
88
- load_balancer_payload.deep_merge!(v_prompt)
89
- end
90
- payload[load_balancer_object_key] = load_balancer_payload
91
- end
92
- @load_balancers_interface.setopts(options)
93
- if options[:dry_run]
94
- print_dry_run @load_balancers_interface.dry.create(payload)
95
- return
96
- end
97
- json_response = @load_balancers_interface.create(payload)
98
- render_response(json_response, options, load_balancer_object_key) do
99
- load_balancer = json_response[load_balancer_object_key]
100
- print_green_success "Added load balancer #{load_balancer['name']}"
101
- return _get(load_balancer["id"], {}, options)
102
- end
103
- return 0, nil
104
- end
105
-
106
- def update(args)
107
- lb_name = args[0]
108
- options = {}
109
- account_name = nil
110
- optparse = Morpheus::Cli::OptionParser.new do |opts|
111
- opts.banner = subcommand_usage("[lb] [options]")
112
- build_standard_update_options(opts, options)
113
- end
114
- optparse.parse!(args)
115
- if args.count < 1
116
- puts optparse
117
- exit 1
118
- end
119
- connect(options)
120
-
121
- passed_options = parse_passed_options(options)
122
- payload = nil
123
- if options[:payload]
124
- payload = options[:payload]
125
- payload.deep_merge!({load_balancer_object_key => passed_options}) unless passed_options.empty?
126
- else
127
- load_balancer_payload = passed_options
128
- if tenants_list
129
- load_balancer_payload['accounts'] = tenants_list
130
- end
131
- # metadata tags
132
- if options[:tags]
133
- load_balancer_payload['tags'] = parse_metadata(options[:tags])
134
- else
135
- # tags = prompt_metadata(options)
136
- # payload[load_balancer_object_key]['tags'] = tags of tags
137
- end
138
- # metadata tags
139
- if options[:add_tags]
140
- load_balancer_payload['addTags'] = parse_metadata(options[:add_tags])
141
- end
142
- if options[:remove_tags]
143
- load_balancer_payload['removeTags'] = parse_metadata(options[:remove_tags])
144
- end
145
- if load_balancer_payload.empty?
146
- raise_command_error "Specify at least one option to update.\n#{optparse}"
147
- end
148
- payload = {'virtualImage' => load_balancer_payload}
149
- end
150
- @load_balancers_interface.setopts(options)
151
- if options[:dry_run]
152
- print_dry_run @load_balancers_interface.dry.update(load_balancer['id'], payload)
153
- return
154
- end
155
- json_response = @load_balancers_interface.update(load_balancer['id'], payload)
156
- render_response(json_response, options, 'virtualImage') do
157
- print_green_success "Updated virtual image #{load_balancer['name']}"
158
- _get(load_balancer["id"], {}, options)
159
- end
160
- return 0, nil
161
- end
162
-
163
- def remove(args)
164
- lb_name = args[0]
165
- options = {}
166
- optparse = Morpheus::Cli::OptionParser.new do |opts|
167
- opts.banner = subcommand_usage("[name]")
168
- build_common_options(opts, options, [:auto_confirm, :json, :dry_run, :remote])
169
- end
170
- optparse.parse!(args)
171
- if args.count < 1
172
- puts optparse
173
- exit 1
174
- end
175
- connect(options)
176
- begin
177
- lb = find_load_balancer_by_name_or_id(lb_name)
178
- exit 1 if lb.nil?
179
- unless options[:yes] || Morpheus::Cli::OptionTypes.confirm("Are you sure you want to delete the load balancer #{lb['name']}?")
180
- exit
181
- end
182
- @load_balancers_interface.setopts(options)
183
- if options[:dry_run]
184
- print_dry_run @load_balancers_interface.dry.destroy(lb['id'])
185
- return
186
- end
187
- json_response = @load_balancers_interface.destroy(lb['id'])
188
- if options[:json]
189
- print JSON.pretty_generate(json_response), "\n"
190
- else
191
- print "\n", cyan, "Load Balancer #{lb['name']} removed", reset, "\n\n"
192
- end
193
- rescue RestClient::Exception => e
194
- print_rest_exception(e, options)
195
- exit 1
196
- end
197
- end
198
- =end
199
-
200
- # deprecated, to be removed in the future.
201
- def types(args)
202
- print_error yellow,"[DEPRECATED] The command `load-balancers types` is deprecated and replaced by `load-balancer-types list`.",reset,"\n"
203
- my_terminal.execute("load-balancer-types list #{args.join(' ')}")
204
- end
205
-
206
- protected
207
-
208
- def load_balancer_list_column_definitions()
209
- {
210
- "ID" => 'id',
211
- "Name" => 'name',
212
- "Type" => lambda {|it| it['type'] ? it['type']['name'] : '' },
213
- "Cloud" => lambda {|it| it['cloud'] ? it['cloud']['name'] : '' },
214
- "Host" => lambda {|it| it['host'] }
215
- }
216
- end
217
-
218
- def load_balancer_column_definitions()
219
- {
220
- "ID" => 'id',
221
- "Name" => 'name',
222
- "Description" => 'description',
223
- "Type" => lambda {|it| it['type'] ? it['type']['name'] : '' },
224
- "Cloud" => lambda {|it| it['cloud'] ? it['cloud']['name'] : '' },
225
- "Visibility" => 'visibility',
226
- "IP" => 'ip',
227
- "Host" => 'host',
228
- "Port" => 'port',
229
- "Username" => 'username',
230
- # "SSL Enabled" => lambda {|it| format_boolean it['sslEnabled'] },
231
- # "SSL Cert" => lambda {|it| it['sslCert'] ? it['sslCert']['name'] : '' },
232
- # "SSL" => lambda {|it| it['sslEnabled'] ? "Yes (#{it['sslCert'] ? it['sslCert']['name'] : 'none'})" : "No" },
233
- "Created" => lambda {|it| format_local_dt(it['dateCreated']) },
234
- "Updated" => lambda {|it| format_local_dt(it['lastUpdated']) }
235
- }
236
- end
237
-
238
- # overridden to work with name or code
239
- def find_load_balancer_type_by_name_or_id(name)
240
- load_balancer_type_for_name_or_id(name)
241
- end
242
-
243
-
244
-
245
- end
@@ -1,81 +0,0 @@
1
- # require 'yaml'
2
- require 'io/console'
3
- require 'rest_client'
4
- require 'optparse'
5
- require 'morpheus/cli/cli_command'
6
- require 'morpheus/cli/remote'
7
- require 'morpheus/cli/credentials'
8
- require 'json'
9
-
10
- class Morpheus::Cli::Logout
11
- include Morpheus::Cli::CliCommand
12
- # include Morpheus::Cli::WhoamiHelper
13
- # include Morpheus::Cli::AccountsHelper
14
- def initialize()
15
- @appliance_name, @appliance_url = Morpheus::Cli::Remote.active_appliance
16
- end
17
-
18
- def connect(options)
19
- @api_client = establish_remote_appliance_connection(options.merge({:no_prompt => true, :skip_verify_access_token => true, :skip_login => true}))
20
- end
21
-
22
- def usage
23
- "Usage: morpheus logout"
24
- end
25
-
26
- def handle(args)
27
- logout(args)
28
- end
29
-
30
- def logout(args)
31
- options = {}
32
- optparse = Morpheus::Cli::OptionParser.new do |opts|
33
- opts.banner = usage
34
- build_common_options(opts, options, [:remote, :quiet])
35
- opts.footer = <<-EOT
36
- Logout of a remote appliance.
37
- This clears your credentials so that you will need to login again.
38
- EOT
39
- end
40
- optparse.parse!(args)
41
- verify_args!(args:args,count:0,optpare:optparse)
42
- connect(options)
43
- # establish @appliance_name, @appliance_url,
44
- #@api_client = establish_remote_appliance_connection(options.merge({:no_prompt => true, :skip_verify_access_token => true, :skip_login => true}))
45
- begin
46
- if !@appliance_name
47
- print_error Morpheus::Terminal.angry_prompt
48
- puts_error "Please specify a Morpheus Appliance to logout of with -r or see the command `remote use`"
49
- return 1
50
- end
51
- wallet = Morpheus::Cli::Credentials.new(@appliance_name, @appliance_url).load_saved_credentials
52
- token = wallet ? wallet['access_token'] : nil
53
- if !token
54
- if !options[:quiet]
55
- puts "You are not currently logged in to #{display_appliance(@appliance_name, @appliance_url)}"
56
- end
57
- else
58
- # todo: need to tell the server to delete the token too..
59
- # delete token from credentials file
60
- # note: this also handles updating appliance session info
61
- Morpheus::Cli::Credentials.new(@appliance_name, @appliance_url).logout()
62
- if !options[:quiet]
63
- puts "#{cyan}Logged out of #{@appliance_name}. Goodbye #{wallet['username']}!#{reset}"
64
- end
65
- end
66
- # recalcuate echo vars
67
- Morpheus::Cli::Echo.recalculate_variable_map()
68
- # recalculate shell prompt after this change
69
- if Morpheus::Cli::Shell.has_instance?
70
- Morpheus::Cli::Shell.instance.reinitialize()
71
- end
72
- return 0
73
- rescue RestClient::Exception => e
74
- print_rest_exception(e, options)
75
- return false
76
- end
77
-
78
- end
79
-
80
-
81
- end