morpheus-cli 5.3.1 → 5.3.2.2

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 (173) hide show
  1. checksums.yaml +4 -4
  2. data/Dockerfile +1 -1
  3. data/lib/morpheus/api/account_groups_interface.rb +0 -6
  4. data/lib/morpheus/api/accounts_interface.rb +4 -36
  5. data/lib/morpheus/api/api_client.rb +120 -106
  6. data/lib/morpheus/api/appliance_settings_interface.rb +6 -9
  7. data/lib/morpheus/api/approvals_interface.rb +5 -8
  8. data/lib/morpheus/api/apps_interface.rb +0 -7
  9. data/lib/morpheus/api/archive_buckets_interface.rb +9 -16
  10. data/lib/morpheus/api/archive_files_interface.rb +0 -6
  11. data/lib/morpheus/api/auth_interface.rb +4 -4
  12. data/lib/morpheus/api/backup_settings_interface.rb +5 -8
  13. data/lib/morpheus/api/blueprints_interface.rb +1 -7
  14. data/lib/morpheus/api/budgets_interface.rb +0 -6
  15. data/lib/morpheus/api/cloud_datastores_interface.rb +0 -6
  16. data/lib/morpheus/api/cloud_folders_interface.rb +1 -7
  17. data/lib/morpheus/api/cloud_policies_interface.rb +0 -6
  18. data/lib/morpheus/api/cloud_resource_pools_interface.rb +0 -6
  19. data/lib/morpheus/api/clouds_interface.rb +0 -6
  20. data/lib/morpheus/api/clusters_interface.rb +39 -42
  21. data/lib/morpheus/api/containers_interface.rb +0 -6
  22. data/lib/morpheus/api/custom_instance_types_interface.rb +0 -6
  23. data/lib/morpheus/api/cypher_interface.rb +0 -6
  24. data/lib/morpheus/api/datastores_interface.rb +4 -7
  25. data/lib/morpheus/api/deploy_interface.rb +1 -6
  26. data/lib/morpheus/api/environments_interface.rb +0 -6
  27. data/lib/morpheus/api/execute_schedules_interface.rb +0 -6
  28. data/lib/morpheus/api/execution_request_interface.rb +0 -6
  29. data/lib/morpheus/api/file_copy_request_interface.rb +2 -9
  30. data/lib/morpheus/api/group_policies_interface.rb +0 -6
  31. data/lib/morpheus/api/groups_interface.rb +0 -7
  32. data/lib/morpheus/api/guidance_interface.rb +9 -12
  33. data/lib/morpheus/api/health_interface.rb +0 -6
  34. data/lib/morpheus/api/image_builder_boot_scripts_interface.rb +0 -6
  35. data/lib/morpheus/api/image_builder_image_builds_interface.rb +0 -6
  36. data/lib/morpheus/api/image_builder_interface.rb +3 -9
  37. data/lib/morpheus/api/image_builder_preseed_scripts_interface.rb +0 -6
  38. data/lib/morpheus/api/instance_types_interface.rb +0 -7
  39. data/lib/morpheus/api/instances_interface.rb +8 -19
  40. data/lib/morpheus/api/integrations_interface.rb +30 -0
  41. data/lib/morpheus/api/invoice_line_items_interface.rb +4 -9
  42. data/lib/morpheus/api/jobs_interface.rb +11 -14
  43. data/lib/morpheus/api/key_pairs_interface.rb +0 -6
  44. data/lib/morpheus/api/library_cluster_layouts_interface.rb +0 -6
  45. data/lib/morpheus/api/library_container_scripts_interface.rb +0 -6
  46. data/lib/morpheus/api/library_container_templates_interface.rb +0 -6
  47. data/lib/morpheus/api/library_container_types_interface.rb +0 -6
  48. data/lib/morpheus/api/library_container_upgrades_interface.rb +0 -6
  49. data/lib/morpheus/api/library_instance_types_interface.rb +0 -6
  50. data/lib/morpheus/api/library_layouts_interface.rb +0 -6
  51. data/lib/morpheus/api/library_spec_template_types_interface.rb +0 -6
  52. data/lib/morpheus/api/library_spec_templates_interface.rb +0 -6
  53. data/lib/morpheus/api/license_interface.rb +0 -6
  54. data/lib/morpheus/api/load_balancer_pools_interface.rb +9 -0
  55. data/lib/morpheus/api/load_balancer_types_interface.rb +9 -0
  56. data/lib/morpheus/api/load_balancer_virtual_servers_interface.rb +9 -0
  57. data/lib/morpheus/api/load_balancers_interface.rb +4 -59
  58. data/lib/morpheus/api/log_settings_interface.rb +9 -12
  59. data/lib/morpheus/api/logs_interface.rb +0 -6
  60. data/lib/morpheus/api/monitoring_alerts_interface.rb +0 -6
  61. data/lib/morpheus/api/monitoring_apps_interface.rb +0 -6
  62. data/lib/morpheus/api/monitoring_checks_interface.rb +0 -6
  63. data/lib/morpheus/api/monitoring_contacts_interface.rb +0 -6
  64. data/lib/morpheus/api/monitoring_groups_interface.rb +0 -6
  65. data/lib/morpheus/api/monitoring_incidents_interface.rb +0 -6
  66. data/lib/morpheus/api/monitoring_interface.rb +6 -12
  67. data/lib/morpheus/api/network_domain_records_interface.rb +0 -6
  68. data/lib/morpheus/api/network_domains_interface.rb +0 -6
  69. data/lib/morpheus/api/network_groups_interface.rb +0 -6
  70. data/lib/morpheus/api/network_pool_ips_interface.rb +0 -6
  71. data/lib/morpheus/api/network_pool_servers_interface.rb +0 -6
  72. data/lib/morpheus/api/network_pools_interface.rb +0 -6
  73. data/lib/morpheus/api/network_proxies_interface.rb +0 -6
  74. data/lib/morpheus/api/network_routers_interface.rb +56 -6
  75. data/lib/morpheus/api/network_security_servers_interface.rb +6 -9
  76. data/lib/morpheus/api/network_services_interface.rb +0 -14
  77. data/lib/morpheus/api/network_subnets_interface.rb +0 -6
  78. data/lib/morpheus/api/network_types_interface.rb +1 -7
  79. data/lib/morpheus/api/networks_interface.rb +0 -6
  80. data/lib/morpheus/api/option_type_lists_interface.rb +18 -12
  81. data/lib/morpheus/api/option_types_interface.rb +0 -6
  82. data/lib/morpheus/api/options_interface.rb +0 -6
  83. data/lib/morpheus/api/packages_interface.rb +0 -6
  84. data/lib/morpheus/api/policies_interface.rb +1 -8
  85. data/lib/morpheus/api/power_schedules_interface.rb +0 -6
  86. data/lib/morpheus/api/price_sets_interface.rb +8 -11
  87. data/lib/morpheus/api/prices_interface.rb +12 -15
  88. data/lib/morpheus/api/processes_interface.rb +0 -6
  89. data/lib/morpheus/api/provision_types_interface.rb +0 -6
  90. data/lib/morpheus/api/provisioning_license_types_interface.rb +0 -6
  91. data/lib/morpheus/api/provisioning_licenses_interface.rb +0 -6
  92. data/lib/morpheus/api/provisioning_settings_interface.rb +6 -9
  93. data/lib/morpheus/api/reports_interface.rb +0 -6
  94. data/lib/morpheus/api/roles_interface.rb +0 -6
  95. data/lib/morpheus/api/secondary_read_interface.rb +25 -0
  96. data/lib/morpheus/api/secondary_rest_interface.rb +42 -0
  97. data/lib/morpheus/api/security_group_rules_interface.rb +0 -7
  98. data/lib/morpheus/api/security_groups_interface.rb +0 -6
  99. data/lib/morpheus/api/server_types_interface.rb +0 -6
  100. data/lib/morpheus/api/servers_interface.rb +0 -6
  101. data/lib/morpheus/api/service_plans_interface.rb +11 -14
  102. data/lib/morpheus/api/storage_providers_interface.rb +9 -16
  103. data/lib/morpheus/api/subnet_types_interface.rb +1 -7
  104. data/lib/morpheus/api/subnets_interface.rb +0 -6
  105. data/lib/morpheus/api/task_sets_interface.rb +0 -6
  106. data/lib/morpheus/api/tasks_interface.rb +0 -6
  107. data/lib/morpheus/api/user_groups_interface.rb +0 -6
  108. data/lib/morpheus/api/user_sources_interface.rb +0 -6
  109. data/lib/morpheus/api/users_interface.rb +0 -6
  110. data/lib/morpheus/api/virtual_images_interface.rb +0 -6
  111. data/lib/morpheus/api/whitelabel_settings_interface.rb +8 -11
  112. data/lib/morpheus/api/wiki_interface.rb +0 -6
  113. data/lib/morpheus/cli/access_token_command.rb +1 -1
  114. data/lib/morpheus/cli/account_groups_command.rb +4 -4
  115. data/lib/morpheus/cli/apps.rb +9 -9
  116. data/lib/morpheus/cli/archives_command.rb +5 -5
  117. data/lib/morpheus/cli/blueprints_command.rb +5 -5
  118. data/lib/morpheus/cli/boot_scripts_command.rb +1 -1
  119. data/lib/morpheus/cli/change_password_command.rb +4 -4
  120. data/lib/morpheus/cli/cli_command.rb +11 -10
  121. data/lib/morpheus/cli/clouds.rb +2 -2
  122. data/lib/morpheus/cli/clusters.rb +2 -2
  123. data/lib/morpheus/cli/credentials.rb +4 -11
  124. data/lib/morpheus/cli/environments_command.rb +1 -1
  125. data/lib/morpheus/cli/execute_schedules_command.rb +3 -3
  126. data/lib/morpheus/cli/hosts.rb +8 -8
  127. data/lib/morpheus/cli/image_builder_command.rb +6 -6
  128. data/lib/morpheus/cli/instance_types.rb +1 -1
  129. data/lib/morpheus/cli/instances.rb +93 -64
  130. data/lib/morpheus/cli/integrations_command.rb +567 -1
  131. data/lib/morpheus/cli/invoices_command.rb +75 -67
  132. data/lib/morpheus/cli/key_pairs.rb +2 -2
  133. data/lib/morpheus/cli/library_cluster_layouts_command.rb +2 -3
  134. data/lib/morpheus/cli/library_container_scripts_command.rb +4 -5
  135. data/lib/morpheus/cli/library_container_templates_command.rb +5 -1
  136. data/lib/morpheus/cli/library_container_types_command.rb +8 -9
  137. data/lib/morpheus/cli/library_instance_types_command.rb +6 -7
  138. data/lib/morpheus/cli/library_layouts_command.rb +9 -5
  139. data/lib/morpheus/cli/library_option_lists_command.rb +72 -20
  140. data/lib/morpheus/cli/library_option_types_command.rb +8 -4
  141. data/lib/morpheus/cli/library_spec_templates_command.rb +3 -4
  142. data/lib/morpheus/cli/library_upgrades_command.rb +6 -6
  143. data/lib/morpheus/cli/license.rb +2 -2
  144. data/lib/morpheus/cli/load_balancer_types.rb +37 -0
  145. data/lib/morpheus/cli/load_balancers.rb +149 -314
  146. data/lib/morpheus/cli/log_settings_command.rb +7 -3
  147. data/lib/morpheus/cli/login.rb +3 -1
  148. data/lib/morpheus/cli/mixins/load_balancers_helper.rb +156 -0
  149. data/lib/morpheus/cli/mixins/print_helper.rb +11 -0
  150. data/lib/morpheus/cli/mixins/provisioning_helper.rb +2 -2
  151. data/lib/morpheus/cli/mixins/rest_command.rb +657 -0
  152. data/lib/morpheus/cli/network_routers_command.rb +1183 -185
  153. data/lib/morpheus/cli/networks_command.rb +194 -101
  154. data/lib/morpheus/cli/option_types.rb +34 -40
  155. data/lib/morpheus/cli/policies_command.rb +0 -1
  156. data/lib/morpheus/cli/power_schedules_command.rb +3 -3
  157. data/lib/morpheus/cli/preseed_scripts_command.rb +1 -1
  158. data/lib/morpheus/cli/remote.rb +1 -1
  159. data/lib/morpheus/cli/roles.rb +9 -9
  160. data/lib/morpheus/cli/security_group_rules.rb +1 -1
  161. data/lib/morpheus/cli/setup.rb +0 -1
  162. data/lib/morpheus/cli/tenants_command.rb +21 -23
  163. data/lib/morpheus/cli/user_groups_command.rb +3 -3
  164. data/lib/morpheus/cli/user_sources_command.rb +3 -3
  165. data/lib/morpheus/cli/users.rb +3 -3
  166. data/lib/morpheus/cli/version.rb +1 -1
  167. data/lib/morpheus/cli/virtual_images.rb +1 -1
  168. data/lib/morpheus/cli/whoami.rb +0 -15
  169. data/lib/morpheus/cli/wiki_command.rb +1 -1
  170. data/lib/morpheus/cli.rb +1 -0
  171. data/lib/morpheus/ext/string.rb +41 -0
  172. data/lib/morpheus/formatters.rb +4 -0
  173. metadata +11 -2
@@ -1,14 +1,8 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::SubnetTypesInterface < Morpheus::APIClient
4
- def initialize(access_token, refresh_token,expires_at = nil, base_url=nil)
5
- @access_token = access_token
6
- @refresh_token = refresh_token
7
- @base_url = base_url
8
- @expires_at = expires_at
9
- end
10
4
 
11
- def get(id, params={})
5
+ def get(id, params={})
12
6
  raise "#{self.class}.get() passed a blank id!" if id.to_s == ''
13
7
  url = "#{@base_url}/api/subnet-types/#{id}"
14
8
  headers = { params: params, authorization: "Bearer #{@access_token}" }
@@ -1,12 +1,6 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::SubnetsInterface < Morpheus::APIClient
4
- def initialize(access_token, refresh_token,expires_at = nil, base_url=nil)
5
- @access_token = access_token
6
- @refresh_token = refresh_token
7
- @base_url = base_url
8
- @expires_at = expires_at
9
- end
10
4
 
11
5
  def get(id, params={})
12
6
  raise "#{self.class}.get() passed a blank id!" if id.to_s == ''
@@ -1,12 +1,6 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::TaskSetsInterface < Morpheus::APIClient
4
- def initialize(access_token, refresh_token,expires_at = nil, base_url=nil)
5
- @access_token = access_token
6
- @refresh_token = refresh_token
7
- @base_url = base_url
8
- @expires_at = expires_at
9
- end
10
4
 
11
5
  def list(params={})
12
6
  url = "#{@base_url}/api/task-sets"
@@ -1,12 +1,6 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::TasksInterface < Morpheus::APIClient
4
- def initialize(access_token, refresh_token,expires_at = nil, base_url=nil)
5
- @access_token = access_token
6
- @refresh_token = refresh_token
7
- @base_url = base_url
8
- @expires_at = expires_at
9
- end
10
4
 
11
5
  def list(params={})
12
6
  url = "#{@base_url}/api/tasks"
@@ -1,12 +1,6 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::UserGroupsInterface < Morpheus::APIClient
4
- def initialize(access_token, refresh_token, expires_at = nil, base_url=nil)
5
- @access_token = access_token
6
- @refresh_token = refresh_token
7
- @base_url = base_url
8
- @expires_at = expires_at
9
- end
10
4
 
11
5
  def get(account_id, id)
12
6
  raise "#{self.class}.get() passed a blank id!" if id.to_s == ''
@@ -1,12 +1,6 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::UserSourcesInterface < Morpheus::APIClient
4
- def initialize(access_token, refresh_token, expires_at = nil, base_url=nil)
5
- @access_token = access_token
6
- @refresh_token = refresh_token
7
- @base_url = base_url
8
- @expires_at = expires_at
9
- end
10
4
 
11
5
  def get(account_id, id)
12
6
  raise "#{self.class}.get() passed a blank id!" if id.to_s == ''
@@ -1,12 +1,6 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::UsersInterface < Morpheus::APIClient
4
- def initialize(access_token, refresh_token, expires_at = nil, base_url=nil)
5
- @access_token = access_token
6
- @refresh_token = refresh_token
7
- @base_url = base_url
8
- @expires_at = expires_at
9
- end
10
4
 
11
5
  def get(account_id, id, params={})
12
6
  raise "#{self.class}.get() passed a blank id!" if id.to_s == ''
@@ -4,12 +4,6 @@ require 'zlib'
4
4
  require 'forwardable'
5
5
 
6
6
  class Morpheus::VirtualImagesInterface < Morpheus::APIClient
7
- def initialize(access_token, refresh_token,expires_at = nil, base_url=nil)
8
- @access_token = access_token
9
- @refresh_token = refresh_token
10
- @base_url = base_url
11
- @expires_at = expires_at
12
- end
13
7
 
14
8
  def virtual_image_types(options={})
15
9
  url = "#{@base_url}/api/virtual-image-types"
@@ -1,41 +1,38 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::WhitelabelSettingsInterface < Morpheus::APIClient
4
- def initialize(access_token, refresh_token,expires_at = nil, base_url=nil, api='whitelabel-settings')
5
- @access_token = access_token
6
- @refresh_token = refresh_token
7
- @base_url = base_url
8
- @api_url = "#{base_url}/api/#{api}"
9
- @expires_at = expires_at
4
+
5
+ def base_path
6
+ "/api/whitelabel-settings"
10
7
  end
11
8
 
12
9
  def get(params={})
13
- url = @api_url
10
+ url = base_path
14
11
  headers = { params: params, authorization: "Bearer #{@access_token}" }
15
12
  execute(method: :get, url: url, headers: headers)
16
13
  end
17
14
 
18
15
  def update(payload, params={})
19
- url = @api_url
16
+ url = base_path
20
17
  headers = { params: params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
21
18
  execute(method: :put, url: url, headers: headers, payload: payload.to_json)
22
19
  end
23
20
 
24
21
  def update_images(payload, params={})
25
- url = "#{@api_url}/images"
22
+ url = "#{base_path}/images"
26
23
  headers = { params: params, :authorization => "Bearer #{@access_token}" }
27
24
  payload[:multipart] = true
28
25
  execute(method: :post, url: url, headers: headers, payload: payload)
29
26
  end
30
27
 
31
28
  def reset_image(image_type, params={})
32
- url = "#{@api_url}/images/#{image_type}"
29
+ url = "#{base_path}/images/#{image_type}"
33
30
  headers = { params: params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
34
31
  execute(method: :delete, url: url, headers: headers)
35
32
  end
36
33
 
37
34
  def download_image(image_type, outfile, params={})
38
- url = "#{@api_url}/images/#{image_type}"
35
+ url = "#{base_path}/images/#{image_type}"
39
36
  headers = { params: params, :authorization => "Bearer #{@access_token}" }
40
37
  opts = {method: :get, url: url, headers: headers, timeout: 172800}
41
38
 
@@ -1,12 +1,6 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::WikiInterface < Morpheus::APIClient
4
- def initialize(access_token, refresh_token,expires_at = nil, base_url=nil)
5
- @access_token = access_token
6
- @refresh_token = refresh_token
7
- @base_url = base_url
8
- @expires_at = expires_at
9
- end
10
4
 
11
5
  def get(id, params={})
12
6
  raise "#{self.class}.get() passed a blank name!" if id.to_s == ''
@@ -156,7 +156,7 @@ class Morpheus::Cli::AccessTokenCommand
156
156
  end
157
157
  end
158
158
  if options[:dry_run]
159
- print_dry_run Morpheus::AuthInterface.new({url:@appliance_url}).setopts(options).use_refresh_token(refresh_token_value)
159
+ print_dry_run @api_client.auth.dry.use_refresh_token(refresh_token_value)
160
160
  return 0
161
161
  end
162
162
  unless options[:quiet]
@@ -28,11 +28,11 @@ class Morpheus::Cli::AccountGroupsCommand
28
28
 
29
29
  def connect(opts)
30
30
  @api_client = establish_remote_appliance_connection(opts)
31
- @account_groups_interface = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url).account_groups
32
- @accounts_interface = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url).accounts
31
+ @account_groups_interface = @api_client.account_groups
32
+ @accounts_interface = @api_client.accounts
33
33
 
34
- @groups_interface = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url).groups
35
- @clouds_interface = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url).clouds
34
+ @groups_interface = @api_client.groups
35
+ @clouds_interface = @api_client.clouds
36
36
  end
37
37
 
38
38
  def handle(args)
@@ -37,15 +37,15 @@ class Morpheus::Cli::Apps
37
37
  @api_client = establish_remote_appliance_connection(opts)
38
38
  @accounts_interface = @api_client.accounts
39
39
  @users_interface = @api_client.users
40
- @apps_interface = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url).apps
41
- @blueprints_interface = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url).blueprints
42
- @instance_types_interface = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url).instance_types
43
- @library_layouts_interface = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url).library_layouts
44
- @instances_interface = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url).instances
45
- @options_interface = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url).options
46
- @groups_interface = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url).groups
47
- @clouds_interface = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url).clouds
48
- @logs_interface = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url).logs
40
+ @apps_interface = @api_client.apps
41
+ @blueprints_interface = @api_client.blueprints
42
+ @instance_types_interface = @api_client.instance_types
43
+ @library_layouts_interface = @api_client.library_layouts
44
+ @instances_interface = @api_client.instances
45
+ @options_interface = @api_client.options
46
+ @groups_interface = @api_client.groups
47
+ @clouds_interface = @api_client.clouds
48
+ @logs_interface = @api_client.logs
49
49
  @processes_interface = @api_client.processes
50
50
  @active_group_id = Morpheus::Cli::Groups.active_groups[@appliance_name]
51
51
  end
@@ -48,9 +48,9 @@ class Morpheus::Cli::ArchivesCommand
48
48
 
49
49
  def connect(opts)
50
50
  @api_client = establish_remote_appliance_connection(opts)
51
- @archive_buckets_interface = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url).archive_buckets
52
- @archive_files_interface = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url).archive_files
53
- @options_interface = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url).options
51
+ @archive_buckets_interface = @api_client.archive_buckets
52
+ @archive_files_interface = @api_client.archive_files
53
+ @options_interface = @api_client.options
54
54
  # @active_group_id = Morpheus::Cli::Groups.active_groups[@appliance_name]
55
55
  end
56
56
 
@@ -979,10 +979,10 @@ class Morpheus::Cli::ArchivesCommand
979
979
 
980
980
 
981
981
  print_h2 "Download URLs"
982
- private_download_url = "#{@appliance_url}/api/archives/download/#{URI.escape(bucket_id)}" + "/#{URI.escape(archive_file['filePath'])}".squeeze('/')
982
+ private_download_url = "#{@appliance_url}/api/archives/download/#{CGI::escape(bucket_id)}" + "/#{CGI::escape(archive_file['filePath'])}".squeeze('/')
983
983
  public_download_url = nil
984
984
  if archive_file['archiveBucket'] && archive_file['archiveBucket']['isPublic']
985
- public_download_url = "#{@appliance_url}/public-archives/download/#{URI.escape(bucket_id)}" + "/#{URI.escape(archive_file['filePath'])}".squeeze('/')
985
+ public_download_url = "#{@appliance_url}/public-archives/download/#{CGI::escape(bucket_id)}" + "/#{CGI::escape(archive_file['filePath'])}".squeeze('/')
986
986
  end
987
987
  print cyan
988
988
  puts "Private URL: #{private_download_url}"
@@ -29,11 +29,11 @@ class Morpheus::Cli::BlueprintsCommand
29
29
 
30
30
  def connect(opts)
31
31
  @api_client = establish_remote_appliance_connection(opts)
32
- @blueprints_interface = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url).blueprints
33
- @groups_interface = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url).groups
34
- @instances_interface = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url).instances
35
- @instance_types_interface = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url).instance_types
36
- @options_interface = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url).options
32
+ @blueprints_interface = @api_client.blueprints
33
+ @groups_interface = @api_client.groups
34
+ @instances_interface = @api_client.instances
35
+ @instance_types_interface = @api_client.instance_types
36
+ @options_interface = @api_client.options
37
37
  @active_group_id = Morpheus::Cli::Groups.active_groups[@appliance_name]
38
38
  @clouds_interface = @api_client.clouds
39
39
  @users_interface = @api_client.users
@@ -24,7 +24,7 @@ class Morpheus::Cli::BootScriptsCommand
24
24
 
25
25
  def connect(opts)
26
26
  @api_client = establish_remote_appliance_connection(opts)
27
- @image_builder_interface = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url).image_builder
27
+ @image_builder_interface = @api_client.image_builder
28
28
  @boot_scripts_interface = @image_builder_interface.boot_scripts
29
29
  end
30
30
 
@@ -19,10 +19,10 @@ class Morpheus::Cli::ChangePasswordCommand
19
19
 
20
20
  def connect(opts)
21
21
  @api_client = establish_remote_appliance_connection(opts)
22
- @whoami_interface = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url).whoami
23
- @users_interface = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url).users
24
- @accounts_interface = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url).accounts
25
- @roles_interface = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url).roles
22
+ @whoami_interface = @api_client.whoami
23
+ @users_interface = @api_client.users
24
+ @accounts_interface = @api_client.accounts
25
+ @roles_interface = @api_client.roles
26
26
  end
27
27
 
28
28
  def handle(args)
@@ -18,11 +18,11 @@ module Morpheus
18
18
  # todo: use delegate
19
19
  module CliCommand
20
20
 
21
- def self.included(klass)
22
- klass.send :include, Morpheus::Cli::PrintHelper
23
- klass.send :include, Morpheus::Benchmarking::HasBenchmarking
24
- klass.extend ClassMethods
25
- Morpheus::Cli::CliRegistry.add(klass, klass.command_name)
21
+ def self.included(base)
22
+ base.send :include, Morpheus::Cli::PrintHelper
23
+ base.send :include, Morpheus::Benchmarking::HasBenchmarking
24
+ base.extend ClassMethods
25
+ Morpheus::Cli::CliRegistry.add(base, base.command_name)
26
26
  end
27
27
 
28
28
  # the beginning of instance variables from optparse !
@@ -983,10 +983,11 @@ module Morpheus
983
983
  out = ""
984
984
  out << usage.to_s.strip if usage
985
985
  out << "\n"
986
- if !subcommands.empty?
986
+ my_subcommands = visible_subcommands
987
+ if !my_subcommands.empty?
987
988
  out << "Commands:"
988
989
  out << "\n"
989
- subcommands.sort.each {|subcmd, method|
990
+ my_subcommands.sort.each {|subcmd, method|
990
991
  desc = get_subcommand_description(subcmd)
991
992
  out << "\t#{subcmd.to_s}"
992
993
  out << "\t#{desc}" if desc
@@ -1124,6 +1125,7 @@ module Morpheus
1124
1125
  if options[:insecure] || appliance[:insecure] || Morpheus::Cli::Shell.insecure
1125
1126
  allow_insecure = true
1126
1127
  end
1128
+ @verify_ssl = !allow_insecure
1127
1129
  # Morpheus::RestClient.enable_ssl_verification = allow_insecure != true
1128
1130
  if allow_insecure && Morpheus::RestClient.ssl_verification_enabled?
1129
1131
  Morpheus::RestClient.enable_ssl_verification = false
@@ -1189,7 +1191,7 @@ module Morpheus
1189
1191
  end
1190
1192
 
1191
1193
  # ok, connect to the appliance.. actually this just instantiates an ApiClient
1192
- api_client = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url)
1194
+ api_client = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url, @verify_ssl)
1193
1195
  @api_client = api_client # meh, just return w/o setting instance attrs
1194
1196
  return api_client
1195
1197
  end
@@ -1526,8 +1528,7 @@ module Morpheus
1526
1528
  cmds = subcommands.clone
1527
1529
  if @hidden_subcommands && !@hidden_subcommands.empty?
1528
1530
  @hidden_subcommands.each do |hidden_cmd|
1529
- cmds.delete(hidden_cmd.to_s)
1530
- cmds.delete(hidden_cmd.to_sym)
1531
+ cmds.delete(hidden_cmd.to_s.gsub('_', '-'))
1531
1532
  end
1532
1533
  end
1533
1534
  cmds
@@ -24,8 +24,8 @@ class Morpheus::Cli::Clouds
24
24
 
25
25
  def connect(opts)
26
26
  @api_client = establish_remote_appliance_connection(opts)
27
- @clouds_interface = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url).clouds
28
- @groups_interface = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url).groups
27
+ @clouds_interface = @api_client.clouds
28
+ @groups_interface = @api_client.groups
29
29
  @active_group_id = Morpheus::Cli::Groups.active_groups[@appliance_name]
30
30
  # preload stuff
31
31
  get_available_cloud_types()
@@ -45,8 +45,8 @@ class Morpheus::Cli::Clusters
45
45
  @provision_types_interface = @api_client.provision_types
46
46
  @service_plans_interface = @api_client.service_plans
47
47
  @user_groups_interface = @api_client.user_groups
48
- @accounts_interface = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url).accounts
49
- @logs_interface = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url).logs
48
+ @accounts_interface = @api_client.accounts
49
+ @logs_interface = @api_client.logs
50
50
  #@active_security_group = ::Morpheus::Cli::SecurityGroups.load_security_group_file
51
51
  end
52
52
 
@@ -56,8 +56,7 @@ module Morpheus
56
56
  # OR whoami should return other wallet info like access token or maybe just the expiration date
57
57
  # for now, it just stores the access token without other wallet info
58
58
  begin
59
- # @setup_interface = Morpheus::SetupInterface.new({url:@appliance_url,access_token:@access_token})
60
- whoami_interface = Morpheus::WhoamiInterface.new({url: @appliance_url, access_token: options[:remote_token]})
59
+ whoami_interface = Morpheus::WhoamiInterface.new({url: @appliance_url, access_token: options[:remote_token], verify_ssl: !options[:insecure]})
61
60
  whoami_interface.setopts(options)
62
61
  if options[:dry_run]
63
62
  print_dry_run whoami_interface.dry.get()
@@ -104,13 +103,7 @@ module Morpheus
104
103
  end
105
104
  if wallet.nil?
106
105
  unless options[:quiet] || options[:no_prompt]
107
- # if username.empty? || password.empty?
108
- if options[:test_only]
109
- print "Test Morpheus Credentials for #{display_appliance(@appliance_name, @appliance_url)}", "\n", reset
110
- else
111
- print "Enter Morpheus Credentials for #{display_appliance(@appliance_name, @appliance_url)}", "\n", reset
112
- end
113
- # end
106
+ print "Enter Morpheus Credentials for #{display_appliance(@appliance_name, @appliance_url)}", "\n", reset
114
107
  if options[:client_id].empty?
115
108
  # print "Client ID: #{required_blue_prompt} #{options[:client_id]}", "\n", reset
116
109
  else
@@ -138,7 +131,7 @@ module Morpheus
138
131
  return nil
139
132
  end
140
133
  begin
141
- auth_interface = Morpheus::AuthInterface.new({url:@appliance_url, client_id: options[:client_id]})
134
+ auth_interface = Morpheus::AuthInterface.new({url:@appliance_url, client_id: options[:client_id], verify_ssl: !options[:insecure]})
142
135
  auth_interface.setopts(options)
143
136
  if options[:dry_run]
144
137
  print_dry_run auth_interface.dry.login(username, password)
@@ -276,7 +269,7 @@ module Morpheus
276
269
  username = wallet['username']
277
270
 
278
271
  begin
279
- auth_interface = Morpheus::AuthInterface.new({url:@appliance_url})
272
+ auth_interface = Morpheus::AuthInterface.new({url:@appliance_url, client_id: options[:client_id], verify_ssl: !options[:insecure]})
280
273
  auth_interface.setopts(options)
281
274
  if options[:dry_run]
282
275
  print_dry_run auth_interface.dry.use_refresh_token(refresh_token_value)
@@ -16,7 +16,7 @@ class Morpheus::Cli::EnvironmentsCommand
16
16
 
17
17
  def connect(opts)
18
18
  @api_client = establish_remote_appliance_connection(opts)
19
- @environments_interface = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url).environments
19
+ @environments_interface = @api_client.environments
20
20
  end
21
21
 
22
22
  def handle(args)
@@ -13,9 +13,9 @@ class Morpheus::Cli::ExecuteSchedulesCommand
13
13
 
14
14
  def connect(opts)
15
15
  @api_client = establish_remote_appliance_connection(opts)
16
- @execute_schedules_interface = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url).execute_schedules
17
- @instances_interface = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url).instances
18
- @servers_interface = Morpheus::APIClient.new(@access_token,nil,nil, @appliance_url).servers
16
+ @execute_schedules_interface = @api_client.execute_schedules
17
+ @instances_interface = @api_client.instances
18
+ @servers_interface = @api_client.servers
19
19
  end
20
20
 
21
21
  def handle(args)