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,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)
@@ -1,13 +1,6 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::SecurityGroupRulesInterface < 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(security_group_id, options=nil)
13
6
  url = "#{@base_url}/api/security-groups/#{security_group_id}/rules"
@@ -1,12 +1,6 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::SecurityGroupsInterface < 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/security-groups"
@@ -1,12 +1,6 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::ServerTypesInterface < 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::ServersInterface < 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(options=nil)
12
6
  url = "#{@base_url}/api/servers"
@@ -183,4 +177,11 @@ class Morpheus::ServersInterface < Morpheus::APIClient
183
177
  execute(opts)
184
178
  end
185
179
 
180
+ def software_sync(id, payload={}, params={})
181
+ url = "#{@base_url}/api/servers/#{id}/software/sync"
182
+ headers = { params: params, authorization: "Bearer #{@access_token}" }
183
+ opts = {method: :put, url: url, headers: headers}
184
+ execute(opts)
185
+ end
186
+
186
187
  end
@@ -1,58 +1,55 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::ServicePlansInterface < 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/service-plans"
9
- @expires_at = expires_at
4
+
5
+ def base_path
6
+ "/api/service-plans"
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 activate(id, params={})
37
- url = "#{@api_url}/#{id}/activate"
34
+ url = "#{base_path}/#{id}/activate"
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 deactivate(id, params={})
43
- url = "#{@api_url}/#{id}/deactivate"
40
+ url = "#{base_path}/#{id}/deactivate"
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
47
44
 
48
45
  def provision_types(params={})
49
- url = "#{@api_url}/provision-types"
46
+ url = "#{base_path}/provision-types"
50
47
  headers = { params: params, authorization: "Bearer #{@access_token}" }
51
48
  execute(method: :get, url: url, headers: headers)
52
49
  end
53
50
 
54
51
  def price_sets(params={})
55
- url = "#{@api_url}/price-sets"
52
+ url = "#{base_path}/price-sets"
56
53
  headers = { params: params, authorization: "Bearer #{@access_token}" }
57
54
  execute(method: :get, url: url, headers: headers)
58
55
  end
@@ -1,13 +1,6 @@
1
1
  require 'morpheus/api/api_client'
2
- require 'uri'
3
2
 
4
3
  class Morpheus::StorageProvidersInterface < 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 == ''
@@ -49,7 +42,7 @@ class Morpheus::StorageProvidersInterface < Morpheus::APIClient
49
42
  if file_path.to_s.strip == "/"
50
43
  file_path = ""
51
44
  end
52
- url = "#{@base_url}/api/storage/buckets/#{URI.escape(id.to_s)}" + "/files/#{URI.escape(file_path)}".squeeze('/')
45
+ url = "#{@base_url}/api/storage/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::StorageProvidersInterface < 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/storage/buckets/#{URI.escape(id.to_s)}" + "/files/#{safe_dirname}".squeeze('/')
70
+ url = "#{@base_url}/api/storage/buckets/#{CGI::escape(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)
@@ -88,8 +81,8 @@ class Morpheus::StorageProvidersInterface < Morpheus::APIClient
88
81
  def download_file(id, file_path, params={})
89
82
  raise "#{self.class}.download_file() passed a blank id!" if id.to_s == ''
90
83
  raise "#{self.class}.download_file() passed a blank file path!" if file_path.to_s == ''
91
- escaped_file_path = file_path.split("/").collect {|it| URI.escape(it) }.join("/")
92
- url = "#{@base_url}/api/storage/buckets/#{URI.escape(id.to_s)}" + "/download-file/#{escaped_file_path}".squeeze('/')
84
+ escaped_file_path = file_path.split("/").collect {|it| CGI::escape(it) }.join("/")
85
+ url = "#{@base_url}/api/storage/buckets/#{CGI::escape(id.to_s)}" + "/download-file/#{escaped_file_path}".squeeze('/')
93
86
  headers = { params: params, authorization: "Bearer #{@access_token}" }
94
87
  opts = {method: :get, url: url, headers: headers}
95
88
  execute(opts, false)
@@ -98,8 +91,8 @@ class Morpheus::StorageProvidersInterface < Morpheus::APIClient
98
91
  def download_file_chunked(id, file_path, outfile, params={})
99
92
  raise "#{self.class}.download_file() passed a blank id!" if id.to_s == ''
100
93
  raise "#{self.class}.download_file() passed a blank file path!" if file_path.to_s == ''
101
- escaped_file_path = file_path.split("/").collect {|it| URI.escape(it) }.join("/")
102
- url = "#{@base_url}/api/storage/buckets/#{URI.escape(id.to_s)}" + "/download-file/#{escaped_file_path}".squeeze('/')
94
+ escaped_file_path = file_path.split("/").collect {|it| CGI::escape(it) }.join("/")
95
+ url = "#{@base_url}/api/storage/buckets/#{CGI::escape(id.to_s)}" + "/download-file/#{escaped_file_path}".squeeze('/')
103
96
  headers = { params: params, authorization: "Bearer #{@access_token}" }
104
97
  opts = {method: :get, url: url, headers: headers}
105
98
  # execute(opts, false)
@@ -127,8 +120,8 @@ class Morpheus::StorageProvidersInterface < Morpheus::APIClient
127
120
  end
128
121
 
129
122
  def download_zip_chunked(id, outfile, params={})
130
- #url = "#{@base_url}/api/storage/buckets/#{URI.escape(id.to_s)}" + ".zip"
131
- url = "#{@base_url}/api/storage/buckets/#{URI.escape(id.to_s)}/download-zip"
123
+ #url = "#{@base_url}/api/storage/buckets/#{CGI::escape(id.to_s)}" + ".zip"
124
+ url = "#{@base_url}/api/storage/buckets/#{CGI::escape(id.to_s)}/download-zip"
132
125
  headers = { params: params, authorization: "Bearer #{@access_token}" }
133
126
  opts = {method: :get, url: url, headers: headers}
134
127
  # execute(opts, false)
@@ -1,14 +1,8 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::SubnetTypesInterface < Morpheus::APIClient
4
- def initialize(access_token, refresh_token,expires_at = nil, base_url=nil)
5
- @access_token = access_token
6
- @refresh_token = refresh_token
7
- @base_url = base_url
8
- @expires_at = expires_at
9
- end
10
4
 
11
- def get(id, params={})
5
+ def get(id, params={})
12
6
  raise "#{self.class}.get() passed a blank id!" if id.to_s == ''
13
7
  url = "#{@base_url}/api/subnet-types/#{id}"
14
8
  headers = { params: params, authorization: "Bearer #{@access_token}" }
@@ -1,12 +1,6 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::SubnetsInterface < Morpheus::APIClient
4
- def initialize(access_token, refresh_token,expires_at = nil, base_url=nil)
5
- @access_token = access_token
6
- @refresh_token = refresh_token
7
- @base_url = base_url
8
- @expires_at = expires_at
9
- end
10
4
 
11
5
  def get(id, params={})
12
6
  raise "#{self.class}.get() passed a blank id!" if id.to_s == ''
@@ -1,12 +1,6 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::TaskSetsInterface < Morpheus::APIClient
4
- def initialize(access_token, refresh_token,expires_at = nil, base_url=nil)
5
- @access_token = access_token
6
- @refresh_token = refresh_token
7
- @base_url = base_url
8
- @expires_at = expires_at
9
- end
10
4
 
11
5
  def list(params={})
12
6
  url = "#{@base_url}/api/task-sets"