morpheus-cli 4.1.8 → 4.1.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Dockerfile +1 -1
- data/lib/morpheus/api/api_client.rb +24 -0
- data/lib/morpheus/api/{old_cypher_interface.rb → budgets_interface.rb} +10 -11
- data/lib/morpheus/api/cloud_datastores_interface.rb +7 -0
- data/lib/morpheus/api/cloud_resource_pools_interface.rb +2 -2
- data/lib/morpheus/api/cypher_interface.rb +18 -12
- data/lib/morpheus/api/health_interface.rb +72 -0
- data/lib/morpheus/api/instances_interface.rb +1 -1
- data/lib/morpheus/api/library_instance_types_interface.rb +7 -0
- data/lib/morpheus/api/log_settings_interface.rb +6 -0
- data/lib/morpheus/api/network_security_servers_interface.rb +30 -0
- data/lib/morpheus/api/price_sets_interface.rb +42 -0
- data/lib/morpheus/api/prices_interface.rb +68 -0
- data/lib/morpheus/api/provisioning_settings_interface.rb +29 -0
- data/lib/morpheus/api/servers_interface.rb +1 -1
- data/lib/morpheus/api/service_plans_interface.rb +34 -11
- data/lib/morpheus/api/task_sets_interface.rb +8 -0
- data/lib/morpheus/api/tasks_interface.rb +8 -0
- data/lib/morpheus/cli.rb +6 -3
- data/lib/morpheus/cli/appliance_settings_command.rb +13 -5
- data/lib/morpheus/cli/approvals_command.rb +1 -1
- data/lib/morpheus/cli/apps.rb +88 -28
- data/lib/morpheus/cli/backup_settings_command.rb +1 -1
- data/lib/morpheus/cli/blueprints_command.rb +2 -0
- data/lib/morpheus/cli/budgets_command.rb +672 -0
- data/lib/morpheus/cli/cli_command.rb +13 -2
- data/lib/morpheus/cli/cli_registry.rb +1 -0
- data/lib/morpheus/cli/clusters.rb +40 -274
- data/lib/morpheus/cli/commands/standard/benchmark_command.rb +114 -66
- data/lib/morpheus/cli/commands/standard/coloring_command.rb +12 -0
- data/lib/morpheus/cli/commands/standard/curl_command.rb +31 -6
- data/lib/morpheus/cli/commands/standard/echo_command.rb +8 -3
- data/lib/morpheus/cli/commands/standard/set_prompt_command.rb +1 -1
- data/lib/morpheus/cli/containers_command.rb +37 -24
- data/lib/morpheus/cli/cypher_command.rb +191 -150
- data/lib/morpheus/cli/health_command.rb +903 -0
- data/lib/morpheus/cli/hosts.rb +43 -32
- data/lib/morpheus/cli/instances.rb +119 -68
- data/lib/morpheus/cli/jobs_command.rb +1 -1
- data/lib/morpheus/cli/library_instance_types_command.rb +61 -11
- data/lib/morpheus/cli/library_option_types_command.rb +2 -2
- data/lib/morpheus/cli/log_settings_command.rb +46 -3
- data/lib/morpheus/cli/logs_command.rb +24 -17
- data/lib/morpheus/cli/mixins/accounts_helper.rb +2 -0
- data/lib/morpheus/cli/mixins/logs_helper.rb +73 -19
- data/lib/morpheus/cli/mixins/print_helper.rb +29 -1
- data/lib/morpheus/cli/mixins/provisioning_helper.rb +554 -96
- data/lib/morpheus/cli/mixins/whoami_helper.rb +13 -1
- data/lib/morpheus/cli/networks_command.rb +3 -0
- data/lib/morpheus/cli/option_types.rb +83 -53
- data/lib/morpheus/cli/price_sets_command.rb +543 -0
- data/lib/morpheus/cli/prices_command.rb +669 -0
- data/lib/morpheus/cli/processes_command.rb +0 -2
- data/lib/morpheus/cli/provisioning_settings_command.rb +237 -0
- data/lib/morpheus/cli/remote.rb +9 -4
- data/lib/morpheus/cli/reports_command.rb +10 -4
- data/lib/morpheus/cli/roles.rb +93 -38
- data/lib/morpheus/cli/security_groups.rb +10 -0
- data/lib/morpheus/cli/service_plans_command.rb +736 -0
- data/lib/morpheus/cli/tasks.rb +220 -8
- data/lib/morpheus/cli/tenants_command.rb +3 -16
- data/lib/morpheus/cli/users.rb +2 -25
- data/lib/morpheus/cli/version.rb +1 -1
- data/lib/morpheus/cli/whitelabel_settings_command.rb +18 -18
- data/lib/morpheus/cli/whoami.rb +28 -10
- data/lib/morpheus/cli/workflows.rb +488 -36
- data/lib/morpheus/formatters.rb +22 -0
- data/morpheus-cli.gemspec +1 -0
- metadata +28 -5
- data/lib/morpheus/cli/accounts.rb +0 -335
- data/lib/morpheus/cli/old_cypher_command.rb +0 -412
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 07e484ff3233511b2a51a42df7cba277b96ac9f838166225b1b94af3229cba37
|
4
|
+
data.tar.gz: 63af8a86ea3e86102a7270f7e6187a26750787a86c0fbf5345c8652271543883
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7b9f0413f96cdc1da166407a814ca0d6de85554907e246f0f565b5b5b29b826b44785edab03056fd35b2751a02c4936033bc9de1b571d926509e4c489f38ef04
|
7
|
+
data.tar.gz: 02e0b0c3a999fc1e2d1340df9bf2933e45897b41aa5bcc7b0c82146bc2f8d685548363f8ddb9aa6b0bf91dea35bd380a2cde144f02efda2c75bf8c777aae50f3
|
data/Dockerfile
CHANGED
@@ -331,6 +331,10 @@ class Morpheus::APIClient
|
|
331
331
|
Morpheus::ApplianceSettingsInterface.new(@access_token, @refresh_token, @expires_at, @base_url).setopts(@options)
|
332
332
|
end
|
333
333
|
|
334
|
+
def provisioning_settings
|
335
|
+
Morpheus::ProvisioningSettingsInterface.new(@access_token, @refresh_token, @expires_at, @base_url).setopts(@options)
|
336
|
+
end
|
337
|
+
|
334
338
|
def containers
|
335
339
|
Morpheus::ContainersInterface.new(@access_token, @refresh_token, @expires_at, @base_url).setopts(@options)
|
336
340
|
end
|
@@ -359,6 +363,14 @@ class Morpheus::APIClient
|
|
359
363
|
Morpheus::ServicePlansInterface.new(@access_token, @refresh_token, @expires_at, @base_url).setopts(@options)
|
360
364
|
end
|
361
365
|
|
366
|
+
def price_sets
|
367
|
+
Morpheus::PriceSetsInterface.new(@access_token, @refresh_token, @expires_at, @base_url).setopts(@options)
|
368
|
+
end
|
369
|
+
|
370
|
+
def prices
|
371
|
+
Morpheus::PricesInterface.new(@access_token, @refresh_token, @expires_at, @base_url).setopts(@options)
|
372
|
+
end
|
373
|
+
|
362
374
|
def load_balancers
|
363
375
|
Morpheus::LoadBalancersInterface.new(@access_token, @refresh_token, @expires_at, @base_url).setopts(@options)
|
364
376
|
end
|
@@ -526,6 +538,10 @@ class Morpheus::APIClient
|
|
526
538
|
Morpheus::NetworkServicesInterface.new(@access_token, @refresh_token, @expires_at, @base_url).setopts(@options)
|
527
539
|
end
|
528
540
|
|
541
|
+
def network_security_servers
|
542
|
+
Morpheus::NetworkSecurityServersInterface.new(@access_token, @refresh_token, @expires_at, @base_url).setopts(@options)
|
543
|
+
end
|
544
|
+
|
529
545
|
def network_pool_servers
|
530
546
|
Morpheus::NetworkPoolServersInterface.new(@access_token, @refresh_token, @expires_at, @base_url).setopts(@options)
|
531
547
|
end
|
@@ -635,6 +651,14 @@ class Morpheus::APIClient
|
|
635
651
|
Morpheus::WikiInterface.new(@access_token, @refresh_token, @expires_at, @base_url).setopts(@options)
|
636
652
|
end
|
637
653
|
|
654
|
+
def budgets
|
655
|
+
Morpheus::BudgetsInterface.new(@access_token, @refresh_token, @expires_at, @base_url).setopts(@options)
|
656
|
+
end
|
657
|
+
|
658
|
+
def health
|
659
|
+
Morpheus::HealthInterface.new(@access_token, @refresh_token, @expires_at, @base_url).setopts(@options)
|
660
|
+
end
|
661
|
+
|
638
662
|
# new interfaces get added here
|
639
663
|
|
640
664
|
end
|
@@ -1,7 +1,6 @@
|
|
1
1
|
require 'morpheus/api/api_client'
|
2
|
-
require 'uri'
|
3
2
|
|
4
|
-
class Morpheus::
|
3
|
+
class Morpheus::BudgetsInterface < Morpheus::APIClient
|
5
4
|
def initialize(access_token, refresh_token,expires_at = nil, base_url=nil)
|
6
5
|
@access_token = access_token
|
7
6
|
@refresh_token = refresh_token
|
@@ -10,43 +9,43 @@ class Morpheus::OldCypherInterface < Morpheus::APIClient
|
|
10
9
|
end
|
11
10
|
|
12
11
|
def get(id, params={})
|
13
|
-
raise "#{self.class}.get() passed a blank
|
14
|
-
url = "#{@base_url}/api/
|
12
|
+
raise "#{self.class}.get() passed a blank name!" if id.to_s == ''
|
13
|
+
url = "#{@base_url}/api/budgets/#{id}"
|
15
14
|
headers = { params: params, authorization: "Bearer #{@access_token}" }
|
16
15
|
opts = {method: :get, url: url, headers: headers}
|
17
16
|
execute(opts)
|
18
17
|
end
|
19
18
|
|
20
19
|
def list(params={})
|
21
|
-
url = "#{@base_url}/api/
|
20
|
+
url = "#{@base_url}/api/budgets"
|
22
21
|
headers = { params: params, authorization: "Bearer #{@access_token}" }
|
23
22
|
opts = {method: :get, url: url, headers: headers}
|
24
23
|
execute(opts)
|
25
24
|
end
|
26
25
|
|
27
26
|
def create(payload)
|
28
|
-
url = "#{@base_url}/api/
|
27
|
+
url = "#{@base_url}/api/budgets"
|
29
28
|
headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
30
29
|
opts = {method: :post, url: url, headers: headers, payload: payload.to_json}
|
31
30
|
execute(opts)
|
32
31
|
end
|
33
32
|
|
34
33
|
def update(id, payload)
|
35
|
-
url = "#{@base_url}/api/
|
34
|
+
url = "#{@base_url}/api/budgets/#{id}"
|
36
35
|
headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
37
36
|
opts = {method: :put, url: url, headers: headers, payload: payload.to_json}
|
38
37
|
execute(opts)
|
39
38
|
end
|
40
39
|
|
41
40
|
def destroy(id, params={})
|
42
|
-
url = "#{@base_url}/api/
|
43
|
-
headers = { :
|
41
|
+
url = "#{@base_url}/api/budgets/#{id}"
|
42
|
+
headers = { params: params, authorization: "Bearer #{@access_token}" }
|
44
43
|
opts = {method: :delete, url: url, headers: headers}
|
45
44
|
execute(opts)
|
46
45
|
end
|
47
46
|
|
48
|
-
def
|
49
|
-
url = "#{@base_url}/api/
|
47
|
+
def list_types(params={})
|
48
|
+
url = "#{@base_url}/api/budget-types"
|
50
49
|
headers = { params: params, authorization: "Bearer #{@access_token}" }
|
51
50
|
opts = {method: :get, url: url, headers: headers}
|
52
51
|
execute(opts)
|
@@ -44,4 +44,11 @@ class Morpheus::CloudDatastoresInterface < Morpheus::APIClient
|
|
44
44
|
execute(opts)
|
45
45
|
end
|
46
46
|
|
47
|
+
def selectable(cloud_id, params={})
|
48
|
+
url = "#{@base_url}/api/zones/#{cloud_id}/data-stores/selectable"
|
49
|
+
headers = { params: params, authorization: "Bearer #{@access_token}" }
|
50
|
+
opts = {method: :get, url: url, headers: headers}
|
51
|
+
execute(opts)
|
52
|
+
end
|
53
|
+
|
47
54
|
end
|
@@ -10,14 +10,14 @@ class Morpheus::CloudResourcePoolsInterface < Morpheus::APIClient
|
|
10
10
|
|
11
11
|
def get(cloud_id, id, params={})
|
12
12
|
raise "#{self.class}.get() passed a blank id!" if id.to_s == ''
|
13
|
-
url = "#{@base_url}/api/zones/#{cloud_id}/resource-pools/#{id}"
|
13
|
+
url = cloud_id.nil? ? "#{@base_url}/api/zones/resource-pools/#{id}" : "#{@base_url}/api/zones/#{cloud_id}/resource-pools/#{id}"
|
14
14
|
headers = { params: params, authorization: "Bearer #{@access_token}" }
|
15
15
|
opts = {method: :get, url: url, headers: headers}
|
16
16
|
execute(opts)
|
17
17
|
end
|
18
18
|
|
19
19
|
def list(cloud_id, params={})
|
20
|
-
url = "#{@base_url}/api/zones/#{cloud_id}/resource-pools"
|
20
|
+
url = cloud_id.nil? ? "#{@base_url}/api/zones/resource-pools" : "#{@base_url}/api/zones/#{cloud_id}/resource-pools"
|
21
21
|
headers = { params: params, authorization: "Bearer #{@access_token}" }
|
22
22
|
opts = {method: :get, url: url, headers: headers}
|
23
23
|
execute(opts)
|
@@ -9,36 +9,42 @@ class Morpheus::CypherInterface < Morpheus::APIClient
|
|
9
9
|
@expires_at = expires_at
|
10
10
|
end
|
11
11
|
|
12
|
+
def base_path
|
13
|
+
# can use just "/api/cypher" in 4.1.2
|
14
|
+
"/api/cypher/v1"
|
15
|
+
end
|
16
|
+
|
12
17
|
def get(item_key, params={})
|
13
18
|
raise "#{self.class}.get() passed a blank item_key!" if item_key.to_s == ''
|
14
|
-
url = "#{@base_url}
|
15
|
-
headers = { params
|
19
|
+
url = "#{@base_url}#{base_path}/#{item_key}"
|
20
|
+
headers = { :params => params, :authorization => "Bearer #{@access_token}" }
|
16
21
|
execute({method: :get, url: url, headers: headers})
|
17
22
|
end
|
18
23
|
|
19
24
|
# list url is the same as get but uses $itemKey/?list=true
|
20
25
|
# method: 'LIST' would be neat though
|
21
26
|
def list(item_key=nil, params={})
|
22
|
-
url = item_key ? "#{@base_url}
|
23
|
-
params.merge!({list:'true'})
|
24
|
-
headers = { params
|
27
|
+
url = item_key ? "#{@base_url}#{base_path}/#{item_key}" : "#{@base_url}#{base_path}"
|
28
|
+
params.merge!({list:'true'}) # ditch this probably
|
29
|
+
headers = { :params => params, :authorization => "Bearer #{@access_token}" }
|
25
30
|
execute({method: :get, url: url, headers: headers})
|
26
31
|
end
|
27
32
|
|
28
|
-
def create(item_key, payload)
|
29
|
-
url = "#{@base_url}
|
30
|
-
headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
33
|
+
def create(item_key, params={}, payload={})
|
34
|
+
url = "#{@base_url}#{base_path}/#{item_key}"
|
35
|
+
headers = { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
31
36
|
execute({method: :post, url: url, headers: headers, payload: payload.to_json})
|
32
37
|
end
|
33
38
|
|
34
|
-
|
35
|
-
|
36
|
-
|
39
|
+
# update is not even needed I don't think, same as POST
|
40
|
+
def update(item_key, params={}, payload={})
|
41
|
+
url = "#{@base_url}#{base_path}/#{item_key}"
|
42
|
+
headers = { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
37
43
|
execute({method: :put, url: url, headers: headers, payload: payload.to_json})
|
38
44
|
end
|
39
45
|
|
40
46
|
def destroy(item_key, params={})
|
41
|
-
url = "#{@base_url}
|
47
|
+
url = "#{@base_url}#{base_path}/#{item_key}"
|
42
48
|
headers = { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
43
49
|
execute({method: :delete, url: url, headers: headers})
|
44
50
|
end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
require 'morpheus/api/api_client'
|
2
|
+
|
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
|
+
|
11
|
+
def get(params={})
|
12
|
+
url = "#{@base_url}/api/health"
|
13
|
+
headers = { params: params, authorization: "Bearer #{@access_token}" }
|
14
|
+
opts = {method: :get, url: url, headers: headers}
|
15
|
+
execute(opts)
|
16
|
+
end
|
17
|
+
|
18
|
+
def live(params={})
|
19
|
+
url = "#{@base_url}/api/health/live"
|
20
|
+
headers = { params: params, authorization: "Bearer #{@access_token}" }
|
21
|
+
opts = {method: :get, url: url, headers: headers}
|
22
|
+
execute(opts)
|
23
|
+
end
|
24
|
+
|
25
|
+
def alarms(params={})
|
26
|
+
list_alarms(params)
|
27
|
+
end
|
28
|
+
|
29
|
+
def list_alarms(params={})
|
30
|
+
url = "#{@base_url}/api/health/alarms"
|
31
|
+
headers = { params: params, authorization: "Bearer #{@access_token}" }
|
32
|
+
opts = {method: :get, url: url, headers: headers}
|
33
|
+
execute(opts)
|
34
|
+
end
|
35
|
+
|
36
|
+
def get_alarm(id, params={})
|
37
|
+
raise "#{self.class}.get() passed a blank name!" if id.to_s == ''
|
38
|
+
url = "#{@base_url}/api/health/alarms/#{id}"
|
39
|
+
headers = { params: params, authorization: "Bearer #{@access_token}" }
|
40
|
+
opts = {method: :get, url: url, headers: headers}
|
41
|
+
execute(opts)
|
42
|
+
end
|
43
|
+
|
44
|
+
def acknowledge_alarm(id, params={}, payload={})
|
45
|
+
url = "#{@base_url}/api/health/alarms/#{id}/acknowledge"
|
46
|
+
headers = { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
47
|
+
opts = {method: :put, url: url, headers: headers, payload: payload.to_json}
|
48
|
+
execute(opts)
|
49
|
+
end
|
50
|
+
|
51
|
+
def acknowledge_alarms(params, payload={})
|
52
|
+
url = "#{@base_url}/api/health/alarms/acknowledge"
|
53
|
+
headers = { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
54
|
+
opts = {method: :put, url: url, headers: headers, payload: payload.to_json}
|
55
|
+
execute(opts)
|
56
|
+
end
|
57
|
+
|
58
|
+
def logs(params={})
|
59
|
+
url = "#{@base_url}/api/health/logs"
|
60
|
+
headers = { params: params, authorization: "Bearer #{@access_token}" }
|
61
|
+
opts = {method: :get, url: url, headers: headers}
|
62
|
+
execute(opts)
|
63
|
+
end
|
64
|
+
|
65
|
+
def notifications(params={})
|
66
|
+
url = "#{@base_url}/api/health/notifications"
|
67
|
+
headers = { params: params, authorization: "Bearer #{@access_token}" }
|
68
|
+
opts = {method: :get, url: url, headers: headers}
|
69
|
+
execute(opts)
|
70
|
+
end
|
71
|
+
|
72
|
+
end
|
@@ -157,7 +157,7 @@ class Morpheus::InstancesInterface < Morpheus::APIClient
|
|
157
157
|
|
158
158
|
def workflow(id,task_set_id,payload)
|
159
159
|
url = "#{@base_url}/api/instances/#{id}/workflow"
|
160
|
-
headers = { :params => {:
|
160
|
+
headers = { :params => {:workflowId => task_set_id},:authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
161
161
|
opts = {method: :put, url: url, headers: headers,payload: payload.to_json}
|
162
162
|
execute(opts)
|
163
163
|
end
|
@@ -39,6 +39,13 @@ class Morpheus::LibraryInstanceTypesInterface < Morpheus::APIClient
|
|
39
39
|
execute(opts)
|
40
40
|
end
|
41
41
|
|
42
|
+
def toggle_featured(id, params={}, payload={})
|
43
|
+
url = "#{@base_url}/api/library/#{id}/toggle-featured"
|
44
|
+
headers = { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
45
|
+
opts = {method: :put, url: url, headers: headers, payload: payload.to_json}
|
46
|
+
execute(opts)
|
47
|
+
end
|
48
|
+
|
42
49
|
def destroy(id, payload={})
|
43
50
|
url = "#{@base_url}/api/library/#{id}"
|
44
51
|
headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
@@ -27,6 +27,12 @@ class Morpheus::LogSettingsInterface < Morpheus::APIClient
|
|
27
27
|
execute(method: :put, url: url, headers: headers, payload: payload.to_json)
|
28
28
|
end
|
29
29
|
|
30
|
+
def destroy_integration(name, params={})
|
31
|
+
url = "#{@api_url}/integrations/#{name}"
|
32
|
+
headers = { params: params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
33
|
+
execute(method: :delete, url: url, headers: headers)
|
34
|
+
end
|
35
|
+
|
30
36
|
def add_syslog_rule(payload, params={})
|
31
37
|
url = "#{@api_url}/syslog-rules"
|
32
38
|
headers = { params: params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'morpheus/api/api_client'
|
2
|
+
|
3
|
+
class Morpheus::NetworkSecurityServersInterface < Morpheus::APIClient
|
4
|
+
def initialize(access_token, refresh_token,expires_at = nil, base_url=nil, api='network-security-servers')
|
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
|
10
|
+
end
|
11
|
+
|
12
|
+
def list(params={})
|
13
|
+
url = @api_url
|
14
|
+
headers = { params: params, authorization: "Bearer #{@access_token}" }
|
15
|
+
execute(method: :get, url: url, headers: headers)
|
16
|
+
end
|
17
|
+
|
18
|
+
def get(id, params={})
|
19
|
+
url = "#{@api_url}/#{id}"
|
20
|
+
headers = { params: params, authorization: "Bearer #{@access_token}" }
|
21
|
+
if params.is_a?(Hash)
|
22
|
+
headers[:params].merge!(params)
|
23
|
+
elsif params.is_a?(Numeric)
|
24
|
+
url = "#{@api_url}/#{params}"
|
25
|
+
elsif params.is_a?(String)
|
26
|
+
headers[:params]['name'] = params
|
27
|
+
end
|
28
|
+
execute(method: :get, url: url, headers: headers)
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'morpheus/api/api_client'
|
2
|
+
|
3
|
+
class Morpheus::PriceSetsInterface < 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/price-sets"
|
9
|
+
@expires_at = expires_at
|
10
|
+
end
|
11
|
+
|
12
|
+
def list(params={})
|
13
|
+
url = @api_url
|
14
|
+
headers = { params: params, authorization: "Bearer #{@access_token}" }
|
15
|
+
execute(method: :get, url: url, headers: headers)
|
16
|
+
end
|
17
|
+
|
18
|
+
def get(id, params={})
|
19
|
+
url = "#{@api_url}/#{id}"
|
20
|
+
headers = { params: params, authorization: "Bearer #{@access_token}" }
|
21
|
+
execute(method: :get, url: url, headers: headers)
|
22
|
+
end
|
23
|
+
|
24
|
+
def create(payload)
|
25
|
+
url = @api_url
|
26
|
+
headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
27
|
+
execute(method: :post, url: url, headers: headers, payload: payload.to_json)
|
28
|
+
end
|
29
|
+
|
30
|
+
def update(id, payload)
|
31
|
+
url = "#{@api_url}/#{id}"
|
32
|
+
headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
33
|
+
execute(method: :put, url: url, headers: headers, payload: payload.to_json)
|
34
|
+
end
|
35
|
+
|
36
|
+
def deactivate(id, params={})
|
37
|
+
url = "#{@api_url}/#{id}/deactivate"
|
38
|
+
headers = { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
39
|
+
execute(method: :put, url: url, headers: headers)
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
require 'morpheus/api/api_client'
|
2
|
+
|
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
|
10
|
+
end
|
11
|
+
|
12
|
+
def list(params={})
|
13
|
+
url = @api_url
|
14
|
+
if params['ids']
|
15
|
+
url = "#{url}?#{params.delete('ids').collect {|id| "id=#{id}"}.join('&')}"
|
16
|
+
end
|
17
|
+
headers = { params: params, authorization: "Bearer #{@access_token}" }
|
18
|
+
execute(method: :get, url: url, headers: headers)
|
19
|
+
end
|
20
|
+
|
21
|
+
def get(id, params={})
|
22
|
+
url = "#{@api_url}/#{id}"
|
23
|
+
headers = { params: params, authorization: "Bearer #{@access_token}" }
|
24
|
+
execute(method: :get, url: url, headers: headers)
|
25
|
+
end
|
26
|
+
|
27
|
+
def create(payload)
|
28
|
+
url = @api_url
|
29
|
+
headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
30
|
+
execute(method: :post, url: url, headers: headers, payload: payload.to_json)
|
31
|
+
end
|
32
|
+
|
33
|
+
def update(id, payload)
|
34
|
+
url = "#{@api_url}/#{id}"
|
35
|
+
headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
36
|
+
execute(method: :put, url: url, headers: headers, payload: payload.to_json)
|
37
|
+
end
|
38
|
+
|
39
|
+
def deactivate(id, params={})
|
40
|
+
url = "#{@api_url}/#{id}/deactivate"
|
41
|
+
headers = { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
42
|
+
execute(method: :put, url: url, headers: headers)
|
43
|
+
end
|
44
|
+
|
45
|
+
def list_datastores(params={})
|
46
|
+
url = "#{@api_url}/datastores"
|
47
|
+
headers = { params: params, authorization: "Bearer #{@access_token}" }
|
48
|
+
execute(method: :get, url: url, headers: headers)
|
49
|
+
end
|
50
|
+
|
51
|
+
def get_datastore(id, params={})
|
52
|
+
url = "#{@api_url}/datastores/#{id}"
|
53
|
+
headers = { params: params, authorization: "Bearer #{@access_token}" }
|
54
|
+
execute(method: :get, url: url, headers: headers)
|
55
|
+
end
|
56
|
+
|
57
|
+
def list_volume_types(params={})
|
58
|
+
url = "#{@api_url}/volume-types"
|
59
|
+
headers = { params: params, authorization: "Bearer #{@access_token}" }
|
60
|
+
execute(method: :get, url: url, headers: headers)
|
61
|
+
end
|
62
|
+
|
63
|
+
def get_volume_type(id, params={})
|
64
|
+
url = "#{@api_url}/volume-types/#{id}"
|
65
|
+
headers = { params: params, authorization: "Bearer #{@access_token}" }
|
66
|
+
execute(method: :get, url: url, headers: headers)
|
67
|
+
end
|
68
|
+
end
|