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,6 +1,4 @@
1
- require 'fileutils'
2
1
  require 'morpheus/cli/cli_command'
3
- require 'morpheus/cli/mixins/library_helper'
4
2
  require 'morpheus/morpkg'
5
3
 
6
4
  class Morpheus::Cli::PackagesCommand
@@ -1,11 +1,4 @@
1
- # require 'yaml'
2
- require 'io/console'
3
- require 'rest_client'
4
- require 'optparse'
5
1
  require 'morpheus/cli/cli_command'
6
- require 'morpheus/cli/mixins/whoami_helper'
7
- require 'morpheus/cli/mixins/accounts_helper'
8
- require 'json'
9
2
 
10
3
  class Morpheus::Cli::Ping
11
4
  include Morpheus::Cli::CliCommand
@@ -1,11 +1,4 @@
1
- require 'json'
2
- require 'yaml'
3
- require 'rest_client'
4
- require 'optparse'
5
- require 'filesize'
6
1
  require 'morpheus/cli/cli_command'
7
- require 'morpheus/cli/mixins/infrastructure_helper'
8
- require 'morpheus/cli/mixins/accounts_helper'
9
2
 
10
3
  class Morpheus::Cli::PoliciesCommand
11
4
  include Morpheus::Cli::CliCommand
@@ -31,7 +24,7 @@ class Morpheus::Cli::PoliciesCommand
31
24
  @cloud_policies_interface = @api_client.cloud_policies
32
25
  @clouds_interface = @api_client.clouds
33
26
  @groups_interface = @api_client.groups
34
- @users_interface = @api_client.users
27
+ @account_users_interface = @api_client.account_users
35
28
  @roles_interface = @api_client.roles
36
29
  @active_group_id = Morpheus::Cli::Groups.active_groups[@appliance_name]
37
30
  end
@@ -1,6 +1,3 @@
1
- require 'rest_client'
2
- require 'optparse'
3
- require 'filesize'
4
1
  require 'morpheus/cli/cli_command'
5
2
 
6
3
  class Morpheus::Cli::PreseedScriptsCommand
@@ -211,11 +211,11 @@ class Morpheus::Cli::PricesCommand
211
211
  raise_command_error "Invalid price unit '#{val}'. Available price units: #{price_units.join(', ')}"
212
212
  end
213
213
  end
214
- opts.on("--platform [PLATFORM]", String, "Price platform [linux|windows]. Required for platform price type") do |val|
215
- if ['linux', 'windows'].include?(val)
214
+ opts.on("--platform [PLATFORM]", String, "Price platform [centos|debian|fedora|canonical|opensuse|redhat|suse|xen|linux|windows]. Required for platform price type") do |val|
215
+ if ['centos','debian','fedora','canonical','opensuse','redhat','suse','xen','linux', 'windows'].include?(val)
216
216
  params['platform'] = val
217
217
  else
218
- raise_command_error "Invalid platform '#{val}'. Available platforms: linux, windows"
218
+ raise_command_error "Invalid platform '#{val}'. Available platforms/vendors: centos, debian, fedora, canonical, opensuse, redhat, suse, xen, linux, windows"
219
219
  end
220
220
  end
221
221
  opts.on("--software [TEXT]", String, "Price software. Required for software price type") do |val|
@@ -375,11 +375,11 @@ class Morpheus::Cli::PricesCommand
375
375
  raise_command_error "Invalid price unit '#{val}'. Available price units: #{price_units.join(', ')}"
376
376
  end
377
377
  end
378
- opts.on("--platform [PLATFORM]", String, "Price platform [linux|windows]. Required for platform price type") do |val|
379
- if ['linux', 'windows'].include?(val)
378
+ opts.on("--platform [PLATFORM]", String, "Price platform [centos|debian|fedora|canonical|opensuse|redhat|suse|xen|linux|windows]. Required for platform price type") do |val|
379
+ if ['centos','debian','fedora','canonical','opensuse','redhat','suse','xen','linux', 'windows'].include?(val)
380
380
  params['platform'] = val
381
381
  else
382
- raise_command_error "Invalid platform '#{val}'. Available platforms: linux, windows"
382
+ raise_command_error "Invalid platform '#{val}'. Available platforms: centos, debian, fedora, canonical, opensuse, redhat, suse, xen, linux, windows"
383
383
  end
384
384
  end
385
385
  opts.on("--software [TEXT]", String, "Price software. Required for software price type") do |val|
@@ -614,7 +614,7 @@ class Morpheus::Cli::PricesCommand
614
614
  def prompt_for_price_type(params, options, price={})
615
615
  case params['priceType']
616
616
  when 'platform'
617
- params['platform'] ||= price['platform'] || Morpheus::Cli::OptionTypes.prompt([{'fieldName' => 'platform', 'type' => 'select', 'fieldLabel' => 'Platform', 'required' => true, 'description' => 'Select platform for platform price type', 'selectOptions' => [{'name' => 'Linux', 'value' => 'linux'}, {'name' => 'Windows', 'value' => 'windows'}]}], options[:options], @api_client, {}, options[:no_prompt])['platform']
617
+ params['platform'] ||= price['platform'] || Morpheus::Cli::OptionTypes.prompt([{'fieldName' => 'platform', 'type' => 'select', 'fieldLabel' => 'Platform', 'required' => true, 'description' => 'Select platform for platform price type', 'selectOptions' => [ {'name' => 'CentOS', 'value' => 'centos'}, {'name' => 'Debian', 'value' => 'debian'}, {'name' => 'Fedora', 'value' => 'fedora'}, {'name' => 'Canonical', 'value' => 'canonical'}, {'name' => 'openSUSE', 'value' => 'opensuse'}, {'name' => 'Red Hat', 'value' => 'redhat'}, {'name' => 'SUSE', 'value' => 'suse'}, {'name' => 'Xen', 'value' => 'xen'}, {'name' => 'Linux', 'value' => 'linux'}, {'name' => 'Windows', 'value' => 'windows'}]}], options[:options], @api_client, {}, options[:no_prompt])['platform']
618
618
  when 'software'
619
619
  params['software'] ||= price['software'] || Morpheus::Cli::OptionTypes.prompt([{'fieldName' => 'software', 'type' => 'text', 'fieldLabel' => 'Software', 'required' => true, 'description' => 'Set software for software price type'}], options[:options], @api_client,{}, options[:no_prompt])['software']
620
620
  when 'datastore'
@@ -1,5 +1,4 @@
1
1
  require 'morpheus/cli/cli_command'
2
- require 'morpheus/cli/mixins/processes_helper'
3
2
 
4
3
  class Morpheus::Cli::Processes
5
4
  include Morpheus::Cli::CliCommand
@@ -1,11 +1,5 @@
1
- require 'fileutils'
2
- require 'ostruct'
3
- require 'yaml'
4
- require 'io/console'
5
- require 'rest_client'
6
- require 'net/https'
7
- require 'optparse'
8
1
  require 'morpheus/cli/cli_command'
2
+ require 'net/https' # needed?
9
3
 
10
4
 
11
5
  class Morpheus::Cli::Remote
@@ -23,7 +17,8 @@ class Morpheus::Cli::Remote
23
17
 
24
18
  set_default_subcommand :list
25
19
 
26
- set_subcommands_hidden :setup # this is going away too
20
+ set_subcommands_hidden :setup # moved to 'setup'
21
+ set_subcommands_hidden :view # moved to 'view'
27
22
 
28
23
  def initialize()
29
24
  @appliance_name, @appliance_url = Morpheus::Cli::Remote.active_appliance
@@ -901,6 +896,7 @@ EOT
901
896
  end
902
897
 
903
898
  def view(args)
899
+ print_error "#{yellow}DEPRECATION WARNING: `remote view` has been deprecated and replaced with `view`. Please use `view` instead.#{reset}\n"
904
900
  options = {}
905
901
  path = "/"
906
902
  no_auth = false
@@ -909,7 +905,7 @@ EOT
909
905
  opts.on('--path PATH', String, "Specify a path to load. eg '/logs'" ) do |val|
910
906
  path = val
911
907
  end
912
- opts.on('--no-auth PATH', String, "Do not attempt to login with access token." ) do |val|
908
+ opts.on('--no-auth', "Do not attempt to login with access token." ) do |val|
913
909
  no_auth = true
914
910
  end
915
911
  build_common_options(opts, options, [:dry_run])
@@ -1,6 +1,4 @@
1
- require 'optparse'
2
1
  require 'morpheus/cli/cli_command'
3
- require 'json'
4
2
 
5
3
  class Morpheus::Cli::ReportsCommand
6
4
  include Morpheus::Cli::CliCommand
@@ -1,26 +1,26 @@
1
- # require 'yaml'
2
- require 'io/console'
3
- require 'rest_client'
4
- require 'optparse'
5
1
  require 'morpheus/cli/cli_command'
6
- require 'morpheus/cli/option_types'
7
- require 'morpheus/cli/mixins/accounts_helper'
8
- require 'morpheus/cli/mixins/provisioning_helper'
9
- require 'json'
10
2
 
11
3
  class Morpheus::Cli::Roles
12
4
  include Morpheus::Cli::CliCommand
13
5
  include Morpheus::Cli::AccountsHelper
14
6
  include Morpheus::Cli::ProvisioningHelper
15
7
  include Morpheus::Cli::WhoamiHelper
16
- register_subcommands :list, :get, :add, :update, :remove, :'list-permissions', :'update-feature-access', :'update-global-group-access', :'update-group-access', :'update-global-cloud-access', :'update-cloud-access', :'update-global-instance-type-access', :'update-instance-type-access', :'update-global-blueprint-access', :'update-blueprint-access', :'update-global-catalog-item-type-access', :'update-catalog-item-type-access', :'update-persona-access', :'update-global-vdi-pool-access', :'update-vdi-pool-access'
8
+ register_subcommands :list, :get, :add, :update, :remove,
9
+ :'list-permissions', :'update-feature-access', :'update-global-group-access',
10
+ :'update-group-access', :'update-global-cloud-access', :'update-cloud-access',
11
+ :'update-global-instance-type-access', :'update-instance-type-access',
12
+ :'update-global-blueprint-access', :'update-blueprint-access',
13
+ :'update-global-catalog-item-type-access', :'update-catalog-item-type-access',
14
+ :'update-persona-access',
15
+ :'update-global-vdi-pool-access', :'update-vdi-pool-access',
16
+ :'update-global-report-type-access', :'update-report-type-access'
17
17
  alias_subcommand :details, :get
18
18
  set_default_subcommand :list
19
19
 
20
20
  def connect(opts)
21
21
  @api_client = establish_remote_appliance_connection(opts)
22
22
  @whoami_interface = @api_client.whoami
23
- @users_interface = @api_client.users
23
+ @account_users_interface = @api_client.account_users
24
24
  @accounts_interface = @api_client.accounts
25
25
  @roles_interface = @api_client.roles
26
26
  @groups_interface = @api_client.groups
@@ -110,6 +110,9 @@ class Morpheus::Cli::Roles
110
110
  opts.on(nil,'--vdi-pool-access', "Display VDI Pool Access") do
111
111
  options[:include_vdi_pool_access] = true
112
112
  end
113
+ opts.on(nil,'--report-type-access', "Display Report Type Access") do
114
+ options[:include_report_type_access] = true
115
+ end
113
116
  opts.on('-a','--all', "Display All Access Lists") do
114
117
  options[:include_feature_access] = true
115
118
  options[:include_group_access] = true
@@ -119,6 +122,7 @@ class Morpheus::Cli::Roles
119
122
  options[:include_catalog_item_type_access] = true
120
123
  options[:include_personas_access] = true
121
124
  options[:include_vdi_pool_access] = true
125
+ options[:include_report_type_access] = true
122
126
  end
123
127
  build_standard_get_options(opts, options)
124
128
  opts.footer = <<-EOT
@@ -225,6 +229,7 @@ EOT
225
229
  "Blueprints" => lambda {|it| get_access_string(it['globalAppTemplateAccess'] || it['globalBlueprintAccess']) },
226
230
  "Catalog Item Types" => lambda {|it| get_access_string(it['globalCatalogItemTypeAccess']) },
227
231
  "VDI Pools" => lambda {|it| get_access_string(it['globalVdiPoolAccess']) },
232
+ "Report Types" => lambda {|it| get_access_string(it['globalReportTypeAccess']) },
228
233
  }
229
234
  if role['roleType'].to_s.downcase == 'account'
230
235
  global_access_columns.delete("Groups")
@@ -378,7 +383,7 @@ EOT
378
383
  rows = vdi_pool_permissions.collect do |it|
379
384
  {
380
385
  name: it['name'],
381
- access: format_access_string(it['access'], ["none","read","full"]),
386
+ access: format_access_string(it['access'], ["none","full"]),
382
387
  }
383
388
  end
384
389
  print as_pretty_table(rows, [:name, :access], options)
@@ -390,6 +395,27 @@ EOT
390
395
  # print cyan,bold,"VDI Pool Access: #{get_access_string(json_response['globalVdiPoolAccess'])}",reset,"\n"
391
396
  end
392
397
 
398
+ report_type_global_access = json_response['globalReportTypeAccess']
399
+ report_type_permissions = json_response['reportTypePermissions'] || []
400
+ print cyan
401
+ if report_type_global_access == 'custom'
402
+ print_h2 "Report Type Access", options
403
+ if options[:include_report_type_access]
404
+ rows = report_type_permissions.collect do |it|
405
+ {
406
+ name: it['name'],
407
+ access: format_access_string(it['access'], ["none","full"]),
408
+ }
409
+ end
410
+ print as_pretty_table(rows, [:name, :access], options)
411
+ else
412
+ print cyan,"Use --report-type-access to list custom access","\n"
413
+ end
414
+ else
415
+ # print "\n"
416
+ # print cyan,bold,"Report Type Access: #{get_access_string(json_response['globalReportTypeAccess'])}",reset,"\n"
417
+ end
418
+
393
419
  end
394
420
  print reset,"\n"
395
421
 
@@ -765,6 +791,11 @@ EOT
765
791
  optparse = Morpheus::Cli::OptionParser.new do |opts|
766
792
  opts.banner = subcommand_usage("[name] [full|read|custom|none]")
767
793
  build_common_options(opts, options, [:json, :dry_run, :remote])
794
+ opts.footer = <<-EOT
795
+ Update global group access for a role.
796
+ [role] is required. This is the name (authority) or id of a role.
797
+ [access] is required. This is the access level to assign: full, read, custom or none.
798
+ EOT
768
799
  end
769
800
  optparse.parse!(args)
770
801
 
@@ -844,16 +875,14 @@ EOT
844
875
  access_value = args[2] if args[2]
845
876
  end
846
877
  if !group_id && !do_all
847
- raise_command_error("missing required argument: [group] or --all", optparse)
878
+ raise_command_error("missing required argument: [group] or --all", args, optparse)
848
879
  end
849
880
  if !access_value
850
- raise_command_error("missing required argument: [access]", optparse)
881
+ raise_command_error("missing required argument: [access]", args, optparse)
851
882
  end
852
883
  access_value = access_value.to_s.downcase
853
884
  if !allowed_access_values.include?(access_value)
854
- raise_command_error("invalid access value: #{access_value}", optparse)
855
- puts optparse
856
- return 1
885
+ raise_command_error("invalid access value: #{access_value}", args, optparse)
857
886
  end
858
887
 
859
888
  connect(options)
@@ -915,6 +944,11 @@ EOT
915
944
  optparse = Morpheus::Cli::OptionParser.new do |opts|
916
945
  opts.banner = subcommand_usage("[name] [full|custom|none]")
917
946
  build_common_options(opts, options, [:json, :dry_run, :remote])
947
+ opts.footer = <<-EOT
948
+ Update global cloud access for a role.
949
+ [role] is required. This is the name (authority) or id of a role.
950
+ [access] is required. This is the access level to assign: full, custom or none.
951
+ EOT
918
952
  end
919
953
  optparse.parse!(args)
920
954
 
@@ -993,16 +1027,14 @@ EOT
993
1027
  access_value = args[2] if args[2]
994
1028
  end
995
1029
  if !cloud_id && !do_all
996
- raise_command_error("missing required argument: [cloud] or --all", optparse)
1030
+ raise_command_error("missing required argument: [cloud] or --all", args, optparse)
997
1031
  end
998
1032
  if !access_value
999
- raise_command_error("missing required argument: [access]", optparse)
1033
+ raise_command_error("missing required argument: [access]", args, optparse)
1000
1034
  end
1001
1035
  access_value = access_value.to_s.downcase
1002
1036
  if !allowed_access_values.include?(access_value)
1003
- raise_command_error("invalid access value: #{access_value}", optparse)
1004
- puts optparse
1005
- return 1
1037
+ raise_command_error("invalid access value: #{access_value}", args, optparse)
1006
1038
  end
1007
1039
 
1008
1040
  connect(options)
@@ -1063,6 +1095,11 @@ EOT
1063
1095
  optparse = Morpheus::Cli::OptionParser.new do |opts|
1064
1096
  opts.banner = subcommand_usage("[role] [full|custom|none]")
1065
1097
  build_common_options(opts, options, [:json, :dry_run, :remote])
1098
+ opts.footer = <<-EOT
1099
+ Update global instance type access for a role.
1100
+ [role] is required. This is the name (authority) or id of a role.
1101
+ [access] is required. This is the access level to assign: full, custom or none.
1102
+ EOT
1066
1103
  end
1067
1104
  optparse.parse!(args)
1068
1105
 
@@ -1209,6 +1246,11 @@ EOT
1209
1246
  optparse = Morpheus::Cli::OptionParser.new do |opts|
1210
1247
  opts.banner = subcommand_usage("[role] [full|custom|none]")
1211
1248
  build_common_options(opts, options, [:json, :dry_run, :remote])
1249
+ opts.footer = <<-EOT
1250
+ Update global blueprint access for a role.
1251
+ [role] is required. This is the name (authority) or id of a role.
1252
+ [access] is required. This is the access level to assign: full, custom or none.
1253
+ EOT
1212
1254
  end
1213
1255
  optparse.parse!(args)
1214
1256
 
@@ -1288,16 +1330,14 @@ EOT
1288
1330
  access_value = args[2] if args[2]
1289
1331
  end
1290
1332
  if !blueprint_id && !do_all
1291
- raise_command_error("missing required argument: [blueprint] or --all", optparse)
1333
+ raise_command_error("missing required argument: [blueprint] or --all", args, optparse)
1292
1334
  end
1293
1335
  if !access_value
1294
- raise_command_error("missing required argument: [access]", optparse)
1336
+ raise_command_error("missing required argument: [access]", args, optparse)
1295
1337
  end
1296
1338
  access_value = access_value.to_s.downcase
1297
1339
  if !allowed_access_values.include?(access_value)
1298
- raise_command_error("invalid access value: #{access_value}", optparse)
1299
- puts optparse
1300
- return 1
1340
+ raise_command_error("invalid access value: #{access_value}", args, optparse)
1301
1341
  end
1302
1342
 
1303
1343
  connect(options)
@@ -1370,6 +1410,11 @@ EOT
1370
1410
  optparse = Morpheus::Cli::OptionParser.new do |opts|
1371
1411
  opts.banner = subcommand_usage("[role] [full|custom|none]")
1372
1412
  build_common_options(opts, options, [:json, :dry_run, :remote])
1413
+ opts.footer = <<-EOT
1414
+ Update global catalog item type access for a role.
1415
+ [role] is required. This is the name (authority) or id of a role.
1416
+ [access] is required. This is the access level to assign: full, custom or none.
1417
+ EOT
1373
1418
  end
1374
1419
  optparse.parse!(args)
1375
1420
 
@@ -1449,16 +1494,14 @@ EOT
1449
1494
  access_value = args[2] if args[2]
1450
1495
  end
1451
1496
  if !catalog_item_type_id && !do_all
1452
- raise_command_error("missing required argument: [catalog-item-type] or --all", optparse)
1497
+ raise_command_error("missing required argument: [catalog-item-type] or --all", args, optparse)
1453
1498
  end
1454
1499
  if !access_value
1455
- raise_command_error("missing required argument: [access]", optparse)
1500
+ raise_command_error("missing required argument: [access]", args, optparse)
1456
1501
  end
1457
1502
  access_value = access_value.to_s.downcase
1458
1503
  if !allowed_access_values.include?(access_value)
1459
- raise_command_error("invalid access value: #{access_value}", optparse)
1460
- puts optparse
1461
- return 1
1504
+ raise_command_error("invalid access value: #{access_value}", args, optparse)
1462
1505
  end
1463
1506
 
1464
1507
  connect(options)
@@ -1561,16 +1604,14 @@ EOT
1561
1604
  access_value = args[2] if args[2]
1562
1605
  end
1563
1606
  if !persona_id && !do_all
1564
- raise_command_error("missing required argument: [persona] or --all", optparse)
1607
+ raise_command_error("missing required argument: [persona] or --all", args, optparse)
1565
1608
  end
1566
1609
  if !access_value
1567
- raise_command_error("missing required argument: [access]", optparse)
1610
+ raise_command_error("missing required argument: [access]", args, optparse)
1568
1611
  end
1569
1612
  access_value = access_value.to_s.downcase
1570
1613
  if !allowed_access_values.include?(access_value)
1571
- raise_command_error("invalid access value: #{access_value}", optparse)
1572
- puts optparse
1573
- return 1
1614
+ raise_command_error("invalid access value: #{access_value}", args, optparse)
1574
1615
  end
1575
1616
 
1576
1617
  connect(options)
@@ -1622,13 +1663,18 @@ EOT
1622
1663
  optparse = Morpheus::Cli::OptionParser.new do |opts|
1623
1664
  opts.banner = subcommand_usage("[role] [full|custom|none]")
1624
1665
  build_common_options(opts, options, [:json, :dry_run, :remote])
1666
+ opts.footer = <<-EOT
1667
+ Update global VDI pool access for a role.
1668
+ [role] is required. This is the name (authority) or id of a role.
1669
+ [access] is required. This is the access level to assign: full, custom or none.
1670
+ EOT
1625
1671
  end
1626
1672
  optparse.parse!(args)
1627
1673
  verify_args!(args:args, optparse:optparse, count: 2)
1628
1674
  name = args[0]
1629
1675
  access_value = args[1].to_s.downcase
1630
1676
  if !['full', 'custom', 'none'].include?(access_value)
1631
- raise_command_error("invalid access value: #{args[1]}", optparse)
1677
+ raise_command_error("invalid access value: #{args[1]}", args, optparse)
1632
1678
  end
1633
1679
 
1634
1680
 
@@ -1696,14 +1742,14 @@ EOT
1696
1742
  access_value = args[2] if args[2]
1697
1743
  end
1698
1744
  if !vdi_pool_id && !do_all
1699
- raise_command_error("missing required argument: [vdi-pool] or --all", optparse)
1745
+ raise_command_error("missing required argument: [vdi-pool] or --all", args, optparse)
1700
1746
  end
1701
1747
  if !access_value
1702
- raise_command_error("missing required argument: [access]", optparse)
1748
+ raise_command_error("missing required argument: [access]", args, optparse)
1703
1749
  end
1704
1750
  access_value = access_value.to_s.downcase
1705
1751
  if !allowed_access_values.include?(access_value)
1706
- raise_command_error("invalid access value: #{access_value}", optparse)
1752
+ raise_command_error("invalid access value: #{access_value}", args, optparse)
1707
1753
  puts optparse
1708
1754
  return 1
1709
1755
  end
@@ -1770,6 +1816,165 @@ EOT
1770
1816
  end
1771
1817
  end
1772
1818
 
1819
+ def update_global_report_type_access(args)
1820
+ usage = "Usage: morpheus roles update-global-report-type-access [role] [full|custom|none]"
1821
+ options = {}
1822
+ optparse = Morpheus::Cli::OptionParser.new do |opts|
1823
+ opts.banner = subcommand_usage("[role] [full|custom|none]")
1824
+ build_common_options(opts, options, [:json, :dry_run, :remote])
1825
+ opts.footer = <<-EOT
1826
+ Update global report type access for a role.
1827
+ [role] is required. This is the name (authority) or id of a role.
1828
+ [access] is required. This is the access level to assign: full, custom or none.
1829
+ EOT
1830
+ end
1831
+ optparse.parse!(args)
1832
+ verify_args!(args:args, optparse:optparse, count: 2)
1833
+ name = args[0]
1834
+ access_value = args[1].to_s.downcase
1835
+ if !['full', 'custom', 'none'].include?(access_value)
1836
+ raise_command_error("invalid access value: #{args[1]}", args, optparse)
1837
+ end
1838
+
1839
+
1840
+ connect(options)
1841
+ begin
1842
+ account = find_account_from_options(options)
1843
+ account_id = account ? account['id'] : nil
1844
+ role = find_role_by_name_or_id(account_id, name)
1845
+ exit 1 if role.nil?
1846
+ # note: ReportTypes being plural is odd, the others are singular
1847
+ params = {permissionCode: 'ReportTypes', access: access_value}
1848
+ @roles_interface.setopts(options)
1849
+ if options[:dry_run]
1850
+ print_dry_run @roles_interface.dry.update_permission(account_id, role['id'], params)
1851
+ return
1852
+ end
1853
+ json_response = @roles_interface.update_permission(account_id, role['id'], params)
1854
+
1855
+ if options[:json]
1856
+ print JSON.pretty_generate(json_response)
1857
+ print "\n"
1858
+ else
1859
+ print_green_success "Role #{role['authority']} global report type access updated"
1860
+ end
1861
+ rescue RestClient::Exception => e
1862
+ print_rest_exception(e, options)
1863
+ exit 1
1864
+ end
1865
+ end
1866
+
1867
+ def update_report_type_access(args)
1868
+ options = {}
1869
+ report_type_id = nil
1870
+ access_value = nil
1871
+ do_all = false
1872
+ allowed_access_values = ['full', 'none']
1873
+ optparse = Morpheus::Cli::OptionParser.new do |opts|
1874
+ opts.banner = subcommand_usage("[role] [report-type] [access]")
1875
+ opts.on( '--report-type ID', String, "Report Type ID or Name" ) do |val|
1876
+ report_type_id = val
1877
+ end
1878
+ opts.on( nil, '--all', "Update all report types at once." ) do
1879
+ do_all = true
1880
+ end
1881
+ opts.on( '--access VALUE', String, "Access value [#{allowed_access_values.join('|')}]" ) do |val|
1882
+ access_value = val
1883
+ end
1884
+ build_common_options(opts, options, [:json, :dry_run, :remote])
1885
+ opts.footer = "Update role access for a report type or all report types.\n" +
1886
+ "[role] is required. This is the name or id of a role.\n" +
1887
+ "--report-type or --all is required. This is the name or id of a report type.\n" +
1888
+ "--access is required. This is the new access value. #{anded_list(allowed_access_values)}"
1889
+ end
1890
+ optparse.parse!(args)
1891
+
1892
+ # usage: update-report-type-access [role] [access] --all
1893
+ # update-report-type-access [role] [report-type] [access]
1894
+ name = args[0]
1895
+ if do_all
1896
+ verify_args!(args:args, optparse:optparse, min:1, max:2)
1897
+ access_value = args[1] if args[1]
1898
+ else
1899
+ verify_args!(args:args, optparse:optparse, min:1, max:3)
1900
+ report_type_id = args[1] if args[1]
1901
+ access_value = args[2] if args[2]
1902
+ end
1903
+ if !report_type_id && !do_all
1904
+ raise_command_error("missing required argument: [report-type] or --all", args, optparse)
1905
+ end
1906
+ if !access_value
1907
+ raise_command_error("missing required argument: [access]", args, optparse)
1908
+ end
1909
+ access_value = access_value.to_s.downcase
1910
+ if !allowed_access_values.include?(access_value)
1911
+ raise_command_error("invalid access value: #{access_value}", args, optparse)
1912
+ puts optparse
1913
+ return 1
1914
+ end
1915
+
1916
+ connect(options)
1917
+ begin
1918
+ account = find_account_from_options(options)
1919
+ account_id = account ? account['id'] : nil
1920
+ role = find_role_by_name_or_id(account_id, name)
1921
+ return 1 if role.nil?
1922
+
1923
+ role_json = @roles_interface.get(account_id, role['id'])
1924
+ report_type_global_access = role_json['globalReportTypeAccess']
1925
+ report_type_permissions = role_json['reportTypePermissions'] || []
1926
+ if report_type_global_access != 'custom'
1927
+ print "\n", red, "Global Report Type Access is currently: #{report_type_global_access.to_s.capitalize}"
1928
+ print "\n", "You must first set it to Custom via `morpheus roles update-global-report-type-access \"#{name}\" custom`"
1929
+ print "\n\n", reset
1930
+ return 1
1931
+ end
1932
+
1933
+ # hacky, but support name or code lookup via the list returned in the show payload
1934
+ report_type = nil
1935
+ if !do_all
1936
+ if report_type_id.to_s =~ /\A\d{1,}\Z/
1937
+ report_type = report_type_permissions.find {|b| b['id'] == report_type_id.to_i }
1938
+ else
1939
+ report_type = report_type_permissions.find {|b| b['name'] == report_type_id }
1940
+ end
1941
+ if report_type.nil?
1942
+ print_red_alert "Report Type not found: '#{report_type_id}'"
1943
+ return 1
1944
+ end
1945
+ end
1946
+
1947
+ params = {}
1948
+ if do_all
1949
+ params['allReportTypes'] = true
1950
+ else
1951
+ params['reportTypeId'] = report_type['id']
1952
+ end
1953
+ params['access'] = access_value
1954
+ @roles_interface.setopts(options)
1955
+ if options[:dry_run]
1956
+ print_dry_run @roles_interface.dry.update_report_type(account_id, role['id'], params)
1957
+ return
1958
+ end
1959
+ json_response = @roles_interface.update_report_type(account_id, role['id'], params)
1960
+
1961
+ if options[:json]
1962
+ print JSON.pretty_generate(json_response)
1963
+ print "\n"
1964
+ else
1965
+ if do_all
1966
+ print_green_success "Role #{role['authority']} access updated for all report types"
1967
+ else
1968
+ print_green_success "Role #{role['authority']} access updated for report type #{report_type['name']}"
1969
+ end
1970
+ end
1971
+ return 0
1972
+ rescue RestClient::Exception => e
1973
+ print_rest_exception(e, options)
1974
+ exit 1
1975
+ end
1976
+ end
1977
+
1773
1978
  private
1774
1979
 
1775
1980
  def add_role_option_types
@@ -1,8 +1,3 @@
1
- # require 'yaml'
2
- require 'io/console'
3
- require 'rest_client'
4
- require 'optparse'
5
- require 'filesize'
6
1
  require 'morpheus/cli/cli_command'
7
2
 
8
3
  class Morpheus::Cli::SecurityGroupRules
@@ -1,10 +1,4 @@
1
- # require 'yaml'
2
- require 'io/console'
3
- require 'rest_client'
4
- require 'optparse'
5
- require 'filesize'
6
1
  require 'morpheus/cli/cli_command'
7
- require 'morpheus/cli/mixins/infrastructure_helper'
8
2
 
9
3
  class Morpheus::Cli::SecurityGroups
10
4
  include Morpheus::Cli::CliCommand
@@ -1,6 +1,3 @@
1
- require 'optparse'
2
- require 'json'
3
- require 'morpheus/logging'
4
1
  require 'morpheus/cli/cli_command'
5
2
 
6
3
  class Morpheus::Cli::SetPromptCommand
File without changes