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
@@ -1,16 +1,13 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::PricesInterface < Morpheus::APIClient
4
- def initialize(access_token, refresh_token,expires_at = nil, base_url=nil)
5
- @access_token = access_token
6
- @refresh_token = refresh_token
7
- @base_url = base_url
8
- @api_url = "#{@base_url}/api/prices"
9
- @expires_at = expires_at
4
+
5
+ def base_path
6
+ "/api/prices"
10
7
  end
11
8
 
12
9
  def list(params={})
13
- url = @api_url
10
+ url = base_path
14
11
  if params['ids']
15
12
  url = "#{url}?#{params.delete('ids').collect {|id| "id=#{id}"}.join('&')}"
16
13
  end
@@ -19,49 +16,49 @@ class Morpheus::PricesInterface < Morpheus::APIClient
19
16
  end
20
17
 
21
18
  def get(id, params={})
22
- url = "#{@api_url}/#{id}"
19
+ url = "#{base_path}/#{id}"
23
20
  headers = { params: params, authorization: "Bearer #{@access_token}" }
24
21
  execute(method: :get, url: url, headers: headers)
25
22
  end
26
23
 
27
24
  def create(payload)
28
- url = @api_url
25
+ url = base_path
29
26
  headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
30
27
  execute(method: :post, url: url, headers: headers, payload: payload.to_json)
31
28
  end
32
29
 
33
30
  def update(id, payload)
34
- url = "#{@api_url}/#{id}"
31
+ url = "#{base_path}/#{id}"
35
32
  headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
36
33
  execute(method: :put, url: url, headers: headers, payload: payload.to_json)
37
34
  end
38
35
 
39
36
  def deactivate(id, params={})
40
- url = "#{@api_url}/#{id}/deactivate"
37
+ url = "#{base_path}/#{id}/deactivate"
41
38
  headers = { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
42
39
  execute(method: :put, url: url, headers: headers)
43
40
  end
44
41
 
45
42
  def list_datastores(params={})
46
- url = "#{@api_url}/datastores"
43
+ url = "#{base_path}/datastores"
47
44
  headers = { params: params, authorization: "Bearer #{@access_token}" }
48
45
  execute(method: :get, url: url, headers: headers)
49
46
  end
50
47
 
51
48
  def get_datastore(id, params={})
52
- url = "#{@api_url}/datastores/#{id}"
49
+ url = "#{base_path}/datastores/#{id}"
53
50
  headers = { params: params, authorization: "Bearer #{@access_token}" }
54
51
  execute(method: :get, url: url, headers: headers)
55
52
  end
56
53
 
57
54
  def list_volume_types(params={})
58
- url = "#{@api_url}/volume-types"
55
+ url = "#{base_path}/volume-types"
59
56
  headers = { params: params, authorization: "Bearer #{@access_token}" }
60
57
  execute(method: :get, url: url, headers: headers)
61
58
  end
62
59
 
63
60
  def get_volume_type(id, params={})
64
- url = "#{@api_url}/volume-types/#{id}"
61
+ url = "#{base_path}/volume-types/#{id}"
65
62
  headers = { params: params, authorization: "Bearer #{@access_token}" }
66
63
  execute(method: :get, url: url, headers: headers)
67
64
  end
@@ -1,12 +1,6 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::ProcessesInterface < Morpheus::APIClient
4
- def initialize(access_token, refresh_token,expires_at = nil, base_url=nil)
5
- @access_token = access_token
6
- @refresh_token = refresh_token
7
- @base_url = base_url
8
- @expires_at = expires_at
9
- end
10
4
 
11
5
  def list(params={})
12
6
  url = "#{@base_url}/api/processes"
@@ -1,12 +1,6 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::ProvisionTypesInterface < Morpheus::APIClient
4
- def initialize(access_token, refresh_token,expires_at = nil, base_url=nil)
5
- @access_token = access_token
6
- @refresh_token = refresh_token
7
- @base_url = base_url
8
- @expires_at = expires_at
9
- end
10
4
 
11
5
  def list(params={})
12
6
  url = "#{@base_url}/api/provision-types"
@@ -1,12 +1,6 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::ProvisioningLicenseTypesInterface < Morpheus::APIClient
4
- def initialize(access_token, refresh_token,expires_at = nil, base_url=nil)
5
- @access_token = access_token
6
- @refresh_token = refresh_token
7
- @base_url = base_url
8
- @expires_at = expires_at
9
- end
10
4
 
11
5
  def get(id, params={})
12
6
  raise "#{self.class}.get() passed a blank id!" if id.to_s == ''
@@ -1,12 +1,6 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::ProvisioningLicensesInterface < Morpheus::APIClient
4
- def initialize(access_token, refresh_token,expires_at = nil, base_url=nil)
5
- @access_token = access_token
6
- @refresh_token = refresh_token
7
- @base_url = base_url
8
- @expires_at = expires_at
9
- end
10
4
 
11
5
  def get(id, params={})
12
6
  raise "#{self.class}.get() passed a blank id!" if id.to_s == ''
@@ -1,28 +1,25 @@
1
1
  require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::ProvisioningSettingsInterface < Morpheus::APIClient
4
- def initialize(access_token, refresh_token,expires_at = nil, base_url=nil, api='provisioning-settings')
5
- @access_token = access_token
6
- @refresh_token = refresh_token
7
- @base_url = base_url
8
- @api_url = "#{base_url}/api/#{api}"
9
- @expires_at = expires_at
4
+
5
+ def base_path
6
+ "/api/provisioning-settings"
10
7
  end
11
8
 
12
9
  def get()
13
- url = @api_url
10
+ url = base_path
14
11
  headers = { params: {}, authorization: "Bearer #{@access_token}" }
15
12
  execute(method: :get, url: url, headers: headers)
16
13
  end
17
14
 
18
15
  def update(payload)
19
- url = @api_url
16
+ url = base_path
20
17
  headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
21
18
  execute(method: :put, url: url, headers: headers, payload: payload.to_json)
22
19
  end
23
20
 
24
21
  def template_types()
25
- url = "#{@api_url}/template-types"
22
+ url = "#{base_path}/template-types"
26
23
  headers = { params: {}, authorization: "Bearer #{@access_token}" }
27
24
  execute(method: :get, url: url, headers: headers)
28
25
  end
@@ -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,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 == ''
@@ -0,0 +1,25 @@
1
+ require 'morpheus/api/api_client'
2
+
3
+ # Interface class to be subclassed by interfaces that provide CRUD endpoints
4
+ # for objects underneath another resource
5
+ # Subclasses must override the base_path(resource_id) method
6
+ class Morpheus::SecondaryReadInterface < Morpheus::APIClient
7
+
8
+ # subclasses should override in your interface
9
+ # Example: "/api/things/#{resource_id}/widgets"
10
+ def base_path(resource_id)
11
+ raise "#{self.class} has not defined base_path(resource_id)!"
12
+ end
13
+
14
+ def list(resource_id, params={}, headers={})
15
+ validate_id!(resource_id)
16
+ execute(method: :get, url: "#{base_path(resource_id)}", params: params, headers: headers)
17
+ end
18
+
19
+ def get(resource_id, id, params={}, headers={})
20
+ validate_id!(resource_id)
21
+ validate_id!(id)
22
+ execute(method: :get, url: "#{base_path(resource_id)}/#{id}", params: params, headers: headers)
23
+ end
24
+
25
+ end
@@ -0,0 +1,42 @@
1
+ require 'morpheus/api/api_client'
2
+
3
+ # Interface class to be subclassed by interfaces that provide CRUD endpoints
4
+ # for objects underneath another resource
5
+ # Subclasses must override the base_path(resource_id) method
6
+ class Morpheus::SecondaryRestInterface < Morpheus::APIClient
7
+
8
+ # subclasses should override in your interface
9
+ # Example: "/api/things/#{resource_id}/widgets"
10
+ def base_path(resource_id)
11
+ raise "#{self.class} has not defined base_path(resource_id)!"
12
+ end
13
+
14
+ def list(resource_id, params={}, headers={})
15
+ validate_id!(resource_id)
16
+ execute(method: :get, url: "#{base_path(resource_id)}", params: params, headers: headers)
17
+ end
18
+
19
+ def get(resource_id, id, params={}, headers={})
20
+ validate_id!(resource_id)
21
+ validate_id!(id)
22
+ execute(method: :get, url: "#{base_path(resource_id)}/#{id}", params: params, headers: headers)
23
+ end
24
+
25
+ def create(resource_id, payload, params={}, headers={})
26
+ validate_id!(resource_id)
27
+ execute(method: :post, url: "#{base_path(resource_id)}", params: params, payload: payload, headers: headers)
28
+ end
29
+
30
+ def update(resource_id, id, payload, params={}, headers={})
31
+ validate_id!(resource_id)
32
+ validate_id!(id)
33
+ execute(method: :put, url: "#{base_path(resource_id)}/#{id}", params: params, payload: payload, headers: headers)
34
+ end
35
+
36
+ def destroy(resource_id, id, params = {}, headers={})
37
+ validate_id!(resource_id)
38
+ validate_id!(id)
39
+ execute(method: :delete, url: "#{base_path(resource_id)}/#{id}", params: params, headers: headers)
40
+ end
41
+
42
+ end
@@ -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"
@@ -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)