morpheus-cli 5.3.1 → 5.3.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. checksums.yaml +4 -4
  2. data/Dockerfile +1 -1
  3. data/lib/morpheus/api/account_groups_interface.rb +0 -6
  4. data/lib/morpheus/api/accounts_interface.rb +4 -36
  5. data/lib/morpheus/api/api_client.rb +120 -106
  6. data/lib/morpheus/api/appliance_settings_interface.rb +6 -9
  7. data/lib/morpheus/api/approvals_interface.rb +5 -8
  8. data/lib/morpheus/api/apps_interface.rb +0 -7
  9. data/lib/morpheus/api/archive_buckets_interface.rb +9 -16
  10. data/lib/morpheus/api/archive_files_interface.rb +0 -6
  11. data/lib/morpheus/api/auth_interface.rb +4 -4
  12. data/lib/morpheus/api/backup_settings_interface.rb +5 -8
  13. data/lib/morpheus/api/blueprints_interface.rb +1 -7
  14. data/lib/morpheus/api/budgets_interface.rb +0 -6
  15. data/lib/morpheus/api/cloud_datastores_interface.rb +0 -6
  16. data/lib/morpheus/api/cloud_folders_interface.rb +1 -7
  17. data/lib/morpheus/api/cloud_policies_interface.rb +0 -6
  18. data/lib/morpheus/api/cloud_resource_pools_interface.rb +0 -6
  19. data/lib/morpheus/api/clouds_interface.rb +0 -6
  20. data/lib/morpheus/api/clusters_interface.rb +39 -42
  21. data/lib/morpheus/api/containers_interface.rb +0 -6
  22. data/lib/morpheus/api/custom_instance_types_interface.rb +0 -6
  23. data/lib/morpheus/api/cypher_interface.rb +0 -6
  24. data/lib/morpheus/api/datastores_interface.rb +4 -7
  25. data/lib/morpheus/api/deploy_interface.rb +1 -6
  26. data/lib/morpheus/api/environments_interface.rb +0 -6
  27. data/lib/morpheus/api/execute_schedules_interface.rb +0 -6
  28. data/lib/morpheus/api/execution_request_interface.rb +0 -6
  29. data/lib/morpheus/api/file_copy_request_interface.rb +2 -9
  30. data/lib/morpheus/api/group_policies_interface.rb +0 -6
  31. data/lib/morpheus/api/groups_interface.rb +0 -7
  32. data/lib/morpheus/api/guidance_interface.rb +9 -12
  33. data/lib/morpheus/api/health_interface.rb +0 -6
  34. data/lib/morpheus/api/image_builder_boot_scripts_interface.rb +0 -6
  35. data/lib/morpheus/api/image_builder_image_builds_interface.rb +0 -6
  36. data/lib/morpheus/api/image_builder_interface.rb +3 -9
  37. data/lib/morpheus/api/image_builder_preseed_scripts_interface.rb +0 -6
  38. data/lib/morpheus/api/instance_types_interface.rb +0 -7
  39. data/lib/morpheus/api/instances_interface.rb +8 -19
  40. data/lib/morpheus/api/integrations_interface.rb +30 -0
  41. data/lib/morpheus/api/invoice_line_items_interface.rb +4 -9
  42. data/lib/morpheus/api/jobs_interface.rb +11 -14
  43. data/lib/morpheus/api/key_pairs_interface.rb +0 -6
  44. data/lib/morpheus/api/library_cluster_layouts_interface.rb +0 -6
  45. data/lib/morpheus/api/library_container_scripts_interface.rb +0 -6
  46. data/lib/morpheus/api/library_container_templates_interface.rb +0 -6
  47. data/lib/morpheus/api/library_container_types_interface.rb +0 -6
  48. data/lib/morpheus/api/library_container_upgrades_interface.rb +0 -6
  49. data/lib/morpheus/api/library_instance_types_interface.rb +0 -6
  50. data/lib/morpheus/api/library_layouts_interface.rb +0 -6
  51. data/lib/morpheus/api/library_spec_template_types_interface.rb +0 -6
  52. data/lib/morpheus/api/library_spec_templates_interface.rb +0 -6
  53. data/lib/morpheus/api/license_interface.rb +0 -6
  54. data/lib/morpheus/api/load_balancer_pools_interface.rb +9 -0
  55. data/lib/morpheus/api/load_balancer_types_interface.rb +9 -0
  56. data/lib/morpheus/api/load_balancer_virtual_servers_interface.rb +9 -0
  57. data/lib/morpheus/api/load_balancers_interface.rb +4 -59
  58. data/lib/morpheus/api/log_settings_interface.rb +9 -12
  59. data/lib/morpheus/api/logs_interface.rb +0 -6
  60. data/lib/morpheus/api/monitoring_alerts_interface.rb +0 -6
  61. data/lib/morpheus/api/monitoring_apps_interface.rb +0 -6
  62. data/lib/morpheus/api/monitoring_checks_interface.rb +0 -6
  63. data/lib/morpheus/api/monitoring_contacts_interface.rb +0 -6
  64. data/lib/morpheus/api/monitoring_groups_interface.rb +0 -6
  65. data/lib/morpheus/api/monitoring_incidents_interface.rb +0 -6
  66. data/lib/morpheus/api/monitoring_interface.rb +6 -12
  67. data/lib/morpheus/api/network_domain_records_interface.rb +0 -6
  68. data/lib/morpheus/api/network_domains_interface.rb +0 -6
  69. data/lib/morpheus/api/network_groups_interface.rb +0 -6
  70. data/lib/morpheus/api/network_pool_ips_interface.rb +0 -6
  71. data/lib/morpheus/api/network_pool_servers_interface.rb +0 -6
  72. data/lib/morpheus/api/network_pools_interface.rb +0 -6
  73. data/lib/morpheus/api/network_proxies_interface.rb +0 -6
  74. data/lib/morpheus/api/network_routers_interface.rb +56 -6
  75. data/lib/morpheus/api/network_security_servers_interface.rb +6 -9
  76. data/lib/morpheus/api/network_services_interface.rb +0 -14
  77. data/lib/morpheus/api/network_subnets_interface.rb +0 -6
  78. data/lib/morpheus/api/network_types_interface.rb +1 -7
  79. data/lib/morpheus/api/networks_interface.rb +0 -6
  80. data/lib/morpheus/api/option_type_lists_interface.rb +18 -12
  81. data/lib/morpheus/api/option_types_interface.rb +0 -6
  82. data/lib/morpheus/api/options_interface.rb +0 -6
  83. data/lib/morpheus/api/packages_interface.rb +0 -6
  84. data/lib/morpheus/api/policies_interface.rb +1 -8
  85. data/lib/morpheus/api/power_schedules_interface.rb +0 -6
  86. data/lib/morpheus/api/price_sets_interface.rb +8 -11
  87. data/lib/morpheus/api/prices_interface.rb +12 -15
  88. data/lib/morpheus/api/processes_interface.rb +0 -6
  89. data/lib/morpheus/api/provision_types_interface.rb +0 -6
  90. data/lib/morpheus/api/provisioning_license_types_interface.rb +0 -6
  91. data/lib/morpheus/api/provisioning_licenses_interface.rb +0 -6
  92. data/lib/morpheus/api/provisioning_settings_interface.rb +6 -9
  93. data/lib/morpheus/api/reports_interface.rb +0 -6
  94. data/lib/morpheus/api/roles_interface.rb +0 -6
  95. data/lib/morpheus/api/secondary_read_interface.rb +25 -0
  96. data/lib/morpheus/api/secondary_rest_interface.rb +42 -0
  97. data/lib/morpheus/api/security_group_rules_interface.rb +0 -7
  98. data/lib/morpheus/api/security_groups_interface.rb +0 -6
  99. data/lib/morpheus/api/server_types_interface.rb +0 -6
  100. data/lib/morpheus/api/servers_interface.rb +0 -6
  101. data/lib/morpheus/api/service_plans_interface.rb +11 -14
  102. data/lib/morpheus/api/storage_providers_interface.rb +9 -16
  103. data/lib/morpheus/api/subnet_types_interface.rb +1 -7
  104. data/lib/morpheus/api/subnets_interface.rb +0 -6
  105. data/lib/morpheus/api/task_sets_interface.rb +0 -6
  106. data/lib/morpheus/api/tasks_interface.rb +0 -6
  107. data/lib/morpheus/api/user_groups_interface.rb +0 -6
  108. data/lib/morpheus/api/user_sources_interface.rb +0 -6
  109. data/lib/morpheus/api/users_interface.rb +0 -6
  110. data/lib/morpheus/api/virtual_images_interface.rb +0 -6
  111. data/lib/morpheus/api/whitelabel_settings_interface.rb +8 -11
  112. data/lib/morpheus/api/wiki_interface.rb +0 -6
  113. data/lib/morpheus/cli/access_token_command.rb +1 -1
  114. data/lib/morpheus/cli/account_groups_command.rb +4 -4
  115. data/lib/morpheus/cli/apps.rb +9 -9
  116. data/lib/morpheus/cli/archives_command.rb +5 -5
  117. data/lib/morpheus/cli/blueprints_command.rb +5 -5
  118. data/lib/morpheus/cli/boot_scripts_command.rb +1 -1
  119. data/lib/morpheus/cli/change_password_command.rb +4 -4
  120. data/lib/morpheus/cli/cli_command.rb +11 -10
  121. data/lib/morpheus/cli/clouds.rb +2 -2
  122. data/lib/morpheus/cli/clusters.rb +2 -2
  123. data/lib/morpheus/cli/credentials.rb +4 -11
  124. data/lib/morpheus/cli/environments_command.rb +1 -1
  125. data/lib/morpheus/cli/execute_schedules_command.rb +3 -3
  126. data/lib/morpheus/cli/hosts.rb +8 -8
  127. data/lib/morpheus/cli/image_builder_command.rb +6 -6
  128. data/lib/morpheus/cli/instance_types.rb +1 -1
  129. data/lib/morpheus/cli/instances.rb +93 -64
  130. data/lib/morpheus/cli/integrations_command.rb +567 -1
  131. data/lib/morpheus/cli/invoices_command.rb +75 -67
  132. data/lib/morpheus/cli/key_pairs.rb +2 -2
  133. data/lib/morpheus/cli/library_cluster_layouts_command.rb +2 -3
  134. data/lib/morpheus/cli/library_container_scripts_command.rb +4 -5
  135. data/lib/morpheus/cli/library_container_templates_command.rb +5 -1
  136. data/lib/morpheus/cli/library_container_types_command.rb +8 -9
  137. data/lib/morpheus/cli/library_instance_types_command.rb +6 -7
  138. data/lib/morpheus/cli/library_layouts_command.rb +9 -5
  139. data/lib/morpheus/cli/library_option_lists_command.rb +72 -20
  140. data/lib/morpheus/cli/library_option_types_command.rb +8 -4
  141. data/lib/morpheus/cli/library_spec_templates_command.rb +3 -4
  142. data/lib/morpheus/cli/library_upgrades_command.rb +6 -6
  143. data/lib/morpheus/cli/license.rb +2 -2
  144. data/lib/morpheus/cli/load_balancer_types.rb +37 -0
  145. data/lib/morpheus/cli/load_balancers.rb +149 -314
  146. data/lib/morpheus/cli/log_settings_command.rb +7 -3
  147. data/lib/morpheus/cli/login.rb +3 -1
  148. data/lib/morpheus/cli/mixins/load_balancers_helper.rb +156 -0
  149. data/lib/morpheus/cli/mixins/print_helper.rb +11 -0
  150. data/lib/morpheus/cli/mixins/provisioning_helper.rb +2 -2
  151. data/lib/morpheus/cli/mixins/rest_command.rb +657 -0
  152. data/lib/morpheus/cli/network_routers_command.rb +1183 -185
  153. data/lib/morpheus/cli/networks_command.rb +194 -101
  154. data/lib/morpheus/cli/option_types.rb +34 -40
  155. data/lib/morpheus/cli/policies_command.rb +0 -1
  156. data/lib/morpheus/cli/power_schedules_command.rb +3 -3
  157. data/lib/morpheus/cli/preseed_scripts_command.rb +1 -1
  158. data/lib/morpheus/cli/remote.rb +1 -1
  159. data/lib/morpheus/cli/roles.rb +9 -9
  160. data/lib/morpheus/cli/security_group_rules.rb +1 -1
  161. data/lib/morpheus/cli/setup.rb +0 -1
  162. data/lib/morpheus/cli/tenants_command.rb +21 -23
  163. data/lib/morpheus/cli/user_groups_command.rb +3 -3
  164. data/lib/morpheus/cli/user_sources_command.rb +3 -3
  165. data/lib/morpheus/cli/users.rb +3 -3
  166. data/lib/morpheus/cli/version.rb +1 -1
  167. data/lib/morpheus/cli/virtual_images.rb +1 -1
  168. data/lib/morpheus/cli/whoami.rb +0 -15
  169. data/lib/morpheus/cli/wiki_command.rb +1 -1
  170. data/lib/morpheus/cli.rb +1 -0
  171. data/lib/morpheus/ext/string.rb +41 -0
  172. data/lib/morpheus/formatters.rb +4 -0
  173. metadata +11 -2
@@ -3,12 +3,6 @@ require 'morpheus/api/api_client'
3
3
  # Containers API interface.
4
4
  # All of the PUT methods support passing an array of IDs.
5
5
  class Morpheus::ContainersInterface < Morpheus::APIClient
6
- def initialize(access_token, refresh_token,expires_at = nil, base_url=nil)
7
- @access_token = access_token
8
- @refresh_token = refresh_token
9
- @base_url = base_url
10
- @expires_at = expires_at
11
- end
12
6
 
13
7
  # not used atm.. index api needs some work, we should implement it
14
8
  # so it just paginates all containers.
@@ -1,12 +1,6 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::CustomInstanceTypesInterface < 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/custom-instance-types"
@@ -2,12 +2,6 @@ require 'morpheus/api/api_client'
2
2
  require 'uri'
3
3
 
4
4
  class Morpheus::CypherInterface < 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
5
 
12
6
  def base_path
13
7
  # can use just "/api/cypher" in 4.1.2
@@ -1,16 +1,13 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::DatastoresInterface < Morpheus::APIClient
4
- def initialize(access_token, refresh_token,expires_at = nil, base_url=nil, api='data-stores')
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/data-stores"
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
@@ -3,17 +3,12 @@ require 'net/http/post/multipart'
3
3
  require 'mime/types'
4
4
 
5
5
  class Morpheus::DeployInterface < Morpheus::APIClient
6
- def initialize(access_token, refresh_token,expires_at = nil, base_url=nil)
7
- @access_token = access_token
8
- @refresh_token = refresh_token
9
- @base_url = base_url
10
- @expires_at = expires_at
11
- end
12
6
 
13
7
  def base_path
14
8
  # /api/deploys is now available in 5.0, switch to that eventually...
15
9
  "/api/deploy"
16
10
  end
11
+
17
12
  def list(params={})
18
13
  execute(method: :get, url: "#{base_path}", params: params)
19
14
  end
@@ -1,12 +1,6 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::EnvironmentsInterface < 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::ExecuteSchedulesInterface < 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::ExecutionRequestInterface < 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,13 +1,6 @@
1
1
  require 'morpheus/api/api_client'
2
- require 'uri'
3
2
 
4
3
  class Morpheus::FileCopyRequestInterface < 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 == ''
@@ -35,7 +28,7 @@ class Morpheus::FileCopyRequestInterface < Morpheus::APIClient
35
28
  if !local_file.kind_of?(File)
36
29
  local_file = File.new(local_file, 'rb')
37
30
  end
38
- url = "#{@base_url}/api/file-copy-request/lease/#{URI.escape(id)}"
31
+ url = "#{@base_url}/api/file-copy-request/lease/#{CGI::escape(id)}"
39
32
  headers = { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/octet-stream'}
40
33
  headers[:params][:filename] = File.basename(local_file)
41
34
  payload = local_file
@@ -45,7 +38,7 @@ class Morpheus::FileCopyRequestInterface < Morpheus::APIClient
45
38
 
46
39
  def download_file_chunked(id, outfile, params={})
47
40
  raise "#{self.class}.download_file() passed a blank id!" if id.to_s == ''
48
- url = "#{@base_url}/api/file-copy-request/download/#{URI.escape(id)}"
41
+ url = "#{@base_url}/api/file-copy-request/download/#{CGI::escape(id)}"
49
42
  headers = { params: params, authorization: "Bearer #{@access_token}" }
50
43
  opts = {method: :get, url: url, headers: headers}
51
44
  # execute(opts, {parse_json: false})
@@ -1,12 +1,6 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::GroupPoliciesInterface < 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(group_id, id, params={})
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
2
 
3
3
  class Morpheus::GroupsInterface < 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 list(params={})
13
6
  url = "#{@base_url}/api/groups"
@@ -1,46 +1,43 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::GuidanceInterface < Morpheus::APIClient
4
- def initialize(access_token, refresh_token,expires_at = nil, base_url=nil, api='guidance')
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/guidance"
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 stats()
19
- url = "#{@api_url}/stats"
16
+ url = "#{base_path}/stats"
20
17
  headers = { params: {}, authorization: "Bearer #{@access_token}" }
21
18
  execute(method: :get, url: url, headers: headers)
22
19
  end
23
20
 
24
21
  def types()
25
- url = "#{@api_url}/types"
22
+ url = "#{base_path}/types"
26
23
  headers = { params: {}, authorization: "Bearer #{@access_token}" }
27
24
  execute(method: :get, url: url, headers: headers)
28
25
  end
29
26
 
30
27
  def get(id, params={})
31
- url = "#{@api_url}/#{id}"
28
+ url = "#{base_path}/#{id}"
32
29
  headers = { params: params, authorization: "Bearer #{@access_token}" }
33
30
  execute(method: :get, url: url, headers: headers)
34
31
  end
35
32
 
36
33
  def exec(id, params={})
37
- url = "#{@api_url}/#{id}/execute"
34
+ url = "#{base_path}/#{id}/execute"
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
41
38
 
42
39
  def ignore(id, params={})
43
- url = "#{@api_url}/#{id}/ignore"
40
+ url = "#{base_path}/#{id}/ignore"
44
41
  headers = { params: params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
45
42
  execute(method: :put, url: url, headers: headers)
46
43
  end
@@ -1,12 +1,6 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::HealthInterface < 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(params={})
12
6
  url = "#{@base_url}/api/health"
@@ -1,12 +1,6 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::ImageBuilderBootScriptsInterface < 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
  # this may change to just /api/image-builds
3
3
  class Morpheus::ImageBuilderImageBuildsInterface < 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 == ''
@@ -4,23 +4,17 @@ require 'morpheus/api/image_builder_preseed_scripts_interface'
4
4
  require 'morpheus/api/image_builder_boot_scripts_interface'
5
5
 
6
6
  class Morpheus::ImageBuilderInterface < 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 image_builds
15
- Morpheus::ImageBuilderImageBuildsInterface.new(@access_token, @refresh_token, @expires_at, @base_url)
9
+ Morpheus::ImageBuilderImageBuildsInterface.new(common_interface_options).setopts(@options)
16
10
  end
17
11
 
18
12
  def preseed_scripts
19
- Morpheus::ImageBuilderPreseedScriptsInterface.new(@access_token, @refresh_token, @expires_at, @base_url)
13
+ Morpheus::ImageBuilderPreseedScriptsInterface.new(common_interface_options).setopts(@options)
20
14
  end
21
15
 
22
16
  def boot_scripts
23
- Morpheus::ImageBuilderBootScriptsInterface.new(@access_token, @refresh_token, @expires_at, @base_url)
17
+ Morpheus::ImageBuilderBootScriptsInterface.new(common_interface_options).setopts(@options)
24
18
  end
25
19
 
26
20
  end
@@ -1,12 +1,6 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::ImageBuilderPreseedScriptsInterface < 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,13 +1,6 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::InstanceTypesInterface < 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(id, params={})
13
6
  raise "#{self.class}.get() passed a blank id!" if id.to_s == ''
@@ -1,29 +1,18 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::InstancesInterface < 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
4
+
5
+ def base_path
6
+ "/api/instances"
9
7
  end
10
8
 
11
- def get(params={})
12
- url = "#{@base_url}/api/instances"
13
- headers = { params: {}, authorization: "Bearer #{@access_token}" }
14
- if params.is_a?(Hash)
15
- headers[:params].merge!(params)
16
- elsif params.is_a?(Numeric)
17
- url = "#{@base_url}/api/instances/#{params}"
18
- elsif params.is_a?(String)
19
- headers[:params]['name'] = params
20
- end
21
- opts = {method: :get, url: url, headers: headers}
22
- execute(opts)
9
+ def list(params={}, headers={})
10
+ execute(method: :get, url: "#{base_path}", params: params, headers: headers)
23
11
  end
24
12
 
25
- def list(params={})
26
- get(params)
13
+ def get(id, params={}, headers={})
14
+ validate_id!(id)
15
+ execute(method: :get, url: "#{base_path}/#{id}", params: params, headers: headers)
27
16
  end
28
17
 
29
18
  def get_envs(id, params={})
@@ -11,4 +11,34 @@ class Morpheus::IntegrationsInterface < Morpheus::RestInterface
11
11
  execute(method: :post, url: "#{base_path}/#{id}/refresh", params: params, payload: payload, headers: headers)
12
12
  end
13
13
 
14
+ ## Integration Objects CRUD
15
+
16
+ def list_objects(id, params={}, headers={})
17
+ validate_id!(id)
18
+ execute(method: :get, url: "#{base_path}/#{id}/objects", params: params, headers: headers)
19
+ end
20
+
21
+ def get_object(id, obj_id, params={}, headers={})
22
+ validate_id!(id)
23
+ validate_id!(obj_id)
24
+ execute(method: :get, url: "#{base_path}/#{id}/objects/#{obj_id}", params: params, headers: headers)
25
+ end
26
+
27
+ def create_object(id, payload, params={}, headers={})
28
+ validate_id!(id)
29
+ execute(method: :post, url: "#{base_path}/#{id}/objects", params: params, payload: payload, headers: headers)
30
+ end
31
+
32
+ def update_object(id, obj_id, payload, params={}, headers={})
33
+ validate_id!(id)
34
+ validate_id!(obj_id)
35
+ execute(method: :put, url: "#{base_path}/#{id}/objects/#{obj_id}", params: params, payload: payload, headers: headers)
36
+ end
37
+
38
+ def destroy_object(id, obj_id, params = {}, headers={})
39
+ validate_id!(id)
40
+ validate_id!(obj_id)
41
+ execute(method: :delete, url: "#{base_path}/#{id}/objects/#{obj_id}", params: params, headers: headers)
42
+ end
43
+
14
44
  end
@@ -1,14 +1,9 @@
1
- require 'morpheus/api/api_client'
1
+ require 'morpheus/api/read_interface'
2
2
 
3
- class Morpheus::InvoiceLineItemsInterface < Morpheus::APIClient
3
+ class Morpheus::InvoiceLineItemsInterface < Morpheus::ReadInterface
4
4
 
5
- def list(params={})
6
- execute(method: :get, url: "/api/invoice-line-items", headers: {params: params})
7
- end
8
-
9
- def get(id, params={})
10
- raise "#{self.class}.get() passed a blank id!" if id.to_s == ''
11
- execute(method: :get, url: "/api/invoice-line-items/#{id}", headers: {params: params})
5
+ def base_path
6
+ "/api/invoice-line-items"
12
7
  end
13
8
 
14
9
  end
@@ -1,27 +1,24 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::JobsInterface < Morpheus::APIClient
4
- def initialize(access_token, refresh_token,expires_at = nil, base_url=nil, api='jobs')
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/jobs"
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
  if params.is_a?(Hash)
22
19
  headers[:params].merge!(params)
23
20
  elsif params.is_a?(Numeric)
24
- url = "#{@api_url}/#{params}"
21
+ url = "#{base_path}/#{params}"
25
22
  elsif params.is_a?(String)
26
23
  headers[:params]['name'] = params
27
24
  end
@@ -29,32 +26,32 @@ class Morpheus::JobsInterface < Morpheus::APIClient
29
26
  end
30
27
 
31
28
  def create(payload)
32
- url = @api_url
29
+ url = base_path
33
30
  headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
34
31
  execute(method: :post, url: url, headers: headers, payload: payload.to_json)
35
32
  end
36
33
 
37
34
  def update(id, payload, params={})
38
- url = "#{@api_url}/#{id}"
35
+ url = "#{base_path}/#{id}"
39
36
  headers = { params: params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
40
37
  execute(method: :put, url: url, headers: headers, payload: payload.to_json)
41
38
  end
42
39
 
43
40
  def destroy(id, params={})
44
- url = "#{@api_url}/#{id}"
41
+ url = "#{base_path}/#{id}"
45
42
  headers = { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
46
43
  execute(method: :delete, url: url, headers: headers)
47
44
  end
48
45
 
49
46
  def execute_job(id, params={})
50
- url = "#{@api_url}/#{id}/execute"
47
+ url = "#{base_path}/#{id}/execute"
51
48
  headers = { params: params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
52
49
  execute(method: :put, url: url, headers: headers)
53
50
  end
54
51
 
55
52
  =begin
56
53
  def list_job_executions(id, params={})
57
- url = "#{@api_url}/#{id}/executions"
54
+ url = "#{base_path}/#{id}/executions"
58
55
  headers = { params: params, authorization: "Bearer #{@access_token}" }
59
56
  execute(method: :get, url: url, headers: headers)
60
57
  end