morpheus-cli 5.3.0.1 → 5.3.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 (190) 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 +1 -7
  6. data/lib/morpheus/api/api_client.rb +155 -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_balancers_interface.rb +0 -6
  59. data/lib/morpheus/api/log_settings_interface.rb +9 -12
  60. data/lib/morpheus/api/logs_interface.rb +0 -6
  61. data/lib/morpheus/api/monitoring_alerts_interface.rb +0 -6
  62. data/lib/morpheus/api/monitoring_apps_interface.rb +0 -6
  63. data/lib/morpheus/api/monitoring_checks_interface.rb +0 -6
  64. data/lib/morpheus/api/monitoring_contacts_interface.rb +0 -6
  65. data/lib/morpheus/api/monitoring_groups_interface.rb +0 -6
  66. data/lib/morpheus/api/monitoring_incidents_interface.rb +0 -6
  67. data/lib/morpheus/api/monitoring_interface.rb +6 -12
  68. data/lib/morpheus/api/network_domain_records_interface.rb +0 -6
  69. data/lib/morpheus/api/network_domains_interface.rb +0 -6
  70. data/lib/morpheus/api/network_groups_interface.rb +0 -6
  71. data/lib/morpheus/api/network_pool_ips_interface.rb +0 -6
  72. data/lib/morpheus/api/network_pool_servers_interface.rb +0 -6
  73. data/lib/morpheus/api/network_pools_interface.rb +0 -6
  74. data/lib/morpheus/api/network_proxies_interface.rb +0 -6
  75. data/lib/morpheus/api/network_routers_interface.rb +0 -6
  76. data/lib/morpheus/api/network_security_servers_interface.rb +6 -9
  77. data/lib/morpheus/api/network_services_interface.rb +14 -14
  78. data/lib/morpheus/api/network_subnets_interface.rb +0 -6
  79. data/lib/morpheus/api/network_types_interface.rb +1 -7
  80. data/lib/morpheus/api/networks_interface.rb +0 -6
  81. data/lib/morpheus/api/option_type_lists_interface.rb +18 -12
  82. data/lib/morpheus/api/option_types_interface.rb +0 -6
  83. data/lib/morpheus/api/options_interface.rb +0 -6
  84. data/lib/morpheus/api/packages_interface.rb +0 -6
  85. data/lib/morpheus/api/policies_interface.rb +1 -8
  86. data/lib/morpheus/api/power_schedules_interface.rb +0 -6
  87. data/lib/morpheus/api/price_sets_interface.rb +8 -11
  88. data/lib/morpheus/api/prices_interface.rb +12 -15
  89. data/lib/morpheus/api/processes_interface.rb +0 -6
  90. data/lib/morpheus/api/provision_types_interface.rb +0 -6
  91. data/lib/morpheus/api/provisioning_license_types_interface.rb +0 -6
  92. data/lib/morpheus/api/provisioning_licenses_interface.rb +0 -6
  93. data/lib/morpheus/api/provisioning_settings_interface.rb +6 -9
  94. data/lib/morpheus/api/read_interface.rb +23 -0
  95. data/lib/morpheus/api/reports_interface.rb +0 -6
  96. data/lib/morpheus/api/rest_interface.rb +12 -10
  97. data/lib/morpheus/api/roles_interface.rb +7 -6
  98. data/lib/morpheus/api/security_group_rules_interface.rb +0 -7
  99. data/lib/morpheus/api/security_groups_interface.rb +0 -6
  100. data/lib/morpheus/api/server_types_interface.rb +0 -6
  101. data/lib/morpheus/api/servers_interface.rb +7 -6
  102. data/lib/morpheus/api/service_plans_interface.rb +11 -14
  103. data/lib/morpheus/api/storage_providers_interface.rb +9 -16
  104. data/lib/morpheus/api/subnet_types_interface.rb +1 -7
  105. data/lib/morpheus/api/subnets_interface.rb +0 -6
  106. data/lib/morpheus/api/task_sets_interface.rb +0 -6
  107. data/lib/morpheus/api/tasks_interface.rb +0 -6
  108. data/lib/morpheus/api/user_groups_interface.rb +0 -6
  109. data/lib/morpheus/api/user_settings_interface.rb +38 -18
  110. data/lib/morpheus/api/user_sources_interface.rb +0 -6
  111. data/lib/morpheus/api/users_interface.rb +0 -6
  112. data/lib/morpheus/api/vdi_allocations_interface.rb +9 -0
  113. data/lib/morpheus/api/vdi_apps_interface.rb +9 -0
  114. data/lib/morpheus/api/vdi_gateways_interface.rb +9 -0
  115. data/lib/morpheus/api/vdi_interface.rb +28 -0
  116. data/lib/morpheus/api/vdi_pools_interface.rb +19 -0
  117. data/lib/morpheus/api/virtual_images_interface.rb +0 -6
  118. data/lib/morpheus/api/whitelabel_settings_interface.rb +8 -11
  119. data/lib/morpheus/api/wiki_interface.rb +0 -6
  120. data/lib/morpheus/cli.rb +9 -2
  121. data/lib/morpheus/cli/access_token_command.rb +1 -1
  122. data/lib/morpheus/cli/account_groups_command.rb +4 -4
  123. data/lib/morpheus/cli/apps.rb +68 -84
  124. data/lib/morpheus/cli/archives_command.rb +5 -5
  125. data/lib/morpheus/cli/blueprints_command.rb +5 -5
  126. data/lib/morpheus/cli/boot_scripts_command.rb +1 -1
  127. data/lib/morpheus/cli/catalog_item_types_command.rb +13 -13
  128. data/lib/morpheus/cli/certificates_command.rb +575 -0
  129. data/lib/morpheus/cli/change_password_command.rb +4 -4
  130. data/lib/morpheus/cli/cli_command.rb +63 -7
  131. data/lib/morpheus/cli/clouds.rb +3 -2
  132. data/lib/morpheus/cli/clusters.rb +3 -3
  133. data/lib/morpheus/cli/commands/standard/man_command.rb +4 -5
  134. data/lib/morpheus/cli/credentials.rb +4 -11
  135. data/lib/morpheus/cli/environments_command.rb +1 -1
  136. data/lib/morpheus/cli/execute_schedules_command.rb +3 -3
  137. data/lib/morpheus/cli/hosts.rb +253 -232
  138. data/lib/morpheus/cli/image_builder_command.rb +6 -6
  139. data/lib/morpheus/cli/instance_types.rb +1 -1
  140. data/lib/morpheus/cli/instances.rb +196 -186
  141. data/lib/morpheus/cli/integrations_command.rb +1155 -42
  142. data/lib/morpheus/cli/invoices_command.rb +75 -67
  143. data/lib/morpheus/cli/key_pairs.rb +2 -2
  144. data/lib/morpheus/cli/library_cluster_layouts_command.rb +2 -3
  145. data/lib/morpheus/cli/library_container_scripts_command.rb +4 -5
  146. data/lib/morpheus/cli/library_container_templates_command.rb +5 -1
  147. data/lib/morpheus/cli/library_container_types_command.rb +8 -9
  148. data/lib/morpheus/cli/library_instance_types_command.rb +6 -7
  149. data/lib/morpheus/cli/library_layouts_command.rb +9 -5
  150. data/lib/morpheus/cli/library_option_lists_command.rb +72 -20
  151. data/lib/morpheus/cli/library_option_types_command.rb +8 -4
  152. data/lib/morpheus/cli/library_spec_templates_command.rb +3 -4
  153. data/lib/morpheus/cli/library_upgrades_command.rb +6 -6
  154. data/lib/morpheus/cli/license.rb +2 -2
  155. data/lib/morpheus/cli/load_balancers.rb +1 -1
  156. data/lib/morpheus/cli/login.rb +10 -1
  157. data/lib/morpheus/cli/mixins/option_source_helper.rb +15 -16
  158. data/lib/morpheus/cli/mixins/print_helper.rb +33 -18
  159. data/lib/morpheus/cli/mixins/provisioning_helper.rb +4 -4
  160. data/lib/morpheus/cli/mixins/vdi_helper.rb +246 -0
  161. data/lib/morpheus/cli/network_domains_command.rb +2 -2
  162. data/lib/morpheus/cli/network_routers_command.rb +22 -9
  163. data/lib/morpheus/cli/networks_command.rb +2 -2
  164. data/lib/morpheus/cli/option_types.rb +39 -34
  165. data/lib/morpheus/cli/policies_command.rb +0 -1
  166. data/lib/morpheus/cli/power_schedules_command.rb +3 -3
  167. data/lib/morpheus/cli/preseed_scripts_command.rb +1 -1
  168. data/lib/morpheus/cli/remote.rb +2 -2
  169. data/lib/morpheus/cli/reports_command.rb +5 -2
  170. data/lib/morpheus/cli/roles.rb +224 -64
  171. data/lib/morpheus/cli/security_group_rules.rb +1 -1
  172. data/lib/morpheus/cli/setup.rb +0 -1
  173. data/lib/morpheus/cli/subnets_command.rb +11 -2
  174. data/lib/morpheus/cli/tenants_command.rb +3 -3
  175. data/lib/morpheus/cli/user_groups_command.rb +3 -3
  176. data/lib/morpheus/cli/user_settings_command.rb +268 -57
  177. data/lib/morpheus/cli/user_sources_command.rb +3 -3
  178. data/lib/morpheus/cli/users.rb +3 -3
  179. data/lib/morpheus/cli/vdi_allocations_command.rb +159 -0
  180. data/lib/morpheus/cli/vdi_apps_command.rb +317 -0
  181. data/lib/morpheus/cli/vdi_command.rb +359 -0
  182. data/lib/morpheus/cli/vdi_gateways_command.rb +290 -0
  183. data/lib/morpheus/cli/vdi_pools_command.rb +571 -0
  184. data/lib/morpheus/cli/version.rb +1 -1
  185. data/lib/morpheus/cli/virtual_images.rb +1 -1
  186. data/lib/morpheus/cli/whoami.rb +0 -15
  187. data/lib/morpheus/cli/wiki_command.rb +1 -1
  188. data/lib/morpheus/rest_client.rb +30 -0
  189. data/lib/morpheus/terminal.rb +15 -7
  190. metadata +18 -2
@@ -1,28 +1,25 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::ApplianceSettingsInterface < Morpheus::APIClient
4
- def initialize(access_token, refresh_token,expires_at = nil, base_url=nil, api='appliance-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/appliance-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 cloud_types(params={})
25
- url = "#{@api_url}/zone-types"
22
+ url = "#{base_path}/zone-types"
26
23
  headers = { params: params, authorization: "Bearer #{@access_token}" }
27
24
  opts = {method: :get, url: url, headers: headers}
28
25
  execute(opts)
@@ -1,22 +1,19 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::ApprovalsInterface < Morpheus::APIClient
4
- def initialize(access_token, refresh_token,expires_at = nil, base_url=nil, api='approvals')
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/approvals"
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: {}, authorization: "Bearer #{@access_token}" }
21
18
  execute(method: :get, url: url, headers: headers)
22
19
  end
@@ -1,13 +1,6 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::AppsInterface < 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
-
11
4
 
12
5
  def get(params={})
13
6
  url = "#{@base_url}/api/apps"
@@ -1,17 +1,10 @@
1
1
  require 'morpheus/api/api_client'
2
- require 'uri'
3
2
 
4
3
  class Morpheus::ArchiveBucketsInterface < 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 == ''
14
- url = "#{@base_url}/api/archives/buckets/#{URI.escape(id)}"
7
+ url = "#{@base_url}/api/archives/buckets/#{CGI::escape(id)}"
15
8
  headers = { params: params, authorization: "Bearer #{@access_token}" }
16
9
  opts = {method: :get, url: url, headers: headers}
17
10
  execute(opts)
@@ -32,14 +25,14 @@ class Morpheus::ArchiveBucketsInterface < Morpheus::APIClient
32
25
  end
33
26
 
34
27
  def update(id, payload)
35
- url = "#{@base_url}/api/archives/buckets/#{URI.escape(id.to_s)}"
28
+ url = "#{@base_url}/api/archives/buckets/#{CGI::escape(id.to_s)}"
36
29
  headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
37
30
  opts = {method: :put, url: url, headers: headers, payload: payload.to_json}
38
31
  execute(opts)
39
32
  end
40
33
 
41
34
  def destroy(id, params={})
42
- url = "#{@base_url}/api/archives/buckets/#{URI.escape(id.to_s)}"
35
+ url = "#{@base_url}/api/archives/buckets/#{CGI::escape(id.to_s)}"
43
36
  headers = { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
44
37
  opts = {method: :delete, url: url, headers: headers}
45
38
  execute(opts)
@@ -49,7 +42,7 @@ class Morpheus::ArchiveBucketsInterface < Morpheus::APIClient
49
42
  if file_path.to_s.strip == "/"
50
43
  file_path = ""
51
44
  end
52
- url = "#{@base_url}/api/archives/buckets/#{URI.escape(id.to_s)}" + "/files/#{URI.escape(file_path)}".squeeze('/')
45
+ url = "#{@base_url}/api/archives/buckets/#{CGI::escape(id.to_s)}" + "/files/#{CGI::escape(file_path)}".squeeze('/')
53
46
  headers = { params: params, authorization: "Bearer #{@access_token}" }
54
47
  opts = {method: :get, url: url, headers: headers}
55
48
  execute(opts)
@@ -68,13 +61,13 @@ class Morpheus::ArchiveBucketsInterface < Morpheus::APIClient
68
61
  end
69
62
  path_chunks = path.split("/")
70
63
  filename = path_chunks.pop
71
- safe_dirname = path_chunks.collect {|it| URI.escape(it) }.join("/")
64
+ safe_dirname = path_chunks.collect {|it| CGI::escape(it) }.join("/")
72
65
  # filename = File.basename(destination)
73
66
  # dirname = File.dirname(destination)
74
67
  # if filename == "" || filename == "/"
75
68
  # filename = File.basename(local_file)
76
69
  # end
77
- url = "#{@base_url}/api/archives/buckets/#{URI.escape(bucket_id.to_s)}" + "/files/#{safe_dirname}".squeeze('/')
70
+ url = "#{@base_url}/api/archives/buckets/#{CGI::escape(bucket_id.to_s)}" + "/files/#{safe_dirname}".squeeze('/')
78
71
  headers = { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/octet-stream'}
79
72
  headers[:params][:filename] = filename # File.basename(destination)
80
73
  if !local_file.kind_of?(File)
@@ -86,7 +79,7 @@ class Morpheus::ArchiveBucketsInterface < Morpheus::APIClient
86
79
  end
87
80
 
88
81
  def download_bucket_zip_chunked(bucket_id, outfile, params={})
89
- url = "#{@base_url}/api/archives/buckets/#{URI.escape(bucket_id.to_s)}" + ".zip"
82
+ url = "#{@base_url}/api/archives/buckets/#{CGI::escape(bucket_id.to_s)}" + ".zip"
90
83
  headers = { params: params, authorization: "Bearer #{@access_token}" }
91
84
  opts = {method: :get, url: url, headers: headers, timeout: 172800}
92
85
  # execute(opts, {parse_json:false})
@@ -114,7 +107,7 @@ class Morpheus::ArchiveBucketsInterface < Morpheus::APIClient
114
107
  end
115
108
 
116
109
  def recalc(id, params={})
117
- url = "#{@base_url}/api/archives/buckets/#{URI.escape(id.to_s)}/recalc"
110
+ url = "#{@base_url}/api/archives/buckets/#{CGI::escape(id.to_s)}/recalc"
118
111
  headers = { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
119
112
  opts = {method: :get, url: url, headers: headers, payload: payload.to_json}
120
113
  execute(opts)
@@ -1,11 +1,5 @@
1
1
  require 'morpheus/api/api_client'
2
2
  class Morpheus::ArchiveFilesInterface < Morpheus::APIClient
3
- def initialize(access_token, refresh_token,expires_at = nil, base_url=nil)
4
- @access_token = access_token
5
- @refresh_token = refresh_token
6
- @base_url = base_url
7
- @expires_at = expires_at
8
- end
9
3
 
10
4
  def get(file_id, params={})
11
5
  raise "#{self.class}.get() passed a blank id!" if file_id.to_s == ''
@@ -2,10 +2,10 @@ require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::AuthInterface < Morpheus::APIClient
4
4
 
5
- # def initialize(base_url, access_token=nil)
6
- # @base_url = base_url
7
- # @access_token = access_token
8
- # end
5
+ # no Authorization header is required
6
+ def authorization_required?
7
+ false
8
+ end
9
9
 
10
10
  def login(username, password, use_client_id=nil)
11
11
  if use_client_id
@@ -1,22 +1,19 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::BackupSettingsInterface < Morpheus::APIClient
4
- def initialize(access_token, refresh_token,expires_at = nil, base_url=nil, api='backup-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/backup-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
@@ -1,13 +1,7 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::BlueprintsInterface < 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 == ''
13
7
  url = "#{@base_url}/api/blueprints/#{id}"
@@ -1,12 +1,6 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::BudgetsInterface < 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 == ''
@@ -0,0 +1,14 @@
1
+ require 'morpheus/api/rest_interface'
2
+
3
+ class Morpheus::CertificateTypesInterface < Morpheus::RestInterface
4
+
5
+ def base_path
6
+ "/api/certificate-types"
7
+ end
8
+
9
+ def option_types(id, params={}, headers={})
10
+ validate_id!(id)
11
+ execute(method: :get, url: "#{base_path}/#{id}/option-types", params: params, headers: headers)
12
+ end
13
+
14
+ end
@@ -0,0 +1,9 @@
1
+ require 'morpheus/api/rest_interface'
2
+
3
+ class Morpheus::CertificatesInterface < Morpheus::RestInterface
4
+
5
+ def base_path
6
+ "/api/certificates"
7
+ end
8
+
9
+ end
@@ -1,12 +1,6 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::CloudDatastoresInterface < 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(cloud_id, id, params={})
12
6
  raise "#{self.class}.get() passed a blank id!" if id.to_s == ''
@@ -1,13 +1,7 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::CloudFoldersInterface < 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(cloud_id, id, params={})
12
6
  raise "#{self.class}.get() passed a blank id!" if id.to_s == ''
13
7
  url = "#{@base_url}/api/zones/#{cloud_id}/folders/#{id}"
@@ -1,12 +1,6 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::CloudPoliciesInterface < 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(cloud_id, 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::CloudResourcePoolsInterface < 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(cloud_id, 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::CloudsInterface < 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 cloud_types(params={})
12
6
  url = "#{@base_url}/api/zone-types"
@@ -1,28 +1,25 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::ClustersInterface < Morpheus::APIClient
4
- def initialize(access_token, refresh_token,expires_at = nil, base_url=nil, api='clusters')
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/clusters"
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(params={})
19
- url = @api_url
16
+ url = base_path
20
17
  headers = { params: {}, authorization: "Bearer #{@access_token}" }
21
18
 
22
19
  if params.is_a?(Hash)
23
20
  headers[:params].merge!(params)
24
21
  elsif params.is_a?(Numeric)
25
- url = "#{@api_url}/#{params}"
22
+ url = "#{base_path}/#{params}"
26
23
  elsif params.is_a?(String)
27
24
  headers[:params]['name'] = params
28
25
  end
@@ -30,19 +27,19 @@ class Morpheus::ClustersInterface < Morpheus::APIClient
30
27
  end
31
28
 
32
29
  def create(payload)
33
- url = @api_url
30
+ url = base_path
34
31
  headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
35
32
  execute(method: :post, url: url, headers: headers, payload: payload.to_json)
36
33
  end
37
34
 
38
35
  def update(id, payload)
39
- url = "#{@api_url}/#{id}"
36
+ url = "#{base_path}/#{id}"
40
37
  headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
41
38
  execute(method: :put, url: url, headers: headers, payload: payload.to_json)
42
39
  end
43
40
 
44
41
  def destroy(id, params={})
45
- url = "#{@api_url}/#{id}"
42
+ url = "#{base_path}/#{id}"
46
43
  headers = { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
47
44
  execute(method: :delete, url: url, headers: headers)
48
45
  end
@@ -57,13 +54,13 @@ class Morpheus::ClustersInterface < Morpheus::APIClient
57
54
  end
58
55
 
59
56
  def update_permissions(id, payload)
60
- url = "#{@api_url}/#{id}/permissions"
57
+ url = "#{base_path}/#{id}/permissions"
61
58
  headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
62
59
  execute(method: :put, url: url, headers: headers, payload: payload.to_json)
63
60
  end
64
61
 
65
62
  def list_jobs(id, params={})
66
- url = "#{@api_url}/#{id}/jobs"
63
+ url = "#{base_path}/#{id}/jobs"
67
64
  headers = { params: params, authorization: "Bearer #{@access_token}" }
68
65
  execute(method: :get, url: url, headers: headers)
69
66
  end
@@ -71,10 +68,10 @@ class Morpheus::ClustersInterface < Morpheus::APIClient
71
68
  def destroy_job(id, job_id=nil, params={}, payload={})
72
69
  url = nil
73
70
  if job_id.is_a?(Array)
74
- url = "#{@api_url}/#{id}/jobs"
71
+ url = "#{base_path}/#{id}/jobs"
75
72
  params['jobId'] = job_id
76
73
  elsif job_id.is_a?(Numeric) || job_id.is_a?(String)
77
- url = "#{@api_url}/#{id}/jobs/#{job_id}"
74
+ url = "#{base_path}/#{id}/jobs/#{job_id}"
78
75
  else
79
76
  raise "passed a bad volume_id: #{job_id || '(none)'}" # lazy
80
77
  end
@@ -83,19 +80,19 @@ class Morpheus::ClustersInterface < Morpheus::APIClient
83
80
  end
84
81
 
85
82
  def list_masters(id, params={})
86
- url = "#{@api_url}/#{id}/masters"
83
+ url = "#{base_path}/#{id}/masters"
87
84
  headers = { params: params, authorization: "Bearer #{@access_token}" }
88
85
  execute(method: :get, url: url, headers: headers)
89
86
  end
90
87
 
91
88
  def list_workers(id, params={})
92
- url = "#{@api_url}/#{id}/workers"
89
+ url = "#{base_path}/#{id}/workers"
93
90
  headers = { params: params, authorization: "Bearer #{@access_token}" }
94
91
  execute(method: :get, url: url, headers: headers)
95
92
  end
96
93
 
97
94
  def list_services(id, params={})
98
- url = "#{@api_url}/#{id}/services"
95
+ url = "#{base_path}/#{id}/services"
99
96
  headers = { params: params, authorization: "Bearer #{@access_token}" }
100
97
  execute(method: :get, url: url, headers: headers)
101
98
  end
@@ -104,10 +101,10 @@ class Morpheus::ClustersInterface < Morpheus::APIClient
104
101
  def destroy_service(id, service_id=nil, params={}, payload={})
105
102
  url = nil
106
103
  if service_id.is_a?(Array)
107
- url = "#{@api_url}/#{id}/services"
104
+ url = "#{base_path}/#{id}/services"
108
105
  params['serviceId'] = service_id
109
106
  elsif service_id.is_a?(Numeric) || service_id.is_a?(String)
110
- url = "#{@api_url}/#{id}/services/#{service_id}"
107
+ url = "#{base_path}/#{id}/services/#{service_id}"
111
108
  else
112
109
  raise "passed a bad volume_id: #{service_id || '(none)'}" # lazy
113
110
  end
@@ -116,13 +113,13 @@ class Morpheus::ClustersInterface < Morpheus::APIClient
116
113
  end
117
114
 
118
115
  def add_server(id, payload)
119
- url = "#{@api_url}/#{id}/servers"
116
+ url = "#{base_path}/#{id}/servers"
120
117
  headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
121
118
  execute(method: :post, url: url, headers: headers, payload: payload.to_json)
122
119
  end
123
120
 
124
121
  def list_volumes(id, params={})
125
- url = "#{@api_url}/#{id}/volumes"
122
+ url = "#{base_path}/#{id}/volumes"
126
123
  headers = { params: params, authorization: "Bearer #{@access_token}" }
127
124
  execute(method: :get, url: url, headers: headers)
128
125
  end
@@ -131,10 +128,10 @@ class Morpheus::ClustersInterface < Morpheus::APIClient
131
128
  def destroy_volume(id, volume_id=nil, params={}, payload={})
132
129
  url = nil
133
130
  if volume_id.is_a?(Array)
134
- url = "#{@api_url}/#{id}/volumes"
131
+ url = "#{base_path}/#{id}/volumes"
135
132
  params['volumeId'] = volume_id
136
133
  elsif volume_id.is_a?(Numeric) || volume_id.is_a?(String)
137
- url = "#{@api_url}/#{id}/volumes/#{volume_id}"
134
+ url = "#{base_path}/#{id}/volumes/#{volume_id}"
138
135
  else
139
136
  raise "passed a bad volume_id: #{volume_id || '(none)'}" # lazy
140
137
  end
@@ -145,31 +142,31 @@ class Morpheus::ClustersInterface < Morpheus::APIClient
145
142
  alias :delete_volume :destroy_volume
146
143
 
147
144
  def list_namespaces(id, params={})
148
- url = "#{@api_url}/#{id}/namespaces"
145
+ url = "#{base_path}/#{id}/namespaces"
149
146
  headers = { params: params, authorization: "Bearer #{@access_token}" }
150
147
  execute(method: :get, url: url, headers: headers)
151
148
  end
152
149
 
153
150
  def get_namespace(id, namespace_id, params={})
154
- url = "#{@api_url}/#{id}/namespaces/#{namespace_id}"
151
+ url = "#{base_path}/#{id}/namespaces/#{namespace_id}"
155
152
  headers = { params: params, authorization: "Bearer #{@access_token}" }
156
153
  execute(method: :get, url: url, headers: headers)
157
154
  end
158
155
 
159
156
  def create_namespace(id, payload)
160
- url = "#{@api_url}/#{id}/namespaces"
157
+ url = "#{base_path}/#{id}/namespaces"
161
158
  headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
162
159
  execute(method: :post, url: url, headers: headers, payload: payload.to_json)
163
160
  end
164
161
 
165
162
  def update_namespace(id, namespace_id, payload)
166
- url = "#{@api_url}/#{id}/namespaces/#{namespace_id}"
163
+ url = "#{base_path}/#{id}/namespaces/#{namespace_id}"
167
164
  headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
168
165
  execute(method: :put, url: url, headers: headers, payload: payload.to_json)
169
166
  end
170
167
 
171
168
  def destroy_namespace(id, namespace_id, params={})
172
- url = "#{@api_url}/#{id}/namespaces/#{namespace_id}"
169
+ url = "#{base_path}/#{id}/namespaces/#{namespace_id}"
173
170
  headers = { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
174
171
  execute(method: :delete, url: url, headers: headers)
175
172
  end
@@ -177,23 +174,23 @@ class Morpheus::ClustersInterface < Morpheus::APIClient
177
174
  alias :delete_namespace :destroy_namespace
178
175
 
179
176
  def list_containers(id, params={})
180
- url = "#{@api_url}/#{id}/containers"
177
+ url = "#{base_path}/#{id}/containers"
181
178
  headers = { params: params, authorization: "Bearer #{@access_token}" }
182
179
  execute(method: :get, url: url, headers: headers)
183
180
  end
184
181
 
185
182
  def restart_container(id, container_id, params={})
186
- url = "#{@api_url}/#{id}/containers/#{container_id}/restart"
183
+ url = "#{base_path}/#{id}/containers/#{container_id}/restart"
187
184
  headers = { params: params, authorization: "Bearer #{@access_token}" }
188
185
  execute(method: :put, url: url, headers: headers)
189
186
  end
190
187
 
191
188
  def destroy_container(id, container_id, params={})
192
189
  if container_id.is_a?(Array)
193
- url = "#{@api_url}/#{id}/containers"
190
+ url = "#{base_path}/#{id}/containers"
194
191
  params['containerId'] = container_id
195
192
  elsif container_id.is_a?(Numeric) || container_id.is_a?(String)
196
- url = "#{@api_url}/#{id}/containers/#{container_id}"
193
+ url = "#{base_path}/#{id}/containers/#{container_id}"
197
194
  else
198
195
  raise "passed a bad container_id: #{container_id || '(none)'}" # lazy
199
196
  end
@@ -202,23 +199,23 @@ class Morpheus::ClustersInterface < Morpheus::APIClient
202
199
  end
203
200
 
204
201
  def list_container_groups(id, resource_type, params={})
205
- url = "#{@api_url}/#{id}/#{resource_type}s"
202
+ url = "#{base_path}/#{id}/#{resource_type}s"
206
203
  headers = { params: params, authorization: "Bearer #{@access_token}" }
207
204
  execute(method: :get, url: url, headers: headers)
208
205
  end
209
206
 
210
207
  def restart_container_group(id, container_group_id, resource_type, params={})
211
- url = "#{@api_url}/#{id}/#{resource_type}s/#{container_group_id}/restart"
208
+ url = "#{base_path}/#{id}/#{resource_type}s/#{container_group_id}/restart"
212
209
  headers = { params: params, authorization: "Bearer #{@access_token}" }
213
210
  execute(method: :put, url: url, headers: headers)
214
211
  end
215
212
 
216
213
  def destroy_container_group(id, container_group_id, resource_type, params={})
217
214
  if container_group_id.is_a?(Array)
218
- url = "#{@api_url}/#{id}/#{resource_type}s"
215
+ url = "#{base_path}/#{id}/#{resource_type}s"
219
216
  params['containerGroupId'] = container_group_id
220
217
  elsif container_group_id.is_a?(Numeric) || container_group_id.is_a?(String)
221
- url = "#{@api_url}/#{id}/#{resource_type}s/#{container_group_id}"
218
+ url = "#{base_path}/#{id}/#{resource_type}s/#{container_group_id}"
222
219
  else
223
220
  raise "passed a bad container_group_id: #{container_group_id || '(none)'}" # lazy
224
221
  end
@@ -227,19 +224,19 @@ class Morpheus::ClustersInterface < Morpheus::APIClient
227
224
  end
228
225
 
229
226
  def list_datastores(id, params={})
230
- url = "#{@api_url}/#{id}/datastores"
227
+ url = "#{base_path}/#{id}/datastores"
231
228
  headers = { params: params, authorization: "Bearer #{@access_token}" }
232
229
  execute(method: :get, url: url, headers: headers)
233
230
  end
234
231
 
235
232
  def get_datastore(id, datastore_id, params={})
236
- url = "#{@api_url}/#{id}/datastores/#{datastore_id}"
233
+ url = "#{base_path}/#{id}/datastores/#{datastore_id}"
237
234
  headers = { params: params, authorization: "Bearer #{@access_token}" }
238
235
  execute(method: :get, url: url, headers: headers)
239
236
  end
240
237
 
241
238
  def update_datastore(id, datastore_id, payload)
242
- url = "#{@api_url}/#{id}/datastores/#{datastore_id}"
239
+ url = "#{base_path}/#{id}/datastores/#{datastore_id}"
243
240
  headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
244
241
  execute(method: :put, url: url, headers: headers, payload: payload.to_json)
245
242
  end
@@ -259,7 +256,7 @@ class Morpheus::ClustersInterface < Morpheus::APIClient
259
256
  end
260
257
 
261
258
  def api_config(id, params={})
262
- url = "#{@api_url}/#{id}/api-config"
259
+ url = "#{base_path}/#{id}/api-config"
263
260
  headers = { params: params, authorization: "Bearer #{@access_token}" }
264
261
  execute(method: :get, url: url, headers: headers)
265
262
  end