morpheus-cli 5.3.0.3 → 5.3.2.1

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 (199) hide show
  1. checksums.yaml +4 -4
  2. data/Dockerfile +1 -1
  3. data/README.md +1 -3
  4. data/lib/morpheus/api/account_groups_interface.rb +0 -6
  5. data/lib/morpheus/api/accounts_interface.rb +4 -36
  6. data/lib/morpheus/api/api_client.rb +167 -119
  7. data/lib/morpheus/api/appliance_settings_interface.rb +6 -9
  8. data/lib/morpheus/api/approvals_interface.rb +5 -8
  9. data/lib/morpheus/api/apps_interface.rb +0 -7
  10. data/lib/morpheus/api/archive_buckets_interface.rb +9 -16
  11. data/lib/morpheus/api/archive_files_interface.rb +0 -6
  12. data/lib/morpheus/api/auth_interface.rb +4 -4
  13. data/lib/morpheus/api/backup_settings_interface.rb +5 -8
  14. data/lib/morpheus/api/blueprints_interface.rb +1 -7
  15. data/lib/morpheus/api/budgets_interface.rb +0 -6
  16. data/lib/morpheus/api/certificate_types_interface.rb +14 -0
  17. data/lib/morpheus/api/certificates_interface.rb +9 -0
  18. data/lib/morpheus/api/cloud_datastores_interface.rb +0 -6
  19. data/lib/morpheus/api/cloud_folders_interface.rb +1 -7
  20. data/lib/morpheus/api/cloud_policies_interface.rb +0 -6
  21. data/lib/morpheus/api/cloud_resource_pools_interface.rb +0 -6
  22. data/lib/morpheus/api/clouds_interface.rb +0 -6
  23. data/lib/morpheus/api/clusters_interface.rb +39 -42
  24. data/lib/morpheus/api/containers_interface.rb +0 -6
  25. data/lib/morpheus/api/custom_instance_types_interface.rb +0 -6
  26. data/lib/morpheus/api/cypher_interface.rb +0 -6
  27. data/lib/morpheus/api/datastores_interface.rb +4 -7
  28. data/lib/morpheus/api/deploy_interface.rb +1 -6
  29. data/lib/morpheus/api/environments_interface.rb +0 -6
  30. data/lib/morpheus/api/execute_schedules_interface.rb +0 -6
  31. data/lib/morpheus/api/execution_request_interface.rb +0 -6
  32. data/lib/morpheus/api/file_copy_request_interface.rb +2 -9
  33. data/lib/morpheus/api/group_policies_interface.rb +0 -6
  34. data/lib/morpheus/api/groups_interface.rb +0 -7
  35. data/lib/morpheus/api/guidance_interface.rb +9 -12
  36. data/lib/morpheus/api/health_interface.rb +0 -6
  37. data/lib/morpheus/api/image_builder_boot_scripts_interface.rb +0 -6
  38. data/lib/morpheus/api/image_builder_image_builds_interface.rb +0 -6
  39. data/lib/morpheus/api/image_builder_interface.rb +3 -9
  40. data/lib/morpheus/api/image_builder_preseed_scripts_interface.rb +0 -6
  41. data/lib/morpheus/api/instance_types_interface.rb +0 -7
  42. data/lib/morpheus/api/instances_interface.rb +8 -19
  43. data/lib/morpheus/api/integration_types_interface.rb +14 -0
  44. data/lib/morpheus/api/integrations_interface.rb +36 -21
  45. data/lib/morpheus/api/invoice_line_items_interface.rb +4 -9
  46. data/lib/morpheus/api/jobs_interface.rb +11 -14
  47. data/lib/morpheus/api/key_pairs_interface.rb +0 -6
  48. data/lib/morpheus/api/library_cluster_layouts_interface.rb +0 -6
  49. data/lib/morpheus/api/library_container_scripts_interface.rb +0 -6
  50. data/lib/morpheus/api/library_container_templates_interface.rb +0 -6
  51. data/lib/morpheus/api/library_container_types_interface.rb +0 -6
  52. data/lib/morpheus/api/library_container_upgrades_interface.rb +0 -6
  53. data/lib/morpheus/api/library_instance_types_interface.rb +0 -6
  54. data/lib/morpheus/api/library_layouts_interface.rb +0 -6
  55. data/lib/morpheus/api/library_spec_template_types_interface.rb +0 -6
  56. data/lib/morpheus/api/library_spec_templates_interface.rb +0 -6
  57. data/lib/morpheus/api/license_interface.rb +0 -6
  58. data/lib/morpheus/api/load_balancer_pools_interface.rb +9 -0
  59. data/lib/morpheus/api/load_balancer_types_interface.rb +9 -0
  60. data/lib/morpheus/api/load_balancer_virtual_servers_interface.rb +9 -0
  61. data/lib/morpheus/api/load_balancers_interface.rb +4 -59
  62. data/lib/morpheus/api/log_settings_interface.rb +9 -12
  63. data/lib/morpheus/api/logs_interface.rb +0 -6
  64. data/lib/morpheus/api/monitoring_alerts_interface.rb +0 -6
  65. data/lib/morpheus/api/monitoring_apps_interface.rb +0 -6
  66. data/lib/morpheus/api/monitoring_checks_interface.rb +0 -6
  67. data/lib/morpheus/api/monitoring_contacts_interface.rb +0 -6
  68. data/lib/morpheus/api/monitoring_groups_interface.rb +0 -6
  69. data/lib/morpheus/api/monitoring_incidents_interface.rb +0 -6
  70. data/lib/morpheus/api/monitoring_interface.rb +6 -12
  71. data/lib/morpheus/api/network_domain_records_interface.rb +0 -6
  72. data/lib/morpheus/api/network_domains_interface.rb +0 -6
  73. data/lib/morpheus/api/network_groups_interface.rb +0 -6
  74. data/lib/morpheus/api/network_pool_ips_interface.rb +0 -6
  75. data/lib/morpheus/api/network_pool_servers_interface.rb +0 -6
  76. data/lib/morpheus/api/network_pools_interface.rb +0 -6
  77. data/lib/morpheus/api/network_proxies_interface.rb +0 -6
  78. data/lib/morpheus/api/network_routers_interface.rb +56 -6
  79. data/lib/morpheus/api/network_security_servers_interface.rb +6 -9
  80. data/lib/morpheus/api/network_services_interface.rb +14 -14
  81. data/lib/morpheus/api/network_subnets_interface.rb +0 -6
  82. data/lib/morpheus/api/network_types_interface.rb +1 -7
  83. data/lib/morpheus/api/networks_interface.rb +0 -6
  84. data/lib/morpheus/api/option_type_lists_interface.rb +18 -12
  85. data/lib/morpheus/api/option_types_interface.rb +0 -6
  86. data/lib/morpheus/api/options_interface.rb +0 -6
  87. data/lib/morpheus/api/packages_interface.rb +0 -6
  88. data/lib/morpheus/api/policies_interface.rb +1 -8
  89. data/lib/morpheus/api/power_schedules_interface.rb +0 -6
  90. data/lib/morpheus/api/price_sets_interface.rb +8 -11
  91. data/lib/morpheus/api/prices_interface.rb +12 -15
  92. data/lib/morpheus/api/processes_interface.rb +0 -6
  93. data/lib/morpheus/api/provision_types_interface.rb +0 -6
  94. data/lib/morpheus/api/provisioning_license_types_interface.rb +0 -6
  95. data/lib/morpheus/api/provisioning_licenses_interface.rb +0 -6
  96. data/lib/morpheus/api/provisioning_settings_interface.rb +6 -9
  97. data/lib/morpheus/api/read_interface.rb +23 -0
  98. data/lib/morpheus/api/reports_interface.rb +0 -6
  99. data/lib/morpheus/api/rest_interface.rb +12 -10
  100. data/lib/morpheus/api/roles_interface.rb +7 -6
  101. data/lib/morpheus/api/secondary_read_interface.rb +25 -0
  102. data/lib/morpheus/api/secondary_rest_interface.rb +42 -0
  103. data/lib/morpheus/api/security_group_rules_interface.rb +0 -7
  104. data/lib/morpheus/api/security_groups_interface.rb +0 -6
  105. data/lib/morpheus/api/server_types_interface.rb +0 -6
  106. data/lib/morpheus/api/servers_interface.rb +7 -6
  107. data/lib/morpheus/api/service_plans_interface.rb +11 -14
  108. data/lib/morpheus/api/storage_providers_interface.rb +9 -16
  109. data/lib/morpheus/api/subnet_types_interface.rb +1 -7
  110. data/lib/morpheus/api/subnets_interface.rb +0 -6
  111. data/lib/morpheus/api/task_sets_interface.rb +0 -6
  112. data/lib/morpheus/api/tasks_interface.rb +0 -6
  113. data/lib/morpheus/api/user_groups_interface.rb +0 -6
  114. data/lib/morpheus/api/user_settings_interface.rb +38 -18
  115. data/lib/morpheus/api/user_sources_interface.rb +0 -6
  116. data/lib/morpheus/api/users_interface.rb +0 -6
  117. data/lib/morpheus/api/vdi_allocations_interface.rb +9 -0
  118. data/lib/morpheus/api/vdi_apps_interface.rb +9 -0
  119. data/lib/morpheus/api/vdi_gateways_interface.rb +9 -0
  120. data/lib/morpheus/api/vdi_interface.rb +28 -0
  121. data/lib/morpheus/api/vdi_pools_interface.rb +19 -0
  122. data/lib/morpheus/api/virtual_images_interface.rb +0 -6
  123. data/lib/morpheus/api/whitelabel_settings_interface.rb +8 -11
  124. data/lib/morpheus/api/wiki_interface.rb +0 -6
  125. data/lib/morpheus/cli.rb +10 -2
  126. data/lib/morpheus/cli/access_token_command.rb +1 -1
  127. data/lib/morpheus/cli/account_groups_command.rb +4 -4
  128. data/lib/morpheus/cli/apps.rb +68 -84
  129. data/lib/morpheus/cli/archives_command.rb +5 -5
  130. data/lib/morpheus/cli/blueprints_command.rb +5 -5
  131. data/lib/morpheus/cli/boot_scripts_command.rb +1 -1
  132. data/lib/morpheus/cli/catalog_item_types_command.rb +13 -13
  133. data/lib/morpheus/cli/certificates_command.rb +575 -0
  134. data/lib/morpheus/cli/change_password_command.rb +4 -4
  135. data/lib/morpheus/cli/cli_command.rb +72 -16
  136. data/lib/morpheus/cli/clouds.rb +3 -2
  137. data/lib/morpheus/cli/clusters.rb +3 -3
  138. data/lib/morpheus/cli/commands/standard/man_command.rb +4 -5
  139. data/lib/morpheus/cli/credentials.rb +4 -11
  140. data/lib/morpheus/cli/environments_command.rb +1 -1
  141. data/lib/morpheus/cli/execute_schedules_command.rb +3 -3
  142. data/lib/morpheus/cli/hosts.rb +253 -232
  143. data/lib/morpheus/cli/image_builder_command.rb +6 -6
  144. data/lib/morpheus/cli/instance_types.rb +1 -1
  145. data/lib/morpheus/cli/instances.rb +229 -219
  146. data/lib/morpheus/cli/integrations_command.rb +1155 -42
  147. data/lib/morpheus/cli/invoices_command.rb +75 -67
  148. data/lib/morpheus/cli/key_pairs.rb +2 -2
  149. data/lib/morpheus/cli/library_cluster_layouts_command.rb +2 -3
  150. data/lib/morpheus/cli/library_container_scripts_command.rb +4 -5
  151. data/lib/morpheus/cli/library_container_templates_command.rb +5 -1
  152. data/lib/morpheus/cli/library_container_types_command.rb +8 -9
  153. data/lib/morpheus/cli/library_instance_types_command.rb +6 -7
  154. data/lib/morpheus/cli/library_layouts_command.rb +9 -5
  155. data/lib/morpheus/cli/library_option_lists_command.rb +72 -20
  156. data/lib/morpheus/cli/library_option_types_command.rb +8 -4
  157. data/lib/morpheus/cli/library_spec_templates_command.rb +3 -4
  158. data/lib/morpheus/cli/library_upgrades_command.rb +6 -6
  159. data/lib/morpheus/cli/license.rb +2 -2
  160. data/lib/morpheus/cli/load_balancer_types.rb +37 -0
  161. data/lib/morpheus/cli/load_balancers.rb +149 -314
  162. data/lib/morpheus/cli/log_settings_command.rb +7 -3
  163. data/lib/morpheus/cli/login.rb +10 -1
  164. data/lib/morpheus/cli/mixins/load_balancers_helper.rb +156 -0
  165. data/lib/morpheus/cli/mixins/print_helper.rb +44 -18
  166. data/lib/morpheus/cli/mixins/provisioning_helper.rb +4 -4
  167. data/lib/morpheus/cli/mixins/rest_command.rb +657 -0
  168. data/lib/morpheus/cli/mixins/vdi_helper.rb +246 -0
  169. data/lib/morpheus/cli/network_routers_command.rb +1187 -176
  170. data/lib/morpheus/cli/networks_command.rb +195 -102
  171. data/lib/morpheus/cli/option_types.rb +66 -71
  172. data/lib/morpheus/cli/policies_command.rb +0 -1
  173. data/lib/morpheus/cli/power_schedules_command.rb +3 -3
  174. data/lib/morpheus/cli/preseed_scripts_command.rb +1 -1
  175. data/lib/morpheus/cli/remote.rb +2 -2
  176. data/lib/morpheus/cli/reports_command.rb +4 -1
  177. data/lib/morpheus/cli/roles.rb +224 -64
  178. data/lib/morpheus/cli/security_group_rules.rb +1 -1
  179. data/lib/morpheus/cli/setup.rb +0 -1
  180. data/lib/morpheus/cli/subnets_command.rb +11 -2
  181. data/lib/morpheus/cli/tenants_command.rb +21 -23
  182. data/lib/morpheus/cli/user_groups_command.rb +3 -3
  183. data/lib/morpheus/cli/user_settings_command.rb +268 -57
  184. data/lib/morpheus/cli/user_sources_command.rb +3 -3
  185. data/lib/morpheus/cli/users.rb +3 -3
  186. data/lib/morpheus/cli/vdi_allocations_command.rb +159 -0
  187. data/lib/morpheus/cli/vdi_apps_command.rb +317 -0
  188. data/lib/morpheus/cli/vdi_command.rb +359 -0
  189. data/lib/morpheus/cli/vdi_gateways_command.rb +290 -0
  190. data/lib/morpheus/cli/vdi_pools_command.rb +571 -0
  191. data/lib/morpheus/cli/version.rb +1 -1
  192. data/lib/morpheus/cli/virtual_images.rb +1 -1
  193. data/lib/morpheus/cli/whoami.rb +0 -15
  194. data/lib/morpheus/cli/wiki_command.rb +1 -1
  195. data/lib/morpheus/ext/string.rb +41 -0
  196. data/lib/morpheus/formatters.rb +4 -0
  197. data/lib/morpheus/rest_client.rb +30 -0
  198. data/lib/morpheus/terminal.rb +15 -7
  199. metadata +27 -2
@@ -1,12 +1,6 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::OptionTypesInterface < 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)
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::OptionsInterface < 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 options_for_source(source,params = {})
12
6
  url = "#{@base_url}/api/options/#{source}"
@@ -1,12 +1,6 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::PackagesInterface < 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)
12
6
  # raise "#{self.class}.get() passed a blank id!" if id.to_s == ''
@@ -1,13 +1,6 @@
1
1
  require 'morpheus/api/api_client'
2
- require 'uri'
3
2
 
4
3
  class Morpheus::PoliciesInterface < Morpheus::APIClient
5
- def initialize(access_token, refresh_token,expires_at = nil, base_url=nil)
6
- @access_token = access_token
7
- @refresh_token = refresh_token
8
- @base_url = base_url
9
- @expires_at = expires_at
10
- end
11
4
 
12
5
  def get(id, params={})
13
6
  raise "#{self.class}.get() passed a blank id!" if id.to_s == ''
@@ -54,7 +47,7 @@ class Morpheus::PoliciesInterface < Morpheus::APIClient
54
47
 
55
48
  def get_policy_type(id, params={})
56
49
  raise "#{self.class}.get_policy_type() passed a blank id!" if id.to_s == ''
57
- url = "#{@base_url}/api/policy-types/#{URI.escape(id.to_s)}"
50
+ url = "#{@base_url}/api/policy-types/#{CGI::escape(id.to_s)}"
58
51
  headers = { params: params, authorization: "Bearer #{@access_token}" }
59
52
  opts = {method: :get, url: url, headers: headers}
60
53
  execute(opts)
@@ -1,12 +1,6 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::PowerSchedulesInterface < 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)
12
6
  raise "#{self.class}.get() passed a blank id!" if id.to_s == ''
@@ -1,40 +1,37 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::PriceSetsInterface < 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
- @api_url = "#{@base_url}/api/price-sets"
9
- @expires_at = expires_at
4
+
5
+ def base_path
6
+ "/api/price-sets"
10
7
  end
11
8
 
12
9
  def list(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 get(id, params={})
19
- url = "#{@api_url}/#{id}"
16
+ url = "#{base_path}/#{id}"
20
17
  headers = { params: params, authorization: "Bearer #{@access_token}" }
21
18
  execute(method: :get, url: url, headers: headers)
22
19
  end
23
20
 
24
21
  def create(payload)
25
- url = @api_url
22
+ url = base_path
26
23
  headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
27
24
  execute(method: :post, url: url, headers: headers, payload: payload.to_json)
28
25
  end
29
26
 
30
27
  def update(id, payload)
31
- url = "#{@api_url}/#{id}"
28
+ url = "#{base_path}/#{id}"
32
29
  headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
33
30
  execute(method: :put, url: url, headers: headers, payload: payload.to_json)
34
31
  end
35
32
 
36
33
  def deactivate(id, params={})
37
- url = "#{@api_url}/#{id}/deactivate"
34
+ url = "#{base_path}/#{id}/deactivate"
38
35
  headers = { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
39
36
  execute(method: :put, url: url, headers: headers)
40
37
  end
@@ -1,16 +1,13 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::PricesInterface < 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
- @api_url = "#{@base_url}/api/prices"
9
- @expires_at = expires_at
4
+
5
+ def base_path
6
+ "/api/prices"
10
7
  end
11
8
 
12
9
  def list(params={})
13
- url = @api_url
10
+ url = base_path
14
11
  if params['ids']
15
12
  url = "#{url}?#{params.delete('ids').collect {|id| "id=#{id}"}.join('&')}"
16
13
  end
@@ -19,49 +16,49 @@ class Morpheus::PricesInterface < Morpheus::APIClient
19
16
  end
20
17
 
21
18
  def get(id, params={})
22
- url = "#{@api_url}/#{id}"
19
+ url = "#{base_path}/#{id}"
23
20
  headers = { params: params, authorization: "Bearer #{@access_token}" }
24
21
  execute(method: :get, url: url, headers: headers)
25
22
  end
26
23
 
27
24
  def create(payload)
28
- url = @api_url
25
+ url = base_path
29
26
  headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
30
27
  execute(method: :post, url: url, headers: headers, payload: payload.to_json)
31
28
  end
32
29
 
33
30
  def update(id, payload)
34
- url = "#{@api_url}/#{id}"
31
+ url = "#{base_path}/#{id}"
35
32
  headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
36
33
  execute(method: :put, url: url, headers: headers, payload: payload.to_json)
37
34
  end
38
35
 
39
36
  def deactivate(id, params={})
40
- url = "#{@api_url}/#{id}/deactivate"
37
+ url = "#{base_path}/#{id}/deactivate"
41
38
  headers = { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
42
39
  execute(method: :put, url: url, headers: headers)
43
40
  end
44
41
 
45
42
  def list_datastores(params={})
46
- url = "#{@api_url}/datastores"
43
+ url = "#{base_path}/datastores"
47
44
  headers = { params: params, authorization: "Bearer #{@access_token}" }
48
45
  execute(method: :get, url: url, headers: headers)
49
46
  end
50
47
 
51
48
  def get_datastore(id, params={})
52
- url = "#{@api_url}/datastores/#{id}"
49
+ url = "#{base_path}/datastores/#{id}"
53
50
  headers = { params: params, authorization: "Bearer #{@access_token}" }
54
51
  execute(method: :get, url: url, headers: headers)
55
52
  end
56
53
 
57
54
  def list_volume_types(params={})
58
- url = "#{@api_url}/volume-types"
55
+ url = "#{base_path}/volume-types"
59
56
  headers = { params: params, authorization: "Bearer #{@access_token}" }
60
57
  execute(method: :get, url: url, headers: headers)
61
58
  end
62
59
 
63
60
  def get_volume_type(id, params={})
64
- url = "#{@api_url}/volume-types/#{id}"
61
+ url = "#{base_path}/volume-types/#{id}"
65
62
  headers = { params: params, authorization: "Bearer #{@access_token}" }
66
63
  execute(method: :get, url: url, headers: headers)
67
64
  end
@@ -1,12 +1,6 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::ProcessesInterface < 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/processes"
@@ -1,12 +1,6 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::ProvisionTypesInterface < 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/provision-types"
@@ -1,12 +1,6 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::ProvisioningLicenseTypesInterface < 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::ProvisioningLicensesInterface < 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,28 +1,25 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::ProvisioningSettingsInterface < Morpheus::APIClient
4
- def initialize(access_token, refresh_token,expires_at = nil, base_url=nil, api='provisioning-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/provisioning-settings"
10
7
  end
11
8
 
12
9
  def get()
13
- url = @api_url
10
+ url = base_path
14
11
  headers = { params: {}, authorization: "Bearer #{@access_token}" }
15
12
  execute(method: :get, url: url, headers: headers)
16
13
  end
17
14
 
18
15
  def update(payload)
19
- url = @api_url
16
+ url = base_path
20
17
  headers = { :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 template_types()
25
- url = "#{@api_url}/template-types"
22
+ url = "#{base_path}/template-types"
26
23
  headers = { params: {}, authorization: "Bearer #{@access_token}" }
27
24
  execute(method: :get, url: url, headers: headers)
28
25
  end
@@ -0,0 +1,23 @@
1
+ require 'morpheus/api/api_client'
2
+
3
+ # Interface class to be subclassed by interfaces that are read-only
4
+ # and only provide list() and get() methods, not full CRUD
5
+ # Subclasses must override the base_path method
6
+ class Morpheus::ReadInterface < Morpheus::APIClient
7
+
8
+ # subclasses should override in your interface
9
+ # Example: "/api/thing-types"
10
+ def base_path
11
+ raise "#{self.class} has not defined base_path!"
12
+ end
13
+
14
+ def list(params={}, headers={})
15
+ execute(method: :get, url: "#{base_path}", params: params, headers: headers)
16
+ end
17
+
18
+ def get(id, params={}, headers={})
19
+ validate_id!(id)
20
+ execute(method: :get, url: "#{base_path}/#{id}", params: params, headers: headers)
21
+ end
22
+
23
+ end
@@ -1,12 +1,6 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::ReportsInterface < 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,5 +1,7 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
+ # Interface class to be subclassed by interfaces that provide CRUD endpoints
4
+ # Subclasses must override the base_path method
3
5
  class Morpheus::RestInterface < Morpheus::APIClient
4
6
 
5
7
  # subclasses should override in your interface
@@ -8,27 +10,27 @@ class Morpheus::RestInterface < Morpheus::APIClient
8
10
  raise "#{self.class} has not defined base_path!"
9
11
  end
10
12
 
11
- def list(params={})
12
- execute(method: :get, url: "#{base_path}", params: params)
13
+ def list(params={}, headers={})
14
+ execute(method: :get, url: "#{base_path}", params: params, headers: headers)
13
15
  end
14
16
 
15
- def get(id, params={})
17
+ def get(id, params={}, headers={})
16
18
  validate_id!(id)
17
- execute(method: :get, url: "#{base_path}/#{id}", params: params)
19
+ execute(method: :get, url: "#{base_path}/#{id}", params: params, headers: headers)
18
20
  end
19
21
 
20
- def create(payload, params={})
21
- execute(method: :post, url: "#{base_path}", params: params, payload: payload.to_json)
22
+ def create(payload, params={}, headers={})
23
+ execute(method: :post, url: "#{base_path}", params: params, payload: payload, headers: headers)
22
24
  end
23
25
 
24
- def update(id, payload, params={})
26
+ def update(id, payload, params={}, headers={})
25
27
  validate_id!(id)
26
- execute(method: :put, url: "#{base_path}/#{id}", params: params, payload: payload.to_json)
28
+ execute(method: :put, url: "#{base_path}/#{id}", params: params, payload: payload, headers: headers)
27
29
  end
28
30
 
29
- def destroy(id, params = {})
31
+ def destroy(id, params = {}, headers={})
30
32
  validate_id!(id)
31
- execute(method: :delete, url: "#{base_path}/#{id}", params: params)
33
+ execute(method: :delete, url: "#{base_path}/#{id}", params: params, headers: headers)
32
34
  end
33
35
 
34
36
  end
@@ -1,12 +1,6 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::RolesInterface < 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 == ''
@@ -91,6 +85,13 @@ class Morpheus::RolesInterface < Morpheus::APIClient
91
85
  execute(method: :put, url: url, headers: headers, payload: payload.to_json)
92
86
  end
93
87
 
88
+ def update_vdi_pool(account_id, id, options)
89
+ url = build_url(account_id, id) + "/update-vdi-pool"
90
+ headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
91
+ payload = options
92
+ execute(method: :put, url: url, headers: headers, payload: payload.to_json)
93
+ end
94
+
94
95
  private
95
96
 
96
97
  def build_url(account_id=nil, role_id=nil)
@@ -0,0 +1,25 @@
1
+ require 'morpheus/api/api_client'
2
+
3
+ # Interface class to be subclassed by interfaces that provide CRUD endpoints
4
+ # for objects underneath another resource
5
+ # Subclasses must override the base_path(resource_id) method
6
+ class Morpheus::SecondaryReadInterface < Morpheus::APIClient
7
+
8
+ # subclasses should override in your interface
9
+ # Example: "/api/things/#{resource_id}/widgets"
10
+ def base_path(resource_id)
11
+ raise "#{self.class} has not defined base_path(resource_id)!"
12
+ end
13
+
14
+ def list(resource_id, params={}, headers={})
15
+ validate_id!(resource_id)
16
+ execute(method: :get, url: "#{base_path(resource_id)}", params: params, headers: headers)
17
+ end
18
+
19
+ def get(resource_id, id, params={}, headers={})
20
+ validate_id!(resource_id)
21
+ validate_id!(id)
22
+ execute(method: :get, url: "#{base_path(resource_id)}/#{id}", params: params, headers: headers)
23
+ end
24
+
25
+ end
@@ -0,0 +1,42 @@
1
+ require 'morpheus/api/api_client'
2
+
3
+ # Interface class to be subclassed by interfaces that provide CRUD endpoints
4
+ # for objects underneath another resource
5
+ # Subclasses must override the base_path(resource_id) method
6
+ class Morpheus::SecondaryRestInterface < Morpheus::APIClient
7
+
8
+ # subclasses should override in your interface
9
+ # Example: "/api/things/#{resource_id}/widgets"
10
+ def base_path(resource_id)
11
+ raise "#{self.class} has not defined base_path(resource_id)!"
12
+ end
13
+
14
+ def list(resource_id, params={}, headers={})
15
+ validate_id!(resource_id)
16
+ execute(method: :get, url: "#{base_path(resource_id)}", params: params, headers: headers)
17
+ end
18
+
19
+ def get(resource_id, id, params={}, headers={})
20
+ validate_id!(resource_id)
21
+ validate_id!(id)
22
+ execute(method: :get, url: "#{base_path(resource_id)}/#{id}", params: params, headers: headers)
23
+ end
24
+
25
+ def create(resource_id, payload, params={}, headers={})
26
+ validate_id!(resource_id)
27
+ execute(method: :post, url: "#{base_path(resource_id)}", params: params, payload: payload, headers: headers)
28
+ end
29
+
30
+ def update(resource_id, id, payload, params={}, headers={})
31
+ validate_id!(resource_id)
32
+ validate_id!(id)
33
+ execute(method: :put, url: "#{base_path(resource_id)}/#{id}", params: params, payload: payload, headers: headers)
34
+ end
35
+
36
+ def destroy(resource_id, id, params = {}, headers={})
37
+ validate_id!(resource_id)
38
+ validate_id!(id)
39
+ execute(method: :delete, url: "#{base_path(resource_id)}/#{id}", params: params, headers: headers)
40
+ end
41
+
42
+ end