morpheus-cli 2.10.0 → 2.10.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/bin/morpheus +27 -32
  3. data/lib/morpheus/api/accounts_interface.rb +36 -47
  4. data/lib/morpheus/api/api_client.rb +141 -110
  5. data/lib/morpheus/api/app_templates_interface.rb +56 -72
  6. data/lib/morpheus/api/apps_interface.rb +111 -132
  7. data/lib/morpheus/api/auth_interface.rb +30 -0
  8. data/lib/morpheus/api/clouds_interface.rb +71 -76
  9. data/lib/morpheus/api/custom_instance_types_interface.rb +21 -46
  10. data/lib/morpheus/api/dashboard_interface.rb +10 -17
  11. data/lib/morpheus/api/deploy_interface.rb +60 -72
  12. data/lib/morpheus/api/deployments_interface.rb +53 -71
  13. data/lib/morpheus/api/groups_interface.rb +55 -45
  14. data/lib/morpheus/api/instance_types_interface.rb +19 -23
  15. data/lib/morpheus/api/instances_interface.rb +179 -177
  16. data/lib/morpheus/api/key_pairs_interface.rb +11 -17
  17. data/lib/morpheus/api/license_interface.rb +18 -23
  18. data/lib/morpheus/api/load_balancers_interface.rb +54 -69
  19. data/lib/morpheus/api/logs_interface.rb +25 -29
  20. data/lib/morpheus/api/options_interface.rb +13 -17
  21. data/lib/morpheus/api/provision_types_interface.rb +19 -22
  22. data/lib/morpheus/api/roles_interface.rb +75 -94
  23. data/lib/morpheus/api/security_group_rules_interface.rb +28 -37
  24. data/lib/morpheus/api/security_groups_interface.rb +39 -51
  25. data/lib/morpheus/api/servers_interface.rb +113 -115
  26. data/lib/morpheus/api/setup_interface.rb +31 -0
  27. data/lib/morpheus/api/task_sets_interface.rb +36 -38
  28. data/lib/morpheus/api/tasks_interface.rb +56 -69
  29. data/lib/morpheus/api/users_interface.rb +67 -76
  30. data/lib/morpheus/api/virtual_images_interface.rb +61 -61
  31. data/lib/morpheus/api/whoami_interface.rb +12 -15
  32. data/lib/morpheus/cli.rb +71 -60
  33. data/lib/morpheus/cli/accounts.rb +254 -315
  34. data/lib/morpheus/cli/alias_command.rb +219 -0
  35. data/lib/morpheus/cli/app_templates.rb +264 -272
  36. data/lib/morpheus/cli/apps.rb +608 -671
  37. data/lib/morpheus/cli/cli_command.rb +259 -21
  38. data/lib/morpheus/cli/cli_registry.rb +99 -14
  39. data/lib/morpheus/cli/clouds.rb +599 -372
  40. data/lib/morpheus/cli/config_file.rb +126 -0
  41. data/lib/morpheus/cli/credentials.rb +141 -117
  42. data/lib/morpheus/cli/dashboard_command.rb +48 -56
  43. data/lib/morpheus/cli/deployments.rb +254 -268
  44. data/lib/morpheus/cli/deploys.rb +150 -142
  45. data/lib/morpheus/cli/error_handler.rb +38 -0
  46. data/lib/morpheus/cli/groups.rb +551 -179
  47. data/lib/morpheus/cli/hosts.rb +862 -617
  48. data/lib/morpheus/cli/instance_types.rb +103 -95
  49. data/lib/morpheus/cli/instances.rb +1335 -1009
  50. data/lib/morpheus/cli/key_pairs.rb +82 -90
  51. data/lib/morpheus/cli/library.rb +498 -499
  52. data/lib/morpheus/cli/license.rb +83 -101
  53. data/lib/morpheus/cli/load_balancers.rb +314 -300
  54. data/lib/morpheus/cli/login.rb +66 -44
  55. data/lib/morpheus/cli/logout.rb +47 -46
  56. data/lib/morpheus/cli/mixins/accounts_helper.rb +69 -31
  57. data/lib/morpheus/cli/mixins/infrastructure_helper.rb +106 -0
  58. data/lib/morpheus/cli/mixins/print_helper.rb +181 -17
  59. data/lib/morpheus/cli/mixins/provisioning_helper.rb +535 -458
  60. data/lib/morpheus/cli/mixins/whoami_helper.rb +2 -2
  61. data/lib/morpheus/cli/option_parser.rb +35 -0
  62. data/lib/morpheus/cli/option_types.rb +232 -192
  63. data/lib/morpheus/cli/recent_activity_command.rb +61 -65
  64. data/lib/morpheus/cli/remote.rb +446 -199
  65. data/lib/morpheus/cli/roles.rb +884 -906
  66. data/lib/morpheus/cli/security_group_rules.rb +213 -203
  67. data/lib/morpheus/cli/security_groups.rb +237 -192
  68. data/lib/morpheus/cli/shell.rb +338 -231
  69. data/lib/morpheus/cli/tasks.rb +326 -308
  70. data/lib/morpheus/cli/users.rb +457 -462
  71. data/lib/morpheus/cli/version.rb +1 -1
  72. data/lib/morpheus/cli/version_command.rb +16 -18
  73. data/lib/morpheus/cli/virtual_images.rb +526 -345
  74. data/lib/morpheus/cli/whoami.rb +125 -111
  75. data/lib/morpheus/cli/workflows.rb +338 -185
  76. data/lib/morpheus/formatters.rb +8 -1
  77. data/lib/morpheus/logging.rb +1 -1
  78. data/lib/morpheus/rest_client.rb +17 -8
  79. metadata +9 -3
  80. data/lib/morpheus/api/custom_instance_types.rb +0 -55
@@ -1,47 +1,57 @@
1
- require 'json'
2
- require 'morpheus/rest_client'
1
+ require 'morpheus/api/api_client'
3
2
 
4
3
  class Morpheus::GroupsInterface < 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
-
12
-
13
- def get(options=nil)
14
- url = "#{@base_url}/api/groups"
15
- headers = { params: {}, authorization: "Bearer #{@access_token}" }
16
-
17
- if options.is_a?(Hash)
18
- headers[:params].merge!(options)
19
- elsif options.is_a?(Numeric)
20
- url = "#{@base_url}/api/groups/#{options}"
21
- elsif options.is_a?(String)
22
- headers[:params]['name'] = options
23
- end
24
- response = Morpheus::RestClient.execute(method: :get, url: url,
25
- timeout: 30, headers: headers, verify_ssl:false)
26
- JSON.parse(response.to_s)
27
- end
28
-
29
-
30
- def create(options)
31
- url = "#{@base_url}/api/groups"
32
- headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
33
-
34
- payload = {group: options}
35
- response = Morpheus::RestClient.execute(method: :post, url: url,
36
- timeout: 30, headers: headers, verify_ssl:false, payload: payload.to_json)
37
- JSON.parse(response.to_s)
38
- end
39
-
40
- def destroy(id)
41
- url = "#{@base_url}/api/groups/#{id}"
42
- headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
43
- response = Morpheus::RestClient.execute(method: :delete, url: url,
44
- timeout: 30, headers: headers, verify_ssl:false)
45
- JSON.parse(response.to_s)
46
- end
47
- end
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
+
12
+ def get(options=nil)
13
+ url = "#{@base_url}/api/groups"
14
+ headers = { params: {}, authorization: "Bearer #{@access_token}" }
15
+
16
+ if options.is_a?(Hash)
17
+ headers[:params].merge!(options)
18
+ elsif options.is_a?(Numeric)
19
+ url = "#{@base_url}/api/groups/#{options}"
20
+ elsif options.is_a?(String)
21
+ headers[:params]['name'] = options
22
+ end
23
+ opts = {method: :get, url: url, timeout: 30, headers: headers}
24
+ execute(opts)
25
+ end
26
+
27
+ def create(options)
28
+ url = "#{@base_url}/api/groups"
29
+ headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
30
+ payload = options
31
+ opts = {method: :post, url: url, timeout: 30, headers: headers, payload: payload.to_json}
32
+ execute(opts)
33
+ end
34
+
35
+ def update(id, options)
36
+ url = "#{@base_url}/api/groups/#{id}"
37
+ headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
38
+ payload = options
39
+ opts = {method: :put, url: url, headers: headers, payload: payload.to_json}
40
+ execute(opts)
41
+ end
42
+
43
+ def destroy(id)
44
+ url = "#{@base_url}/api/groups/#{id}"
45
+ headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
46
+ opts = {method: :delete, url: url, timeout: 30, headers: headers}
47
+ execute(opts)
48
+ end
49
+
50
+ def update_zones(id, options)
51
+ url = "#{@base_url}/api/groups/#{id}/update-zones"
52
+ headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
53
+ payload = options
54
+ opts = {method: :put, url: url, timeout: 30, headers: headers, payload: payload.to_json}
55
+ execute(opts)
56
+ end
57
+ end
@@ -1,29 +1,25 @@
1
- require 'json'
2
- require 'morpheus/rest_client'
1
+ require 'morpheus/api/api_client'
3
2
 
4
3
  class Morpheus::InstanceTypesInterface < 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
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
11
10
 
12
11
 
13
- def get(options=nil)
14
- url = "#{@base_url}/api/instance-types"
15
- headers = { params: {}, authorization: "Bearer #{@access_token}" }
16
-
17
- if options.is_a?(Hash)
18
- headers[:params].merge!(options)
19
- elsif options.is_a?(Numeric)
20
- url = "#{@base_url}/api/instance-types/#{options}"
21
- elsif options.is_a?(String)
22
- headers[:params]['name'] = options
23
- end
24
- response = Morpheus::RestClient.execute(method: :get, url: url,
25
- timeout: 30, headers: headers, verify_ssl:false)
26
- JSON.parse(response.to_s)
27
- end
12
+ def get(options=nil)
13
+ url = "#{@base_url}/api/instance-types"
14
+ headers = { params: {}, authorization: "Bearer #{@access_token}" }
15
+ if options.is_a?(Hash)
16
+ headers[:params].merge!(options)
17
+ elsif options.is_a?(Numeric)
18
+ url = "#{@base_url}/api/instance-types/#{options}"
19
+ elsif options.is_a?(String)
20
+ headers[:params]['name'] = options
21
+ end
22
+ execute(method: :get, url: url, headers: headers)
23
+ end
28
24
 
29
25
  end
@@ -1,181 +1,183 @@
1
- require 'json'
2
- require 'morpheus/rest_client'
1
+ require 'morpheus/api/api_client'
3
2
 
4
3
  class Morpheus::InstancesInterface < 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
-
12
- def get(options=nil)
13
- url = "#{@base_url}/api/instances"
14
- headers = { params: {}, authorization: "Bearer #{@access_token}" }
15
-
16
- if options.is_a?(Hash)
17
- headers[:params].merge!(options)
18
- elsif options.is_a?(Numeric)
19
- url = "#{@base_url}/api/instances/#{options}"
20
- elsif options.is_a?(String)
21
- headers[:params]['name'] = options
22
- end
23
- response = Morpheus::RestClient.execute(method: :get, url: url,
24
- timeout: 30, headers: headers,verify_ssl: false)
25
- JSON.parse(response.to_s)
26
- end
27
-
28
- def get_envs(id, options=nil)
29
- url = "#{@base_url}/api/instances/#{id}/envs"
30
- headers = { params: {}, authorization: "Bearer #{@access_token}" }
31
- response = Morpheus::RestClient.execute(method: :get, url: url,
32
- timeout: 30, headers: headers,verify_ssl: false)
33
- JSON.parse(response.to_s)
34
- end
35
-
36
- def create_env(id, options)
37
- url = "#{@base_url}/api/instances/#{id}/envs"
38
- headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
39
-
40
- payload = {envs: options}
41
- response = Morpheus::RestClient.execute(method: :post, url: url,
42
- timeout: 30, headers: headers,verify_ssl: false, payload: payload.to_json)
43
- JSON.parse(response.to_s)
44
- end
45
-
46
- def del_env(id, name)
47
- url = "#{@base_url}/api/instances/#{id}/envs/#{name}"
48
- headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
49
-
50
- response = Morpheus::RestClient.execute(method: :delete, url: url,
51
- timeout: 30, headers: headers,verify_ssl: false)
52
- JSON.parse(response.to_s)
53
- end
54
-
55
-
56
- def create(options)
57
- url = "#{@base_url}/api/instances"
58
- headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
59
-
60
- payload = options
61
- response = Morpheus::RestClient.execute(method: :post, url: url,
62
- timeout: 30, headers: headers,verify_ssl: false, payload: payload.to_json)
63
- JSON.parse(response.to_s)
64
- end
65
-
66
- def update(id, options)
67
- url = "#{@base_url}/api/instances/#{id}"
68
- headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
69
-
70
- payload = options
71
- response = Morpheus::RestClient.execute(method: :put, url: url,
72
- timeout: 30, headers: headers,verify_ssl: false, payload: payload.to_json)
73
- JSON.parse(response.to_s)
74
- end
75
-
76
- def destroy(id, params = {})
77
- url = "#{@base_url}/api/instances/#{id}"
78
- headers = {:params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
79
- response = Morpheus::RestClient.execute(method: :delete, url: url,
80
- timeout: 30, headers: headers,verify_ssl: false)
81
- JSON.parse(response.to_s)
82
- end
83
-
84
- def stop(id,server=true)
85
- url = "#{@base_url}/api/instances/#{id}/stop"
86
- headers = { :params => {:server => server}, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
87
- response = Morpheus::RestClient.execute(method: :put, url: url,
88
- timeout: 30, headers: headers,verify_ssl: false)
89
- JSON.parse(response.to_s)
90
- end
91
-
92
- def start(id,server=true)
93
- url = "#{@base_url}/api/instances/#{id}/start"
94
- headers = { :params => {:server => server}, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
95
- response = Morpheus::RestClient.execute(method: :put, url: url,
96
- timeout: 30, headers: headers,verify_ssl: false)
97
- JSON.parse(response.to_s)
98
- end
99
-
100
- def restart(id,server=true)
101
- url = "#{@base_url}/api/instances/#{id}/restart"
102
- headers = { :params => {:server => server},:authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
103
- response = Morpheus::RestClient.execute(method: :put, url: url,
104
- timeout: 30, headers: headers,verify_ssl: false)
105
- JSON.parse(response.to_s)
106
- end
107
-
108
- def volumes(id)
109
- url = "#{@base_url}/api/instances/#{id}/volumes"
110
- headers = { :params => {},:authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
111
- response = Morpheus::RestClient.execute(method: :get, url: url,
112
- timeout: 30, headers: headers,verify_ssl: false)
113
- JSON.parse(response.to_s)
114
- end
115
-
116
- def resize(id,payload)
117
- url = "#{@base_url}/api/instances/#{id}/resize"
118
- headers = { :params => {},:authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
119
- response = Morpheus::RestClient.execute(method: :put, url: url,
120
- timeout: 30, headers: headers,verify_ssl: false,payload: payload.to_json)
121
- JSON.parse(response.to_s)
122
- end
123
-
124
- def workflow(id,task_set_id,payload)
125
- url = "#{@base_url}/api/instances/#{id}/workflow"
126
- headers = { :params => {:taskSetId => task_set_id},:authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
127
- response = Morpheus::RestClient.execute(method: :put, url: url,
128
- timeout: 30, headers: headers,verify_ssl: false,payload: payload.to_json)
129
- JSON.parse(response.to_s)
130
- end
131
-
132
- def backup(id,server=true)
133
- url = "#{@base_url}/api/instances/#{id}/backup"
134
- headers = {:authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
135
- response = Morpheus::RestClient.execute(method: :put, url: url,
136
- timeout: 30, headers: headers,verify_ssl: false)
137
- JSON.parse(response.to_s)
138
- end
139
-
140
- def firewall_disable(id)
141
- url = "#{@base_url}/api/instances/#{id}/security-groups/disable"
142
- headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
143
- response = Morpheus::RestClient.execute(method: :put, url: url,
144
- timeout: 30, headers: headers,verify_ssl: false)
145
- JSON.parse(response.to_s)
146
- end
147
-
148
- def firewall_enable(id)
149
- url = "#{@base_url}/api/instances/#{id}/security-groups/enable"
150
- headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
151
- response = Morpheus::RestClient.execute(method: :put, url: url,
152
- timeout: 30, headers: headers,verify_ssl: false)
153
- JSON.parse(response.to_s)
154
- end
155
-
156
- def security_groups(id)
157
- url = "#{@base_url}/api/instances/#{id}/security-groups"
158
- headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
159
- response = Morpheus::RestClient.execute(method: :get, url: url,
160
- timeout: 30, headers: headers,verify_ssl: false)
161
- JSON.parse(response.to_s)
162
- end
163
-
164
- def apply_security_groups(id, options)
165
- url = "#{@base_url}/api/instances/#{id}/security-groups"
166
- headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
167
- payload = options
168
- response = Morpheus::RestClient.execute(method: :post, url: url,
169
- timeout: 30, headers: headers,verify_ssl: false, payload: payload.to_json)
170
- JSON.parse(response.to_s)
171
- end
172
-
173
- def service_plans(params)
174
- url = "#{@base_url}/api/instances/service-plans"
175
- headers = { params: params, authorization: "Bearer #{@access_token}" }
176
- response = Morpheus::RestClient.execute(method: :get, url: url,
177
- timeout: 30, headers: headers, verify_ssl: false)
178
- JSON.parse(response.to_s)
179
- end
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(options=nil)
12
+ url = "#{@base_url}/api/instances"
13
+ headers = { params: {}, authorization: "Bearer #{@access_token}" }
14
+
15
+ if options.is_a?(Hash)
16
+ headers[:params].merge!(options)
17
+ elsif options.is_a?(Numeric)
18
+ url = "#{@base_url}/api/instances/#{options}"
19
+ elsif options.is_a?(String)
20
+ headers[:params]['name'] = options
21
+ end
22
+ opts = {method: :get, url: url, headers: headers}
23
+ execute(opts)
24
+ end
25
+
26
+ def get_envs(id, options=nil)
27
+ url = "#{@base_url}/api/instances/#{id}/envs"
28
+ headers = { params: {}, authorization: "Bearer #{@access_token}" }
29
+ opts = {method: :get, url: url, headers: headers}
30
+ execute(opts)
31
+ end
32
+
33
+ def create_env(id, options)
34
+ url = "#{@base_url}/api/instances/#{id}/envs"
35
+ headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
36
+ payload = options
37
+ opts = {method: :post, url: url, headers: headers, payload: payload.to_json}
38
+ execute(opts)
39
+ end
40
+
41
+ def del_env(id, name)
42
+ url = "#{@base_url}/api/instances/#{id}/envs/#{name}"
43
+ headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
44
+ opts = {method: :delete, url: url, headers: headers}
45
+ execute(opts)
46
+ end
47
+
48
+ def create(options)
49
+ url = "#{@base_url}/api/instances"
50
+ headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
51
+ payload = options
52
+ opts = {method: :post, url: url, headers: headers, payload: payload.to_json}
53
+ execute(opts)
54
+ end
55
+
56
+ def update(id, options)
57
+ url = "#{@base_url}/api/instances/#{id}"
58
+ headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
59
+ payload = options
60
+ opts = {method: :put, url: url, headers: headers, payload: payload.to_json}
61
+ execute(opts)
62
+ end
63
+
64
+ def destroy(id, params = {})
65
+ url = "#{@base_url}/api/instances/#{id}"
66
+ headers = {:params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
67
+ opts = {method: :delete, url: url, headers: headers}
68
+ execute(opts)
69
+ end
70
+
71
+ def stop(id,server=true)
72
+ url = "#{@base_url}/api/instances/#{id}/stop"
73
+ headers = { :params => {:server => server}, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
74
+ opts = {method: :put, url: url, headers: headers}
75
+ execute(opts)
76
+ end
77
+
78
+ def start(id,server=true)
79
+ url = "#{@base_url}/api/instances/#{id}/start"
80
+ headers = { :params => {:server => server}, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
81
+ opts = {method: :put, url: url, headers: headers}
82
+ execute(opts)
83
+ end
84
+
85
+ def restart(id,server=true)
86
+ url = "#{@base_url}/api/instances/#{id}/restart"
87
+ headers = { :params => {:server => server},:authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
88
+ opts = {method: :put, url: url, headers: headers}
89
+ execute(opts)
90
+ end
91
+
92
+ def suspend(id,server=true)
93
+ url = "#{@base_url}/api/instances/#{id}/suspend"
94
+ headers = { :params => {:server => server},:authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
95
+ opts = {method: :put, url: url, headers: headers}
96
+ execute(opts)
97
+ end
98
+
99
+ def eject(id,server=true)
100
+ url = "#{@base_url}/api/instances/#{id}/eject"
101
+ headers = { :params => {:server => server},:authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
102
+ opts = {method: :put, url: url, headers: headers}
103
+ execute(opts)
104
+ end
105
+
106
+ def volumes(id)
107
+ url = "#{@base_url}/api/instances/#{id}/volumes"
108
+ headers = { :params => {},:authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
109
+ opts = {method: :get, url: url, headers: headers}
110
+ execute(opts)
111
+ end
112
+
113
+ def resize(id,payload)
114
+ url = "#{@base_url}/api/instances/#{id}/resize"
115
+ headers = { :params => {},:authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
116
+ opts = {method: :put, url: url, headers: headers,payload: payload.to_json}
117
+ execute(opts)
118
+ end
119
+
120
+ def workflow(id,task_set_id,payload)
121
+ url = "#{@base_url}/api/instances/#{id}/workflow"
122
+ headers = { :params => {:taskSetId => task_set_id},:authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
123
+ opts = {method: :put, url: url, headers: headers,payload: payload.to_json}
124
+ execute(opts)
125
+ end
126
+
127
+ def backup(id,server=true)
128
+ url = "#{@base_url}/api/instances/#{id}/backup"
129
+ headers = {:authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
130
+ opts = {method: :put, url: url, headers: headers}
131
+ execute(opts)
132
+ end
133
+
134
+ def backups(id, params)
135
+ url = "#{@base_url}/api/instances/#{id}/backups"
136
+ headers = { params: params, authorization: "Bearer #{@access_token}" }
137
+ opts = {method: :get, url: url, headers: headers}
138
+ execute(opts)
139
+ end
140
+
141
+ def firewall_disable(id)
142
+ url = "#{@base_url}/api/instances/#{id}/security-groups/disable"
143
+ headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
144
+ opts = {method: :put, url: url, headers: headers}
145
+ execute(opts)
146
+ end
147
+
148
+ def firewall_enable(id)
149
+ url = "#{@base_url}/api/instances/#{id}/security-groups/enable"
150
+ headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
151
+ opts = {method: :put, url: url, headers: headers}
152
+ execute(opts)
153
+ end
154
+
155
+ def security_groups(id)
156
+ url = "#{@base_url}/api/instances/#{id}/security-groups"
157
+ headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
158
+ opts = {method: :get, url: url, headers: headers}
159
+ execute(opts)
160
+ end
161
+
162
+ def apply_security_groups(id, options)
163
+ url = "#{@base_url}/api/instances/#{id}/security-groups"
164
+ headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
165
+ payload = options
166
+ opts = {method: :post, url: url, headers: headers, payload: payload.to_json}
167
+ execute(opts)
168
+ end
169
+ def import_snapshot(id, params={})
170
+ url = "#{@base_url}/api/instances/#{id}/import-snapshot"
171
+ headers = {:authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
172
+ opts = {method: :put, url: url, headers: headers}
173
+ execute(opts)
174
+ end
175
+
176
+ def service_plans(params)
177
+ url = "#{@base_url}/api/instances/service-plans"
178
+ headers = { params: params, authorization: "Bearer #{@access_token}" }
179
+ opts = {method: :get, url: url, headers: headers}
180
+ execute(opts)
181
+ end
180
182
 
181
183
  end