morpheus-cli 5.3.0 → 5.3.1.1

Sign up to get free protection for your applications and to get access to all the features.
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 +0 -6
  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 +7 -4
  133. data/lib/morpheus/cli/commands/standard/history_command.rb +4 -5
  134. data/lib/morpheus/cli/commands/standard/man_command.rb +4 -5
  135. data/lib/morpheus/cli/credentials.rb +4 -11
  136. data/lib/morpheus/cli/environments_command.rb +1 -1
  137. data/lib/morpheus/cli/execute_schedules_command.rb +3 -3
  138. data/lib/morpheus/cli/hosts.rb +253 -232
  139. data/lib/morpheus/cli/image_builder_command.rb +6 -6
  140. data/lib/morpheus/cli/instance_types.rb +1 -1
  141. data/lib/morpheus/cli/instances.rb +196 -186
  142. data/lib/morpheus/cli/integrations_command.rb +1155 -42
  143. data/lib/morpheus/cli/invoices_command.rb +75 -67
  144. data/lib/morpheus/cli/key_pairs.rb +2 -2
  145. data/lib/morpheus/cli/library_container_scripts_command.rb +1 -1
  146. data/lib/morpheus/cli/library_container_templates_command.rb +1 -1
  147. data/lib/morpheus/cli/library_container_types_command.rb +6 -6
  148. data/lib/morpheus/cli/library_instance_types_command.rb +4 -4
  149. data/lib/morpheus/cli/library_layouts_command.rb +5 -5
  150. data/lib/morpheus/cli/library_option_lists_command.rb +4 -4
  151. data/lib/morpheus/cli/library_option_types_command.rb +4 -4
  152. data/lib/morpheus/cli/library_upgrades_command.rb +6 -6
  153. data/lib/morpheus/cli/license.rb +2 -2
  154. data/lib/morpheus/cli/load_balancers.rb +1 -1
  155. data/lib/morpheus/cli/login.rb +10 -1
  156. data/lib/morpheus/cli/mixins/option_source_helper.rb +15 -16
  157. data/lib/morpheus/cli/mixins/print_helper.rb +33 -18
  158. data/lib/morpheus/cli/mixins/provisioning_helper.rb +4 -4
  159. data/lib/morpheus/cli/mixins/vdi_helper.rb +246 -0
  160. data/lib/morpheus/cli/network_domains_command.rb +2 -2
  161. data/lib/morpheus/cli/network_routers_command.rb +22 -9
  162. data/lib/morpheus/cli/networks_command.rb +2 -2
  163. data/lib/morpheus/cli/option_types.rb +39 -34
  164. data/lib/morpheus/cli/policies_command.rb +0 -1
  165. data/lib/morpheus/cli/power_schedules_command.rb +3 -3
  166. data/lib/morpheus/cli/preseed_scripts_command.rb +1 -1
  167. data/lib/morpheus/cli/remote.rb +2 -2
  168. data/lib/morpheus/cli/reports_command.rb +5 -2
  169. data/lib/morpheus/cli/roles.rb +224 -64
  170. data/lib/morpheus/cli/security_group_rules.rb +1 -1
  171. data/lib/morpheus/cli/service_plans_command.rb +4 -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"