morpheus-cli 5.3.1 → 5.3.2.2

Sign up to get free protection for your applications and to get access to all the features.
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)