morpheus-cli 5.3.2.2 → 5.4.0

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 (182) hide show
  1. checksums.yaml +4 -4
  2. data/Dockerfile +1 -1
  3. data/lib/morpheus/api/api_client.rb +26 -1
  4. data/lib/morpheus/api/clouds_interface.rb +4 -11
  5. data/lib/morpheus/api/health_interface.rb +37 -3
  6. data/lib/morpheus/api/instances_interface.rb +18 -5
  7. data/lib/morpheus/api/load_balancer_pools_interface.rb +4 -4
  8. data/lib/morpheus/api/load_balancer_profiles_interface.rb +10 -0
  9. data/lib/morpheus/api/load_balancer_virtual_servers_interface.rb +4 -4
  10. data/lib/morpheus/api/network_dhcp_relays_interface.rb +36 -0
  11. data/lib/morpheus/api/network_dhcp_servers_interface.rb +36 -0
  12. data/lib/morpheus/api/network_edge_clusters_interface.rb +26 -0
  13. data/lib/morpheus/api/network_routers_interface.rb +21 -0
  14. data/lib/morpheus/api/network_servers_interface.rb +98 -0
  15. data/lib/morpheus/api/rest_interface.rb +2 -1
  16. data/lib/morpheus/api/roles_interface.rb +7 -0
  17. data/lib/morpheus/api/virtual_images_interface.rb +23 -2
  18. data/lib/morpheus/api/virtual_servers_interface.rb +9 -0
  19. data/lib/morpheus/cli/cli_command.rb +21 -14
  20. data/lib/morpheus/cli/cli_registry.rb +56 -2
  21. data/lib/morpheus/cli/{access_token_command.rb → commands/access_token_command.rb} +1 -1
  22. data/lib/morpheus/cli/{account_groups_command.rb → commands/account_groups_command.rb} +0 -8
  23. data/lib/morpheus/cli/{activity_command.rb → commands/activity_command.rb} +0 -0
  24. data/lib/morpheus/cli/commands/{standard/alias_command.rb → alias_command.rb} +0 -3
  25. data/lib/morpheus/cli/{appliance_settings_command.rb → commands/appliance_settings_command.rb} +0 -0
  26. data/lib/morpheus/cli/{approvals_command.rb → commands/approvals_command.rb} +0 -0
  27. data/lib/morpheus/cli/{apps.rb → commands/apps.rb} +3 -11
  28. data/lib/morpheus/cli/{archives_command.rb → commands/archives_command.rb} +0 -6
  29. data/lib/morpheus/cli/{backup_jobs_command.rb → commands/backup_jobs_command.rb} +0 -0
  30. data/lib/morpheus/cli/{backup_settings_command.rb → commands/backup_settings_command.rb} +0 -0
  31. data/lib/morpheus/cli/{backups_command.rb → commands/backups_command.rb} +0 -0
  32. data/lib/morpheus/cli/commands/{standard/benchmark_command.rb → benchmark_command.rb} +0 -3
  33. data/lib/morpheus/cli/{blueprints_command.rb → commands/blueprints_command.rb} +0 -0
  34. data/lib/morpheus/cli/{boot_scripts_command.rb → commands/boot_scripts_command.rb} +0 -3
  35. data/lib/morpheus/cli/{budgets_command.rb → commands/budgets_command.rb} +0 -0
  36. data/lib/morpheus/cli/commands/{standard/cat_command.rb → cat_command.rb} +0 -0
  37. data/lib/morpheus/cli/{catalog_item_types_command.rb → commands/catalog_item_types_command.rb} +0 -0
  38. data/lib/morpheus/cli/{certificates_command.rb → commands/certificates_command.rb} +0 -0
  39. data/lib/morpheus/cli/commands/change_password_command.rb +132 -0
  40. data/lib/morpheus/cli/{cloud_datastores_command.rb → commands/cloud_datastores_command.rb} +0 -4
  41. data/lib/morpheus/cli/{cloud_folders_command.rb → commands/cloud_folders_command.rb} +0 -4
  42. data/lib/morpheus/cli/{cloud_resource_pools_command.rb → commands/cloud_resource_pools_command.rb} +170 -138
  43. data/lib/morpheus/cli/{clouds.rb → commands/clouds.rb} +22 -47
  44. data/lib/morpheus/cli/{clusters.rb → commands/clusters.rb} +51 -39
  45. data/lib/morpheus/cli/commands/{standard/coloring_command.rb → coloring_command.rb} +0 -2
  46. data/lib/morpheus/cli/{containers_command.rb → commands/containers_command.rb} +0 -7
  47. data/lib/morpheus/cli/commands/{standard/curl_command.rb → curl_command.rb} +0 -3
  48. data/lib/morpheus/cli/{cypher_command.rb → commands/cypher_command.rb} +0 -1
  49. data/lib/morpheus/cli/{dashboard_command.rb → commands/dashboard_command.rb} +0 -2
  50. data/lib/morpheus/cli/commands/{standard/debug_command.rb → debug_command.rb} +0 -1
  51. data/lib/morpheus/cli/{deploy.rb → commands/deploy.rb} +0 -1
  52. data/lib/morpheus/cli/{deployments.rb → commands/deployments.rb} +0 -0
  53. data/lib/morpheus/cli/{deploys.rb → commands/deploys.rb} +0 -1
  54. data/lib/morpheus/cli/{doc.rb → commands/doc.rb} +1 -1
  55. data/lib/morpheus/cli/commands/{standard/echo_command.rb → echo_command.rb} +0 -2
  56. data/lib/morpheus/cli/commands/{standard/edit_profile_command.rb → edit_profile_command.rb} +15 -4
  57. data/lib/morpheus/cli/commands/{standard/edit_rc_command.rb → edit_rc_command.rb} +19 -3
  58. data/lib/morpheus/cli/{environments_command.rb → commands/environments_command.rb} +0 -5
  59. data/lib/morpheus/cli/{execute_schedules_command.rb → commands/execute_schedules_command.rb} +0 -0
  60. data/lib/morpheus/cli/{execution_request_command.rb → commands/execution_request_command.rb} +0 -2
  61. data/lib/morpheus/cli/commands/{standard/exit_command.rb → exit_command.rb} +0 -2
  62. data/lib/morpheus/cli/{file_copy_request_command.rb → commands/file_copy_request_command.rb} +0 -4
  63. data/lib/morpheus/cli/{forgot_password.rb → commands/forgot_password.rb} +0 -0
  64. data/lib/morpheus/cli/commands/{standard/get_prompt_command.rb → get_prompt_command.rb} +0 -3
  65. data/lib/morpheus/cli/{groups.rb → commands/groups.rb} +0 -7
  66. data/lib/morpheus/cli/{guidance_command.rb → commands/guidance_command.rb} +1 -1
  67. data/lib/morpheus/cli/{health_command.rb → commands/health_command.rb} +104 -19
  68. data/lib/morpheus/cli/commands/{standard/history_command.rb → history_command.rb} +0 -3
  69. data/lib/morpheus/cli/{hosts.rb → commands/hosts.rb} +0 -10
  70. data/lib/morpheus/cli/{image_builder_command.rb → commands/image_builder_command.rb} +2 -8
  71. data/lib/morpheus/cli/{instance_types.rb → commands/instance_types.rb} +0 -3
  72. data/lib/morpheus/cli/{instances.rb → commands/instances.rb} +364 -148
  73. data/lib/morpheus/cli/{integrations_command.rb → commands/integrations_command.rb} +0 -0
  74. data/lib/morpheus/cli/{invoices_command.rb → commands/invoices_command.rb} +118 -134
  75. data/lib/morpheus/cli/{jobs_command.rb → commands/jobs_command.rb} +0 -0
  76. data/lib/morpheus/cli/{key_pairs.rb → commands/key_pairs.rb} +0 -6
  77. data/lib/morpheus/cli/{library_cluster_layouts_command.rb → commands/library_cluster_layouts_command.rb} +20 -4
  78. data/lib/morpheus/cli/{library_container_scripts_command.rb → commands/library_container_scripts_command.rb} +0 -0
  79. data/lib/morpheus/cli/{library_container_templates_command.rb → commands/library_container_templates_command.rb} +0 -1
  80. data/lib/morpheus/cli/{library_container_types_command.rb → commands/library_container_types_command.rb} +0 -4
  81. data/lib/morpheus/cli/{library_instance_types_command.rb → commands/library_instance_types_command.rb} +0 -4
  82. data/lib/morpheus/cli/{library_layouts_command.rb → commands/library_layouts_command.rb} +0 -4
  83. data/lib/morpheus/cli/{library_option_lists_command.rb → commands/library_option_lists_command.rb} +3 -7
  84. data/lib/morpheus/cli/{library_option_types_command.rb → commands/library_option_types_command.rb} +0 -4
  85. data/lib/morpheus/cli/{library_spec_templates_command.rb → commands/library_spec_templates_command.rb} +0 -1
  86. data/lib/morpheus/cli/{library_upgrades_command.rb → commands/library_upgrades_command.rb} +0 -4
  87. data/lib/morpheus/cli/{license.rb → commands/license.rb} +0 -3
  88. data/lib/morpheus/cli/commands/load_balancer_pools.rb +111 -0
  89. data/lib/morpheus/cli/{load_balancer_types.rb → commands/load_balancer_types.rb} +0 -4
  90. data/lib/morpheus/cli/commands/load_balancer_virtual_servers.rb +136 -0
  91. data/lib/morpheus/cli/commands/load_balancers.rb +89 -0
  92. data/lib/morpheus/cli/commands/{standard/log_level_command.rb → log_level_command.rb} +0 -3
  93. data/lib/morpheus/cli/{log_settings_command.rb → commands/log_settings_command.rb} +0 -0
  94. data/lib/morpheus/cli/{login.rb → commands/login.rb} +0 -5
  95. data/lib/morpheus/cli/commands/logout.rb +63 -0
  96. data/lib/morpheus/cli/{logs_command.rb → commands/logs_command.rb} +0 -3
  97. data/lib/morpheus/cli/commands/{standard/man_command.rb → man_command.rb} +0 -2
  98. data/lib/morpheus/cli/{monitoring_alerts_command.rb → commands/monitoring_alerts_command.rb} +0 -7
  99. data/lib/morpheus/cli/{monitoring_apps_command.rb → commands/monitoring_apps_command.rb} +0 -1
  100. data/lib/morpheus/cli/{monitoring_checks_command.rb → commands/monitoring_checks_command.rb} +2 -1
  101. data/lib/morpheus/cli/{monitoring_contacts_command.rb → commands/monitoring_contacts_command.rb} +0 -7
  102. data/lib/morpheus/cli/{monitoring_groups_command.rb → commands/monitoring_groups_command.rb} +0 -1
  103. data/lib/morpheus/cli/{monitoring_incidents_command.rb → commands/monitoring_incidents_command.rb} +0 -1
  104. data/lib/morpheus/cli/commands/network_dhcp_relays_command.rb +416 -0
  105. data/lib/morpheus/cli/commands/network_dhcp_servers_command.rb +407 -0
  106. data/lib/morpheus/cli/{network_domains_command.rb → commands/network_domains_command.rb} +0 -4
  107. data/lib/morpheus/cli/commands/network_edge_clusters_command.rb +329 -0
  108. data/lib/morpheus/cli/commands/network_firewalls_command.rb +806 -0
  109. data/lib/morpheus/cli/{network_groups_command.rb → commands/network_groups_command.rb} +0 -4
  110. data/lib/morpheus/cli/{network_pool_servers_command.rb → commands/network_pool_servers_command.rb} +0 -4
  111. data/lib/morpheus/cli/{network_pools_command.rb → commands/network_pools_command.rb} +0 -4
  112. data/lib/morpheus/cli/{network_proxies_command.rb → commands/network_proxies_command.rb} +0 -4
  113. data/lib/morpheus/cli/{network_routers_command.rb → commands/network_routers_command.rb} +291 -12
  114. data/lib/morpheus/cli/{network_services_command.rb → commands/network_services_command.rb} +0 -4
  115. data/lib/morpheus/cli/commands/network_transport_zones_command.rb +452 -0
  116. data/lib/morpheus/cli/{networks_command.rb → commands/networks_command.rb} +21 -21
  117. data/lib/morpheus/cli/{packages_command.rb → commands/packages_command.rb} +0 -2
  118. data/lib/morpheus/cli/{ping.rb → commands/ping.rb} +0 -7
  119. data/lib/morpheus/cli/{policies_command.rb → commands/policies_command.rb} +0 -7
  120. data/lib/morpheus/cli/{power_schedules_command.rb → commands/power_schedules_command.rb} +0 -0
  121. data/lib/morpheus/cli/{preseed_scripts_command.rb → commands/preseed_scripts_command.rb} +0 -3
  122. data/lib/morpheus/cli/{price_sets_command.rb → commands/price_sets_command.rb} +0 -0
  123. data/lib/morpheus/cli/{prices_command.rb → commands/prices_command.rb} +0 -0
  124. data/lib/morpheus/cli/{processes_command.rb → commands/processes_command.rb} +0 -1
  125. data/lib/morpheus/cli/{projects_command.rb → commands/projects_command.rb} +0 -0
  126. data/lib/morpheus/cli/{provisioning_licenses_command.rb → commands/provisioning_licenses_command.rb} +0 -0
  127. data/lib/morpheus/cli/{provisioning_settings_command.rb → commands/provisioning_settings_command.rb} +0 -0
  128. data/lib/morpheus/cli/{recent_activity_command.rb → commands/recent_activity_command.rb} +0 -0
  129. data/lib/morpheus/cli/{remote.rb → commands/remote.rb} +1 -7
  130. data/lib/morpheus/cli/{reports_command.rb → commands/reports_command.rb} +0 -2
  131. data/lib/morpheus/cli/commands/{standard/rm_command.rb → rm_command.rb} +0 -0
  132. data/lib/morpheus/cli/{roles.rb → commands/roles.rb} +244 -39
  133. data/lib/morpheus/cli/{search_command.rb → commands/search_command.rb} +0 -0
  134. data/lib/morpheus/cli/{security_group_rules.rb → commands/security_group_rules.rb} +0 -5
  135. data/lib/morpheus/cli/{security_groups.rb → commands/security_groups.rb} +0 -6
  136. data/lib/morpheus/cli/{service_catalog_command.rb → commands/service_catalog_command.rb} +0 -0
  137. data/lib/morpheus/cli/{service_plans_command.rb → commands/service_plans_command.rb} +0 -0
  138. data/lib/morpheus/cli/commands/{standard/set_prompt_command.rb → set_prompt_command.rb} +0 -3
  139. data/lib/morpheus/cli/{setup.rb → commands/setup.rb} +0 -0
  140. data/lib/morpheus/cli/{shell.rb → commands/shell.rb} +2 -103
  141. data/lib/morpheus/cli/commands/{standard/sleep_command.rb → sleep_command.rb} +0 -2
  142. data/lib/morpheus/cli/commands/{standard/source_command.rb → source_command.rb} +0 -2
  143. data/lib/morpheus/cli/commands/{standard/ssl_verification_command.rb → ssl_verification_command.rb} +0 -3
  144. data/lib/morpheus/cli/{storage_providers_command.rb → commands/storage_providers_command.rb} +0 -4
  145. data/lib/morpheus/cli/{subnets_command.rb → commands/subnets_command.rb} +7 -6
  146. data/lib/morpheus/cli/{tasks.rb → commands/tasks.rb} +25 -6
  147. data/lib/morpheus/cli/commands/{standard/tee_command.rb → tee_command.rb} +0 -0
  148. data/lib/morpheus/cli/{tenants_command.rb → commands/tenants_command.rb} +0 -7
  149. data/lib/morpheus/cli/commands/{standard/update_command.rb → update_command.rb} +0 -1
  150. data/lib/morpheus/cli/{usage_command.rb → commands/usage_command.rb} +0 -0
  151. data/lib/morpheus/cli/{user_groups_command.rb → commands/user_groups_command.rb} +0 -1
  152. data/lib/morpheus/cli/{user_settings_command.rb → commands/user_settings_command.rb} +0 -0
  153. data/lib/morpheus/cli/{user_sources_command.rb → commands/user_sources_command.rb} +0 -1
  154. data/lib/morpheus/cli/{users.rb → commands/users.rb} +0 -7
  155. data/lib/morpheus/cli/{vdi_allocations_command.rb → commands/vdi_allocations_command.rb} +0 -0
  156. data/lib/morpheus/cli/{vdi_apps_command.rb → commands/vdi_apps_command.rb} +0 -0
  157. data/lib/morpheus/cli/{vdi_command.rb → commands/vdi_command.rb} +0 -0
  158. data/lib/morpheus/cli/{vdi_gateways_command.rb → commands/vdi_gateways_command.rb} +0 -0
  159. data/lib/morpheus/cli/{vdi_pools_command.rb → commands/vdi_pools_command.rb} +4 -1
  160. data/lib/morpheus/cli/commands/{standard/version_command.rb → version_command.rb} +0 -0
  161. data/lib/morpheus/cli/{virtual_images.rb → commands/virtual_images.rb} +251 -33
  162. data/lib/morpheus/cli/{whitelabel_settings_command.rb → commands/whitelabel_settings_command.rb} +0 -1
  163. data/lib/morpheus/cli/{whoami.rb → commands/whoami.rb} +0 -4
  164. data/lib/morpheus/cli/{wiki_command.rb → commands/wiki_command.rb} +0 -5
  165. data/lib/morpheus/cli/{workflows.rb → commands/workflows.rb} +0 -3
  166. data/lib/morpheus/cli/mixins/load_balancers_helper.rb +2 -2
  167. data/lib/morpheus/cli/mixins/logs_helper.rb +1 -1
  168. data/lib/morpheus/cli/mixins/print_helper.rb +1 -0
  169. data/lib/morpheus/cli/mixins/provisioning_helper.rb +155 -112
  170. data/lib/morpheus/cli/mixins/rest_command.rb +154 -52
  171. data/lib/morpheus/cli/mixins/secondary_rest_command.rb +575 -0
  172. data/lib/morpheus/cli/option_parser.rb +25 -17
  173. data/lib/morpheus/cli/option_types.rb +96 -32
  174. data/lib/morpheus/cli/version.rb +1 -1
  175. data/lib/morpheus/cli.rb +5 -128
  176. data/lib/morpheus/terminal.rb +5 -6
  177. data/morpheus-cli.gemspec +1 -1
  178. metadata +156 -143
  179. data/lib/morpheus/cli/change_password_command.rb +0 -147
  180. data/lib/morpheus/cli/library.rb +0 -1
  181. data/lib/morpheus/cli/load_balancers.rb +0 -245
  182. 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