morpheus-cli 3.6.8 → 3.6.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/morpheus/api/account_groups_interface.rb +2 -2
- data/lib/morpheus/api/accounts_interface.rb +4 -7
- data/lib/morpheus/api/api_client.rb +207 -70
- data/lib/morpheus/api/app_templates_interface.rb +7 -28
- data/lib/morpheus/api/apps_interface.rb +14 -21
- data/lib/morpheus/api/archive_buckets_interface.rb +2 -2
- data/lib/morpheus/api/archive_files_interface.rb +6 -6
- data/lib/morpheus/api/auth_interface.rb +14 -1
- data/lib/morpheus/api/blueprints_interface.rb +9 -16
- data/lib/morpheus/api/cloud_datastores_interface.rb +1 -1
- data/lib/morpheus/api/cloud_policies_interface.rb +1 -1
- data/lib/morpheus/api/clouds_interface.rb +18 -21
- data/lib/morpheus/api/cypher_interface.rb +19 -28
- data/lib/morpheus/api/file_copy_request_interface.rb +1 -1
- data/lib/morpheus/api/group_policies_interface.rb +1 -1
- data/lib/morpheus/api/groups_interface.rb +4 -4
- data/lib/morpheus/api/image_builder_boot_scripts_interface.rb +1 -1
- data/lib/morpheus/api/image_builder_image_builds_interface.rb +2 -2
- data/lib/morpheus/api/image_builder_preseed_scripts_interface.rb +1 -1
- data/lib/morpheus/api/instances_interface.rb +17 -23
- data/lib/morpheus/api/logs_interface.rb +7 -10
- data/lib/morpheus/api/network_domains_interface.rb +1 -1
- data/lib/morpheus/api/network_groups_interface.rb +1 -1
- data/lib/morpheus/api/network_pool_servers_interface.rb +1 -1
- data/lib/morpheus/api/network_pools_interface.rb +1 -1
- data/lib/morpheus/api/network_proxies_interface.rb +1 -1
- data/lib/morpheus/api/network_services_interface.rb +1 -1
- data/lib/morpheus/api/networks_interface.rb +1 -1
- data/lib/morpheus/api/old_cypher_interface.rb +55 -0
- data/lib/morpheus/api/packages_interface.rb +1 -1
- data/lib/morpheus/api/policies_interface.rb +1 -1
- data/lib/morpheus/api/setup_interface.rb +1 -1
- data/lib/morpheus/api/storage_providers_interface.rb +1 -1
- data/lib/morpheus/api/whoami_interface.rb +1 -1
- data/lib/morpheus/benchmarking.rb +277 -0
- data/lib/morpheus/cli.rb +6 -22
- data/lib/morpheus/cli/access_token_command.rb +172 -0
- data/lib/morpheus/cli/accounts.rb +5 -0
- data/lib/morpheus/cli/apps.rb +93 -37
- data/lib/morpheus/cli/archives_command.rb +0 -2
- data/lib/morpheus/cli/auth_command.rb +112 -0
- data/lib/morpheus/cli/blueprints_command.rb +50 -13
- data/lib/morpheus/cli/change_password_command.rb +148 -0
- data/lib/morpheus/cli/cli_command.rb +173 -49
- data/lib/morpheus/cli/clouds.rb +15 -5
- data/lib/morpheus/cli/command_error.rb +7 -1
- data/lib/morpheus/cli/{alias_command.rb → commands/standard/alias_command.rb} +79 -51
- data/lib/morpheus/cli/commands/standard/benchmark_command.rb +399 -0
- data/lib/morpheus/cli/commands/standard/coloring_command.rb +60 -0
- data/lib/morpheus/cli/{curl_command.rb → commands/standard/curl_command.rb} +0 -7
- data/lib/morpheus/cli/commands/standard/debug_command.rb +61 -0
- data/lib/morpheus/cli/{echo_command.rb → commands/standard/echo_command.rb} +1 -1
- data/lib/morpheus/cli/{edit_profile_command.rb → commands/standard/edit_profile_command.rb} +0 -0
- data/lib/morpheus/cli/{edit_rc_command.rb → commands/standard/edit_rc_command.rb} +0 -0
- data/lib/morpheus/cli/commands/standard/get_prompt_command.rb +39 -0
- data/lib/morpheus/cli/commands/standard/history_command.rb +76 -0
- data/lib/morpheus/cli/{log_level_command.rb → commands/standard/log_level_command.rb} +1 -1
- data/lib/morpheus/cli/{man_command.rb → commands/standard/man_command.rb} +2 -2
- data/lib/morpheus/cli/commands/standard/rm_command.rb +14 -0
- data/lib/morpheus/cli/commands/standard/set_prompt_command.rb +54 -0
- data/lib/morpheus/cli/{sleep_command.rb → commands/standard/sleep_command.rb} +0 -0
- data/lib/morpheus/cli/{source_command.rb → commands/standard/source_command.rb} +0 -0
- data/lib/morpheus/cli/{ssl_verification_command.rb → commands/standard/ssl_verification_command.rb} +1 -1
- data/lib/morpheus/cli/commands/standard/tee_command.rb +14 -0
- data/lib/morpheus/cli/{version_command.rb → commands/standard/version_command.rb} +0 -0
- data/lib/morpheus/cli/credentials.rb +276 -87
- data/lib/morpheus/cli/cypher_command.rb +333 -214
- data/lib/morpheus/cli/error_handler.rb +12 -2
- data/lib/morpheus/cli/groups.rb +44 -20
- data/lib/morpheus/cli/hosts.rb +39 -16
- data/lib/morpheus/cli/instances.rb +114 -62
- data/lib/morpheus/cli/login.rb +74 -21
- data/lib/morpheus/cli/logout.rb +3 -4
- data/lib/morpheus/cli/mixins/accounts_helper.rb +50 -18
- data/lib/morpheus/cli/mixins/print_helper.rb +207 -42
- data/lib/morpheus/cli/old_cypher_command.rb +414 -0
- data/lib/morpheus/cli/option_parser.rb +6 -1
- data/lib/morpheus/cli/processes_command.rb +3 -0
- data/lib/morpheus/cli/remote.rb +11 -17
- data/lib/morpheus/cli/roles.rb +17 -17
- data/lib/morpheus/cli/security_groups.rb +47 -17
- data/lib/morpheus/cli/shell.rb +139 -79
- data/lib/morpheus/cli/tenants_command.rb +353 -0
- data/lib/morpheus/cli/users.rb +26 -18
- data/lib/morpheus/cli/version.rb +1 -1
- data/lib/morpheus/cli/whoami.rb +14 -10
- data/lib/morpheus/formatters.rb +4 -4
- data/lib/morpheus/logging.rb +16 -8
- data/lib/morpheus/terminal.rb +63 -34
- metadata +28 -15
- data/lib/morpheus/cli/coloring_command.rb +0 -45
- data/lib/morpheus/cli/set_prompt_command.rb +0 -51
@@ -15,35 +15,24 @@ class Morpheus::AppTemplatesInterface < Morpheus::APIClient
|
|
15
15
|
execute(method: :get, url: url, headers: headers)
|
16
16
|
end
|
17
17
|
|
18
|
-
def list(
|
18
|
+
def list(params={})
|
19
19
|
url = "#{@base_url}/api/app-templates"
|
20
|
-
headers = { params:
|
21
|
-
headers[:params].merge!(options)
|
20
|
+
headers = { params: params, authorization: "Bearer #{@access_token}" }
|
22
21
|
execute(method: :get, url: url, headers: headers)
|
23
22
|
end
|
24
23
|
|
25
|
-
def create(
|
24
|
+
def create(payload)
|
26
25
|
url = "#{@base_url}/api/app-templates"
|
27
26
|
headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
28
|
-
payload = options
|
29
27
|
execute(method: :post, url: url, headers: headers, payload: payload.to_json)
|
30
28
|
end
|
31
29
|
|
32
|
-
def update(id,
|
30
|
+
def update(id, payload)
|
33
31
|
url = "#{@base_url}/api/app-templates/#{id}"
|
34
32
|
headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
35
|
-
payload = options
|
36
33
|
execute(method: :put, url: url, headers: headers, payload: payload.to_json)
|
37
34
|
end
|
38
35
|
|
39
|
-
def save_image(id, options)
|
40
|
-
url = "#{@base_url}/api/app-templates/#{id}"
|
41
|
-
headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
42
|
-
payload = options
|
43
|
-
execute(method: :put, url: url, headers: headers, payload: payload.to_json)
|
44
|
-
end
|
45
|
-
|
46
|
-
|
47
36
|
# multipart image upload
|
48
37
|
def save_image(id, image_file, params={})
|
49
38
|
url = "#{@base_url}/api/app-templates/#{id}/image"
|
@@ -54,10 +43,9 @@ class Morpheus::AppTemplatesInterface < Morpheus::APIClient
|
|
54
43
|
execute(method: :post, url: url, headers: headers, payload: payload)
|
55
44
|
end
|
56
45
|
|
57
|
-
def duplicate(id,
|
46
|
+
def duplicate(id, payload)
|
58
47
|
url = "#{@base_url}/api/app-templates/#{id}/duplicate"
|
59
48
|
headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
60
|
-
payload = options
|
61
49
|
execute(method: :post, url: url, headers: headers, payload: payload.to_json)
|
62
50
|
end
|
63
51
|
|
@@ -67,19 +55,10 @@ class Morpheus::AppTemplatesInterface < Morpheus::APIClient
|
|
67
55
|
execute(method: :delete, url: url, headers: headers)
|
68
56
|
end
|
69
57
|
|
70
|
-
def list_tiers(
|
58
|
+
def list_tiers(params={})
|
71
59
|
url = "#{@base_url}/api/app-templates/tiers"
|
72
|
-
headers = { params:
|
73
|
-
headers[:params].merge!(options)
|
60
|
+
headers = { params: params, authorization: "Bearer #{@access_token}" }
|
74
61
|
execute(method: :get, url: url, headers: headers)
|
75
62
|
end
|
76
63
|
|
77
|
-
# unused, prefer /options/instanceTypes
|
78
|
-
# def list_types(options={})
|
79
|
-
# url = "#{@base_url}/api/app-templates/types"
|
80
|
-
# headers = { params: {}, authorization: "Bearer #{@access_token}" }
|
81
|
-
# headers[:params].merge!(options)
|
82
|
-
# execute(method: :get, url: url, headers: headers)
|
83
|
-
# end
|
84
|
-
|
85
64
|
end
|
@@ -9,66 +9,60 @@ class Morpheus::AppsInterface < Morpheus::APIClient
|
|
9
9
|
end
|
10
10
|
|
11
11
|
|
12
|
-
def get(
|
12
|
+
def get(params={})
|
13
13
|
url = "#{@base_url}/api/apps"
|
14
14
|
headers = { params: {}, authorization: "Bearer #{@access_token}" }
|
15
|
-
if
|
16
|
-
headers[:params].merge!(
|
17
|
-
elsif
|
18
|
-
url = "#{@base_url}/api/apps/#{
|
19
|
-
elsif
|
20
|
-
headers[:params]['name'] =
|
15
|
+
if params.is_a?(Hash)
|
16
|
+
headers[:params].merge!(params)
|
17
|
+
elsif params.is_a?(Numeric)
|
18
|
+
url = "#{@base_url}/api/apps/#{params}"
|
19
|
+
elsif params.is_a?(String)
|
20
|
+
headers[:params]['name'] = params
|
21
21
|
end
|
22
22
|
opts = {method: :get, url: url, headers: headers}
|
23
23
|
execute(opts)
|
24
24
|
end
|
25
25
|
|
26
|
-
def validate(
|
26
|
+
def validate(payload)
|
27
27
|
# url = "#{@base_url}/api/apps/validate-instance"
|
28
28
|
url = "#{@base_url}/api/apps/validate"
|
29
29
|
headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
30
|
-
payload = options
|
31
30
|
opts = {method: :post, url: url, headers: headers, payload: payload.to_json}
|
32
31
|
execute(opts)
|
33
32
|
end
|
34
33
|
|
35
|
-
def validate_instance(
|
34
|
+
def validate_instance(payload)
|
36
35
|
# url = "#{@base_url}/api/apps/validate-instance"
|
37
36
|
url = "#{@base_url}/api/apps/validate-instance"
|
38
37
|
headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
39
|
-
payload = options
|
40
38
|
opts = {method: :post, url: url, headers: headers, payload: payload.to_json}
|
41
39
|
execute(opts)
|
42
40
|
end
|
43
41
|
|
44
|
-
def create(
|
42
|
+
def create(payload)
|
45
43
|
url = "#{@base_url}/api/apps"
|
46
44
|
headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
47
|
-
payload = options
|
48
45
|
opts = {method: :post, url: url, headers: headers, payload: payload.to_json}
|
49
46
|
execute(opts)
|
50
47
|
end
|
51
48
|
|
52
|
-
def update(app_id,
|
49
|
+
def update(app_id, payload)
|
53
50
|
url = "#{@base_url}/api/apps/#{app_id}"
|
54
51
|
headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
55
|
-
payload = options
|
56
52
|
opts = {method: :put, url: url, headers: headers, payload: payload.to_json}
|
57
53
|
execute(opts)
|
58
54
|
end
|
59
55
|
|
60
|
-
def add_instance(app_id,
|
56
|
+
def add_instance(app_id, payload)
|
61
57
|
url = "#{@base_url}/api/apps/#{app_id}/add-instance"
|
62
58
|
headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
63
|
-
payload = options
|
64
59
|
opts = {method: :post, url: url, headers: headers, payload: payload.to_json}
|
65
60
|
execute(opts)
|
66
61
|
end
|
67
62
|
|
68
|
-
def remove_instance(app_id,
|
63
|
+
def remove_instance(app_id, payload)
|
69
64
|
url = "#{@base_url}/api/apps/#{app_id}/remove-instance"
|
70
65
|
headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
71
|
-
payload = options
|
72
66
|
opts = {method: :post, url: url, headers: headers, payload: payload.to_json}
|
73
67
|
execute(opts)
|
74
68
|
end
|
@@ -123,10 +117,9 @@ class Morpheus::AppsInterface < Morpheus::APIClient
|
|
123
117
|
execute(opts)
|
124
118
|
end
|
125
119
|
|
126
|
-
def apply_security_groups(id,
|
120
|
+
def apply_security_groups(id, payload)
|
127
121
|
url = "#{@base_url}/api/apps/#{id}/security-groups"
|
128
122
|
headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
129
|
-
payload = options
|
130
123
|
opts = {method: :post, url: url, headers: headers, payload: payload.to_json}
|
131
124
|
execute(opts)
|
132
125
|
end
|
@@ -41,7 +41,7 @@ class Morpheus::ArchiveBucketsInterface < Morpheus::APIClient
|
|
41
41
|
def destroy(id, params={})
|
42
42
|
url = "#{@base_url}/api/archives/buckets/#{URI.escape(id.to_s)}"
|
43
43
|
headers = { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
44
|
-
opts = {method: :delete, url: url,
|
44
|
+
opts = {method: :delete, url: url, headers: headers}
|
45
45
|
execute(opts)
|
46
46
|
end
|
47
47
|
|
@@ -89,7 +89,7 @@ class Morpheus::ArchiveBucketsInterface < Morpheus::APIClient
|
|
89
89
|
url = "#{@base_url}/api/archives/buckets/#{URI.escape(bucket_id.to_s)}" + ".zip"
|
90
90
|
headers = { params: params, authorization: "Bearer #{@access_token}" }
|
91
91
|
opts = {method: :get, url: url, headers: headers, timeout: 172800}
|
92
|
-
# execute(opts, false)
|
92
|
+
# execute(opts, {parse_json:false})
|
93
93
|
if Dir.exists?(outfile)
|
94
94
|
raise "outfile is invalid. It is the name of an existing directory: #{outfile}"
|
95
95
|
end
|
@@ -21,7 +21,7 @@ class Morpheus::ArchiveFilesInterface < Morpheus::APIClient
|
|
21
21
|
url = "#{@base_url}/api/archives/download" + "/#{full_file_path}".squeeze('/')
|
22
22
|
headers = { params: params, authorization: "Bearer #{@access_token}" }
|
23
23
|
opts = {method: :get, url: url, headers: headers, timeout: 172800}
|
24
|
-
execute(opts, false)
|
24
|
+
execute(opts, {parse_json: false})
|
25
25
|
end
|
26
26
|
|
27
27
|
def download_file_by_path_chunked(full_file_path, outfile, params={})
|
@@ -29,7 +29,7 @@ class Morpheus::ArchiveFilesInterface < Morpheus::APIClient
|
|
29
29
|
url = "#{@base_url}/api/archives/download" + "/#{full_file_path}".squeeze('/')
|
30
30
|
headers = { params: params, authorization: "Bearer #{@access_token}" }
|
31
31
|
opts = {method: :get, url: url, headers: headers, timeout: 172800}
|
32
|
-
# execute(opts, false)
|
32
|
+
# execute(opts, {parse_json: false})
|
33
33
|
if Dir.exists?(outfile)
|
34
34
|
raise "outfile is invalid. It is the name of an existing directory: #{outfile}"
|
35
35
|
end
|
@@ -59,7 +59,7 @@ class Morpheus::ArchiveFilesInterface < Morpheus::APIClient
|
|
59
59
|
url = "#{@base_url}/public-archives/download" + "/#{full_file_path}".squeeze('/')
|
60
60
|
headers = { params: params, authorization: "Bearer #{@access_token}" }
|
61
61
|
opts = {method: :get, url: url, headers: headers, timeout: 172800}
|
62
|
-
# execute(opts, false)
|
62
|
+
# execute(opts, {parse_json: false})
|
63
63
|
if Dir.exists?(outfile)
|
64
64
|
raise "outfile is invalid. It is the name of an existing directory: #{outfile}"
|
65
65
|
end
|
@@ -90,7 +90,7 @@ class Morpheus::ArchiveFilesInterface < Morpheus::APIClient
|
|
90
90
|
params['s'] = link_key
|
91
91
|
headers = { params: params, authorization: "Bearer #{@access_token}" }
|
92
92
|
opts = {method: :get, url: url, headers: headers, timeout: 172800}
|
93
|
-
# execute(opts, false)
|
93
|
+
# execute(opts, {parse_json: false})
|
94
94
|
if Dir.exists?(outfile)
|
95
95
|
raise "outfile is invalid. It is the name of an existing directory: #{outfile}"
|
96
96
|
end
|
@@ -144,7 +144,7 @@ class Morpheus::ArchiveFilesInterface < Morpheus::APIClient
|
|
144
144
|
def destroy_file_link(file_id, link_id, params={})
|
145
145
|
url = "#{@base_url}/api/archives/files/#{file_id}/links/#{link_id}"
|
146
146
|
headers = { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
147
|
-
opts = {method: :delete, url: url,
|
147
|
+
opts = {method: :delete, url: url, headers: headers}
|
148
148
|
execute(opts)
|
149
149
|
end
|
150
150
|
|
@@ -175,7 +175,7 @@ class Morpheus::ArchiveFilesInterface < Morpheus::APIClient
|
|
175
175
|
def destroy(id, params={})
|
176
176
|
url = "#{@base_url}/api/archives/files/#{id}"
|
177
177
|
headers = { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
178
|
-
opts = {method: :delete, url: url,
|
178
|
+
opts = {method: :delete, url: url, headers: headers}
|
179
179
|
execute(opts)
|
180
180
|
end
|
181
181
|
|
@@ -14,7 +14,20 @@ class Morpheus::AuthInterface < Morpheus::APIClient
|
|
14
14
|
url = "#{@base_url}/oauth/token"
|
15
15
|
params = {grant_type: 'password', scope:'write', client_id: 'morph-cli', username: username}
|
16
16
|
payload = {password: password}
|
17
|
-
opts = {method: :post, url: url, headers:{ params: params}, payload: payload, timeout:
|
17
|
+
opts = {method: :post, url: url, headers:{ params: params}, payload: payload, timeout: 5}
|
18
|
+
response = execute(opts)
|
19
|
+
return response if @dry_run
|
20
|
+
@access_token = response['access_token']
|
21
|
+
return response
|
22
|
+
end
|
23
|
+
|
24
|
+
# this regenerates the access_token and refresh_token
|
25
|
+
def use_refresh_token(refresh_token)
|
26
|
+
@access_token = nil
|
27
|
+
url = "#{@base_url}/oauth/token"
|
28
|
+
params = {grant_type: 'refresh_token', scope:'write', client_id: 'morph-cli'}
|
29
|
+
payload = {refresh_token: refresh_token}
|
30
|
+
opts = {method: :post, url: url, headers:{ params: params}, payload: payload}
|
18
31
|
response = execute(opts)
|
19
32
|
return response if @dry_run
|
20
33
|
@access_token = response['access_token']
|
@@ -15,31 +15,27 @@ class Morpheus::BlueprintsInterface < Morpheus::APIClient
|
|
15
15
|
execute(method: :get, url: url, headers: headers)
|
16
16
|
end
|
17
17
|
|
18
|
-
def list(
|
18
|
+
def list(params={})
|
19
19
|
url = "#{@base_url}/api/blueprints"
|
20
|
-
headers = { params:
|
21
|
-
headers[:params].merge!(options)
|
20
|
+
headers = { params: params, authorization: "Bearer #{@access_token}" }
|
22
21
|
execute(method: :get, url: url, headers: headers)
|
23
22
|
end
|
24
23
|
|
25
|
-
def create(
|
24
|
+
def create(payload)
|
26
25
|
url = "#{@base_url}/api/blueprints"
|
27
26
|
headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
28
|
-
payload = options
|
29
27
|
execute(method: :post, url: url, headers: headers, payload: payload.to_json)
|
30
28
|
end
|
31
29
|
|
32
|
-
def update(id,
|
30
|
+
def update(id, payload)
|
33
31
|
url = "#{@base_url}/api/blueprints/#{id}"
|
34
32
|
headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
35
|
-
payload = options
|
36
33
|
execute(method: :put, url: url, headers: headers, payload: payload.to_json)
|
37
34
|
end
|
38
35
|
|
39
|
-
def update_permissions(id,
|
36
|
+
def update_permissions(id, payload)
|
40
37
|
url = "#{@base_url}/api/blueprints/#{id}/update-permissions"
|
41
38
|
headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
42
|
-
payload = options
|
43
39
|
execute(method: :post, url: url, headers: headers, payload: payload.to_json)
|
44
40
|
end
|
45
41
|
|
@@ -53,10 +49,9 @@ class Morpheus::BlueprintsInterface < Morpheus::APIClient
|
|
53
49
|
execute(method: :post, url: url, headers: headers, payload: payload)
|
54
50
|
end
|
55
51
|
|
56
|
-
def duplicate(id,
|
52
|
+
def duplicate(id, payload)
|
57
53
|
url = "#{@base_url}/api/blueprints/#{id}/duplicate"
|
58
54
|
headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
59
|
-
payload = options
|
60
55
|
execute(method: :post, url: url, headers: headers, payload: payload.to_json)
|
61
56
|
end
|
62
57
|
|
@@ -66,17 +61,15 @@ class Morpheus::BlueprintsInterface < Morpheus::APIClient
|
|
66
61
|
execute(method: :delete, url: url, headers: headers)
|
67
62
|
end
|
68
63
|
|
69
|
-
def list_tiers(
|
64
|
+
def list_tiers(payload={})
|
70
65
|
url = "#{@base_url}/api/blueprints/tiers"
|
71
66
|
headers = { params: {}, authorization: "Bearer #{@access_token}" }
|
72
|
-
headers[:params].merge!(options)
|
73
67
|
execute(method: :get, url: url, headers: headers)
|
74
68
|
end
|
75
69
|
|
76
|
-
def list_types(
|
70
|
+
def list_types(params={})
|
77
71
|
url = "#{@base_url}/api/blueprints/types"
|
78
|
-
headers = { params:
|
79
|
-
headers[:params].merge!(options)
|
72
|
+
headers = { params: params, authorization: "Bearer #{@access_token}" }
|
80
73
|
execute(method: :get, url: url, headers: headers)
|
81
74
|
end
|
82
75
|
|
@@ -40,7 +40,7 @@ class Morpheus::CloudDatastoresInterface < Morpheus::APIClient
|
|
40
40
|
def destroy(cloud_id, id, params={})
|
41
41
|
url = "#{@base_url}/api/zones/#{cloud_id}/data-stores/#{id}"
|
42
42
|
headers = { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
43
|
-
opts = {method: :delete, url: url,
|
43
|
+
opts = {method: :delete, url: url, headers: headers}
|
44
44
|
execute(opts)
|
45
45
|
end
|
46
46
|
|
@@ -40,7 +40,7 @@ class Morpheus::CloudPoliciesInterface < Morpheus::APIClient
|
|
40
40
|
def destroy(cloud_id, id, params={})
|
41
41
|
url = "#{@base_url}/api/zones/#{cloud_id}/policies/#{id}"
|
42
42
|
headers = { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
43
|
-
opts = {method: :delete, url: url,
|
43
|
+
opts = {method: :delete, url: url, headers: headers}
|
44
44
|
execute(opts)
|
45
45
|
end
|
46
46
|
|
@@ -11,37 +11,35 @@ class Morpheus::CloudsInterface < Morpheus::APIClient
|
|
11
11
|
def cloud_types()
|
12
12
|
url = "#{@base_url}/api/zone-types"
|
13
13
|
headers = { params: {}, authorization: "Bearer #{@access_token}" }
|
14
|
-
opts = {method: :get, url: url,
|
14
|
+
opts = {method: :get, url: url, headers: headers}
|
15
15
|
execute(opts)
|
16
16
|
end
|
17
17
|
|
18
|
-
def get(
|
18
|
+
def get(params=nil)
|
19
19
|
url = "#{@base_url}/api/zones"
|
20
20
|
headers = { params: {}, authorization: "Bearer #{@access_token}" }
|
21
21
|
|
22
|
-
if
|
23
|
-
headers[:params].merge!(
|
24
|
-
elsif
|
25
|
-
url = "#{@base_url}/api/zones/#{
|
26
|
-
elsif
|
27
|
-
headers[:params]['name'] =
|
22
|
+
if params.is_a?(Hash)
|
23
|
+
headers[:params].merge!(params)
|
24
|
+
elsif params.is_a?(Numeric)
|
25
|
+
url = "#{@base_url}/api/zones/#{params}"
|
26
|
+
elsif params.is_a?(String)
|
27
|
+
headers[:params]['name'] = params
|
28
28
|
end
|
29
|
-
opts = {method: :get, url: url,
|
29
|
+
opts = {method: :get, url: url, headers: headers}
|
30
30
|
execute(opts)
|
31
31
|
end
|
32
32
|
|
33
|
-
def create(
|
33
|
+
def create(payload)
|
34
34
|
url = "#{@base_url}/api/zones"
|
35
35
|
headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
36
|
-
|
37
|
-
opts = {method: :post, url: url, timeout: 30, headers: headers, payload: payload.to_json}
|
36
|
+
opts = {method: :post, url: url, headers: headers, payload: payload.to_json}
|
38
37
|
execute(opts)
|
39
38
|
end
|
40
39
|
|
41
|
-
def update(id,
|
40
|
+
def update(id, payload)
|
42
41
|
url = "#{@base_url}/api/zones/#{id}"
|
43
42
|
headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
44
|
-
payload = options
|
45
43
|
opts = {method: :put, url: url, headers: headers, payload: payload.to_json}
|
46
44
|
execute(opts)
|
47
45
|
end
|
@@ -49,36 +47,35 @@ class Morpheus::CloudsInterface < Morpheus::APIClient
|
|
49
47
|
def destroy(id, params={})
|
50
48
|
url = "#{@base_url}/api/zones/#{id}"
|
51
49
|
headers = { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
52
|
-
opts = {method: :delete, url: url,
|
50
|
+
opts = {method: :delete, url: url, headers: headers}
|
53
51
|
execute(opts)
|
54
52
|
end
|
55
53
|
|
56
54
|
def firewall_disable(id)
|
57
55
|
url = "#{@base_url}/api/zones/#{id}/security-groups/disable"
|
58
56
|
headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
59
|
-
opts = {method: :put, url: url,
|
57
|
+
opts = {method: :put, url: url, headers: headers}
|
60
58
|
execute(opts)
|
61
59
|
end
|
62
60
|
|
63
61
|
def firewall_enable(id)
|
64
62
|
url = "#{@base_url}/api/zones/#{id}/security-groups/enable"
|
65
63
|
headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
66
|
-
opts = {method: :put, url: url,
|
64
|
+
opts = {method: :put, url: url, headers: headers}
|
67
65
|
execute(opts)
|
68
66
|
end
|
69
67
|
|
70
68
|
def security_groups(id)
|
71
69
|
url = "#{@base_url}/api/zones/#{id}/security-groups"
|
72
70
|
headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
73
|
-
opts = {method: :get, url: url,
|
71
|
+
opts = {method: :get, url: url, headers: headers}
|
74
72
|
execute(opts)
|
75
73
|
end
|
76
74
|
|
77
|
-
def apply_security_groups(id,
|
75
|
+
def apply_security_groups(id, payload)
|
78
76
|
url = "#{@base_url}/api/zones/#{id}/security-groups"
|
79
77
|
headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
80
|
-
|
81
|
-
opts = {method: :post, url: url, timeout: 30, headers: headers, payload: payload.to_json}
|
78
|
+
opts = {method: :post, url: url, headers: headers, payload: payload.to_json}
|
82
79
|
execute(opts)
|
83
80
|
end
|
84
81
|
end
|
@@ -9,47 +9,38 @@ class Morpheus::CypherInterface < Morpheus::APIClient
|
|
9
9
|
@expires_at = expires_at
|
10
10
|
end
|
11
11
|
|
12
|
-
def get(
|
13
|
-
raise "#{self.class}.get() passed a blank
|
14
|
-
url = "#{@base_url}/api/cypher/#{
|
12
|
+
def get(item_key, params={})
|
13
|
+
raise "#{self.class}.get() passed a blank item_key!" if item_key.to_s == ''
|
14
|
+
url = "#{@base_url}/api/cypher/v1/#{item_key}"
|
15
15
|
headers = { params: params, authorization: "Bearer #{@access_token}" }
|
16
|
-
|
17
|
-
execute(opts)
|
16
|
+
execute({method: :get, url: url, headers: headers})
|
18
17
|
end
|
19
18
|
|
20
|
-
|
21
|
-
|
19
|
+
# list url is the same as get but uses $itemKey/?list=true
|
20
|
+
# method: 'LIST' would be neat though
|
21
|
+
def list(item_key=nil, params={})
|
22
|
+
url = item_key ? "#{@base_url}/api/cypher/v1/#{item_key}" : "#{@base_url}/api/cypher/v1"
|
23
|
+
params.merge!({list:'true'})
|
22
24
|
headers = { params: params, authorization: "Bearer #{@access_token}" }
|
23
|
-
|
24
|
-
execute(opts)
|
25
|
+
execute({method: :get, url: url, headers: headers})
|
25
26
|
end
|
26
27
|
|
27
|
-
def create(payload)
|
28
|
-
url = "#{@base_url}/api/cypher"
|
28
|
+
def create(item_key, payload)
|
29
|
+
url = "#{@base_url}/api/cypher/v1/#{item_key}"
|
29
30
|
headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
30
|
-
|
31
|
-
execute(opts)
|
31
|
+
execute({method: :post, url: url, headers: headers, payload: payload.to_json})
|
32
32
|
end
|
33
33
|
|
34
|
-
def update(
|
35
|
-
url = "#{@base_url}/api/cypher/#{
|
34
|
+
def update(item_key, payload)
|
35
|
+
url = "#{@base_url}/api/cypher/v1/#{item_key}"
|
36
36
|
headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
37
|
-
|
38
|
-
execute(opts)
|
37
|
+
execute({method: :put, url: url, headers: headers, payload: payload.to_json})
|
39
38
|
end
|
40
39
|
|
41
|
-
def destroy(
|
42
|
-
url = "#{@base_url}/api/cypher/#{
|
40
|
+
def destroy(item_key, params={})
|
41
|
+
url = "#{@base_url}/api/cypher/v1/#{item_key}"
|
43
42
|
headers = { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
44
|
-
|
45
|
-
execute(opts)
|
46
|
-
end
|
47
|
-
|
48
|
-
def decrypt(id, params={})
|
49
|
-
url = "#{@base_url}/api/cypher/#{id}/decrypt"
|
50
|
-
headers = { params: params, authorization: "Bearer #{@access_token}" }
|
51
|
-
opts = {method: :get, url: url, headers: headers}
|
52
|
-
execute(opts)
|
43
|
+
execute({method: :delete, url: url, headers: headers})
|
53
44
|
end
|
54
45
|
|
55
46
|
end
|