morpheus-cli 4.1.4 → 4.1.5

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 (76) hide show
  1. checksums.yaml +4 -4
  2. data/lib/morpheus.rb +5 -0
  3. data/lib/morpheus/api.rb +2 -2
  4. data/lib/morpheus/api/api_client.rb +47 -12
  5. data/lib/morpheus/api/appliance_settings_interface.rb +30 -0
  6. data/lib/morpheus/api/auth_interface.rb +14 -10
  7. data/lib/morpheus/api/clouds_interface.rb +7 -0
  8. data/lib/morpheus/api/clusters_interface.rb +17 -5
  9. data/lib/morpheus/api/custom_instance_types_interface.rb +2 -3
  10. data/lib/morpheus/api/deployments_interface.rb +7 -0
  11. data/lib/morpheus/api/execute_schedules_interface.rb +2 -3
  12. data/lib/morpheus/api/groups_interface.rb +7 -0
  13. data/lib/morpheus/api/license_interface.rb +9 -2
  14. data/lib/morpheus/api/load_balancers_interface.rb +7 -0
  15. data/lib/morpheus/api/logs_interface.rb +11 -2
  16. data/lib/morpheus/api/monitoring_alerts_interface.rb +45 -0
  17. data/lib/morpheus/api/monitoring_checks_interface.rb +2 -2
  18. data/lib/morpheus/api/monitoring_interface.rb +13 -8
  19. data/lib/morpheus/api/power_schedules_interface.rb +2 -3
  20. data/lib/morpheus/api/servers_interface.rb +5 -2
  21. data/lib/morpheus/api/setup_interface.rb +25 -7
  22. data/lib/morpheus/api/task_sets_interface.rb +7 -1
  23. data/lib/morpheus/api/tasks_interface.rb +7 -0
  24. data/lib/morpheus/api/virtual_images_interface.rb +2 -3
  25. data/lib/morpheus/api/whitelabel_settings_interface.rb +60 -0
  26. data/lib/morpheus/cli.rb +18 -14
  27. data/lib/morpheus/cli/access_token_command.rb +18 -2
  28. data/lib/morpheus/cli/appliance_settings_command.rb +303 -0
  29. data/lib/morpheus/cli/apps.rb +4 -3
  30. data/lib/morpheus/cli/archives_command.rb +0 -21
  31. data/lib/morpheus/cli/blueprints_command.rb +2 -2
  32. data/lib/morpheus/cli/cli_command.rb +32 -8
  33. data/lib/morpheus/cli/clouds.rb +6 -11
  34. data/lib/morpheus/cli/clusters.rb +346 -117
  35. data/lib/morpheus/cli/command_error.rb +4 -0
  36. data/lib/morpheus/cli/commands/standard/man_command.rb +1 -1
  37. data/lib/morpheus/cli/containers_command.rb +2 -1
  38. data/lib/morpheus/cli/credentials.rb +49 -4
  39. data/lib/morpheus/cli/deployments.rb +2 -2
  40. data/lib/morpheus/cli/dot_file.rb +2 -2
  41. data/lib/morpheus/cli/error_handler.rb +6 -3
  42. data/lib/morpheus/cli/execute_schedules_command.rb +1 -1
  43. data/lib/morpheus/cli/groups.rb +4 -4
  44. data/lib/morpheus/cli/hosts.rb +3 -2
  45. data/lib/morpheus/cli/image_builder_command.rb +0 -21
  46. data/lib/morpheus/cli/instances.rb +17 -4
  47. data/lib/morpheus/cli/library_container_types_command.rb +1 -1
  48. data/lib/morpheus/cli/library_layouts_command.rb +1 -1
  49. data/lib/morpheus/cli/library_upgrades_command.rb +1 -1
  50. data/lib/morpheus/cli/license.rb +185 -72
  51. data/lib/morpheus/cli/load_balancers.rb +4 -4
  52. data/lib/morpheus/cli/login.rb +4 -0
  53. data/lib/morpheus/cli/logs_command.rb +132 -0
  54. data/lib/morpheus/cli/mixins/infrastructure_helper.rb +2 -2
  55. data/lib/morpheus/cli/mixins/logs_helper.rb +65 -0
  56. data/lib/morpheus/cli/mixins/monitoring_helper.rb +410 -28
  57. data/lib/morpheus/cli/mixins/print_helper.rb +14 -4
  58. data/lib/morpheus/cli/monitoring_alerts_command.rb +800 -0
  59. data/lib/morpheus/cli/monitoring_apps_command.rb +85 -28
  60. data/lib/morpheus/cli/monitoring_checks_command.rb +60 -27
  61. data/lib/morpheus/cli/monitoring_contacts_command.rb +54 -79
  62. data/lib/morpheus/cli/monitoring_groups_command.rb +62 -23
  63. data/lib/morpheus/cli/monitoring_incidents_command.rb +91 -70
  64. data/lib/morpheus/cli/network_pools_command.rb +39 -23
  65. data/lib/morpheus/cli/power_schedules_command.rb +1 -1
  66. data/lib/morpheus/cli/remote.rb +834 -275
  67. data/lib/morpheus/cli/roles.rb +100 -38
  68. data/lib/morpheus/cli/tasks.rb +1 -1
  69. data/lib/morpheus/cli/user_settings_command.rb +20 -12
  70. data/lib/morpheus/cli/version.rb +1 -1
  71. data/lib/morpheus/cli/virtual_images.rb +1 -1
  72. data/lib/morpheus/cli/whitelabel_settings_command.rb +546 -0
  73. data/lib/morpheus/cli/whoami.rb +1 -1
  74. data/lib/morpheus/cli/workflows.rb +2 -2
  75. data/lib/morpheus/terminal.rb +22 -8
  76. metadata +11 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b4dacc032b0f2cb81ba8c3941c374298747f2c8d75ab3307382b9f95e7247df6
4
- data.tar.gz: 9aa05d08d822f72fb7c3c93c6fc34154390f4073f32b4157e7503329a4a4b868
3
+ metadata.gz: 8cf9fe88c6a717fcd35c655ca1bf208842bd6669c793a698cbee17d6a1c6263a
4
+ data.tar.gz: fc1ecf887d8b6bd1ef7b3de650d1a2a9d88bd13a7fc4b6a781858623da57dcd3
5
5
  SHA512:
6
- metadata.gz: 5e63a7b794f281f737b86fea28c5d220875b8e2d30c802fb099fb7e2be0516e6c8afbb4a6ab6cc209421adf3adbba2d64c3f5cc28d525cd35174569837c9c360
7
- data.tar.gz: 0eac4da8d373956f7468923d25efb8e5010ce107beeafc6cf9355f8efd9648cb4efedf43be0feeae80b3123dd20f0bad561343ec59f6d6896ea6214423960e3b
6
+ metadata.gz: 2af125ef03ebc7cfcdd528f069c33a4af72e037039b3256c954bb2e8f75511989b25be9b06a5508a49d28ebfe2686ecec6057ba19066c4daf466135570d3a9bd
7
+ data.tar.gz: ccf40b9d7d5e1a0bc7f12d5cb9249da035c5d043028fbf5ceb58dfdf95f2fad5b53eda43a0e9521060f92d77fd2e6369cbbe53616b92bf78ad762c241014aac8
@@ -0,0 +1,5 @@
1
+ # This provides the command: require 'morpheus'
2
+ # This is really the same as just morpheus/api right now.
3
+ # require 'morpheus/api'
4
+
5
+ require 'morpheus/cli'
@@ -1,6 +1,6 @@
1
- require "morpheus/cli/version"
1
+ require 'morpheus/cli/version'
2
2
  require 'morpheus/cli/command_error'
3
- require "morpheus/rest_client"
3
+ require 'morpheus/rest_client'
4
4
  require 'morpheus/formatters'
5
5
  #require 'morpheus/logging'
6
6
  #require 'term/ansicolor'
@@ -3,19 +3,30 @@ require 'uri'
3
3
  require 'rest-client'
4
4
 
5
5
  class Morpheus::APIClient
6
+
7
+ CLIENT_ID = 'morph-cli' unless defined?(CLIENT_ID)
8
+
9
+ attr_accessor :client_id
6
10
  # Initialize a new APIClient
7
11
  # client = APIClient.new(url:"https://morpheus.yourcompany.com", verify_ssl:false)
8
12
  # This old method signature is being deprecated:
9
13
  # client = APIClient.new(access_token, refresh_token, expires_in, base_url, verify_ssl, options={})
10
14
  #
15
+ # def initialize(attrs={}, options={})
11
16
  def initialize(access_token, refresh_token=nil,expires_in = nil, base_url=nil, verify_ssl=true, options={})
17
+ self.client_id = CLIENT_ID
18
+ attrs = {}
12
19
  if access_token.is_a?(Hash)
13
- client_opts = access_token.clone()
14
- access_token = client_opts[:access_token]
15
- refresh_token = client_opts[:refresh_token]
16
- base_url = client_opts[:url] || client_opts[:base_url]
17
- expires_in = client_opts[:expires_in]
18
- verify_ssl = client_opts.key?(:verify_ssl) ? client_opts[:verify_ssl] : true
20
+ attrs = access_token.clone()
21
+ access_token = attrs[:access_token]
22
+ refresh_token = attrs[:refresh_token]
23
+ base_url = attrs[:url] || attrs[:base_url]
24
+ expires_in = attrs[:expires_in]
25
+ verify_ssl = attrs.key?(:verify_ssl) ? attrs[:verify_ssl] : true
26
+ self.client_id = attrs[:client_id] ? attrs[:client_id] : CLIENT_ID
27
+ if attrs[:client_id]
28
+ self.client_id = attrs[:client_id]
29
+ end
19
30
  options = refresh_token.is_a?(Hash) ? refresh_token.clone() : {}
20
31
  end
21
32
  @access_token = access_token
@@ -38,7 +49,7 @@ class Morpheus::APIClient
38
49
  end
39
50
 
40
51
  def to_s
41
- "<##{self.class}:#{self.object_id.to_s(8)} @url=#{@base_url} @verify_ssl=#{@verify_ssl} @access_token=#{@access_token ? '************' : nil} @refresh_token=#{@access_token ? '************' : nil} @expires_at=#{@expires_at} @options=#{@options}>"
52
+ "<##{self.class}:#{self.object_id.to_s(8)} @url=#{@base_url} @verify_ssl=#{@verify_ssl} @access_token=#{@access_token ? '************' : nil} @refresh_token=#{@access_token ? '************' : nil} @expires_at=#{@expires_at} @client_id=#{@client_id} @options=#{@options}>"
42
53
  end
43
54
 
44
55
  def inspect
@@ -219,9 +230,20 @@ class Morpheus::APIClient
219
230
  !!@access_token
220
231
  end
221
232
 
222
- def login(username, password)
233
+ def client_id
234
+ @client_id
235
+ end
236
+
237
+ def client_id=(val)
238
+ @client_id = val
239
+ end
240
+
241
+ def login(username, password, use_client_id=nil)
242
+ if use_client_id
243
+ self.client_id = use_client_id
244
+ end
223
245
  @access_token, @refresh_token, @expires_at = nil, nil, nil
224
- response = auth.login(username, password)
246
+ response = auth.login(username, password, self.client_id)
225
247
  @access_token = response['access_token']
226
248
  @refresh_token = response['refresh_token']
227
249
  if response['expires_in'] != nil
@@ -235,7 +257,7 @@ class Morpheus::APIClient
235
257
  if @refresh_token.nil?
236
258
  raise "#{self.class} does not currently have a refresh_token"
237
259
  end
238
- response = auth.use_refresh_token(@refresh_token)
260
+ response = auth.use_refresh_token(@refresh_token, self.client_id)
239
261
  @access_token = response['access_token']
240
262
  @refresh_token = response['refresh_token']
241
263
  if response['expires_in'] != nil
@@ -253,8 +275,12 @@ class Morpheus::APIClient
253
275
  return self
254
276
  end
255
277
 
278
+ def common_iface_opts
279
+ {url: @base_url, access_token: @access_token, refresh_token: @refresh_token, expires_at: @expires_at}
280
+ end
281
+
256
282
  def auth
257
- Morpheus::AuthInterface.new(@base_url, @access_token).setopts(@options)
283
+ Morpheus::AuthInterface.new({url: @base_url, client_id: @client_id}).setopts(@options)
258
284
  end
259
285
 
260
286
  def whoami
@@ -301,6 +327,10 @@ class Morpheus::APIClient
301
327
  Morpheus::InstancesInterface.new(@access_token, @refresh_token, @expires_at, @base_url).setopts(@options)
302
328
  end
303
329
 
330
+ def appliance_settings
331
+ Morpheus::ApplianceSettingsInterface.new(@access_token, @refresh_token, @expires_at, @base_url).setopts(@options)
332
+ end
333
+
304
334
  def containers
305
335
  Morpheus::ContainersInterface.new(@access_token, @refresh_token, @expires_at, @base_url).setopts(@options)
306
336
  end
@@ -421,8 +451,9 @@ class Morpheus::APIClient
421
451
  Morpheus::ExecuteSchedulesInterface.new(@access_token, @refresh_token, @expires_at, @base_url).setopts(@options)
422
452
  end
423
453
 
454
+
424
455
  def setup
425
- Morpheus::SetupInterface.new(@base_url).setopts(@options).setopts(@options)
456
+ Morpheus::SetupInterface.new(common_iface_opts).setopts(@options).setopts(@options)
426
457
  end
427
458
 
428
459
  def monitoring
@@ -576,6 +607,10 @@ class Morpheus::APIClient
576
607
  Morpheus::EnvironmentsInterface.new(@access_token, @refresh_token, @expires_at, @base_url).setopts(@options)
577
608
  end
578
609
 
610
+ def whitelabel_settings
611
+ Morpheus::WhitelabelSettingsInterface.new(@access_token, @refresh_token, @expires_at, @base_url).setopts(@options)
612
+ end
613
+
579
614
  def wiki
580
615
  Morpheus::WikiInterface.new(@access_token, @refresh_token, @expires_at, @base_url).setopts(@options)
581
616
  end
@@ -0,0 +1,30 @@
1
+ require 'morpheus/api/api_client'
2
+
3
+ class Morpheus::ApplianceSettingsInterface < Morpheus::APIClient
4
+ def initialize(access_token, refresh_token,expires_at = nil, base_url=nil, api='appliance-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
10
+ end
11
+
12
+ def get()
13
+ url = @api_url
14
+ headers = { params: {}, authorization: "Bearer #{@access_token}" }
15
+ execute(method: :get, url: url, headers: headers)
16
+ end
17
+
18
+ def update(payload)
19
+ url = @api_url
20
+ headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
21
+ execute(method: :put, url: url, headers: headers, payload: payload.to_json)
22
+ end
23
+
24
+ def cloud_types(params={})
25
+ url = "#{@api_url}/zone-types"
26
+ headers = { params: params, authorization: "Bearer #{@access_token}" }
27
+ opts = {method: :get, url: url, headers: headers}
28
+ execute(opts)
29
+ end
30
+ end
@@ -2,17 +2,18 @@ require 'morpheus/api/api_client'
2
2
 
3
3
  class Morpheus::AuthInterface < Morpheus::APIClient
4
4
 
5
- #attr_reader :access_token, :refresh_token, :expires_at
5
+ # def initialize(base_url, access_token=nil)
6
+ # @base_url = base_url
7
+ # @access_token = access_token
8
+ # end
6
9
 
7
- def initialize(base_url, access_token=nil)
8
- @base_url = base_url
9
- @access_token = access_token
10
- end
11
-
12
- def login(username, password)
10
+ def login(username, password, use_client_id=nil)
11
+ if use_client_id
12
+ self.client_id = use_client_id
13
+ end
13
14
  @access_token, @refresh_token, @expires_at = nil, nil, nil
14
15
  url = "#{@base_url}/oauth/token"
15
- params = {grant_type: 'password', scope:'write', client_id: 'morph-cli', username: username}
16
+ params = {grant_type: 'password', scope:'write', client_id: self.client_id, username: username}
16
17
  payload = {password: password}
17
18
  opts = {method: :post, url: url, headers:{ params: params}, payload: payload, timeout: 5}
18
19
  response = execute(opts)
@@ -26,10 +27,13 @@ class Morpheus::AuthInterface < Morpheus::APIClient
26
27
  end
27
28
 
28
29
  # this regenerates the access_token and refresh_token
29
- def use_refresh_token(refresh_token)
30
+ def use_refresh_token(refresh_token, use_client_id=nil)
31
+ if use_client_id
32
+ self.client_id = use_client_id
33
+ end
30
34
  @access_token = nil
31
35
  url = "#{@base_url}/oauth/token"
32
- params = {grant_type: 'refresh_token', scope:'write', client_id: 'morph-cli'}
36
+ params = {grant_type: 'refresh_token', scope:'write', client_id: self.client_id}
33
37
  payload = {refresh_token: refresh_token}
34
38
  opts = {method: :post, url: url, headers:{ params: params}, payload: payload}
35
39
  response = execute(opts)
@@ -45,6 +45,13 @@ class Morpheus::CloudsInterface < Morpheus::APIClient
45
45
  execute(opts)
46
46
  end
47
47
 
48
+ def list(params={})
49
+ url = "#{@base_url}/api/zones"
50
+ headers = { params: params, authorization: "Bearer #{@access_token}" }
51
+ opts = {method: :get, url: url, headers: headers}
52
+ execute(opts)
53
+ end
54
+
48
55
  def create(payload)
49
56
  url = "#{@base_url}/api/zones"
50
57
  headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
@@ -226,11 +226,23 @@ class Morpheus::ClustersInterface < Morpheus::APIClient
226
226
  execute(method: :delete, url: url, headers: headers)
227
227
  end
228
228
 
229
- # def list_pods(id, params={})
230
- # url = "#{@api_url}/#{id}/pods"
231
- # headers = { params: params, authorization: "Bearer #{@access_token}" }
232
- # execute(method: :get, url: url, headers: headers)
233
- # end
229
+ def list_datastores(id, params={})
230
+ url = "#{@api_url}/#{id}/datastores"
231
+ headers = { params: params, authorization: "Bearer #{@access_token}" }
232
+ execute(method: :get, url: url, headers: headers)
233
+ end
234
+
235
+ def get_datastore(id, datastore_id, params={})
236
+ url = "#{@api_url}/#{id}/datastores/#{datastore_id}"
237
+ headers = { params: params, authorization: "Bearer #{@access_token}" }
238
+ execute(method: :get, url: url, headers: headers)
239
+ end
240
+
241
+ def update_datastore(id, datastore_id, payload)
242
+ url = "#{@api_url}/#{id}/datastores/#{datastore_id}"
243
+ headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
244
+ execute(method: :put, url: url, headers: headers, payload: payload.to_json)
245
+ end
234
246
 
235
247
  def wiki(id, params)
236
248
  url = "#{@base_url}/api/clusters/#{id}/wiki"
@@ -8,10 +8,9 @@ class Morpheus::CustomInstanceTypesInterface < Morpheus::APIClient
8
8
  @expires_at = expires_at
9
9
  end
10
10
 
11
- def list(options={})
11
+ def list(params={})
12
12
  url = "#{@base_url}/api/custom-instance-types"
13
- headers = { params: {}, authorization: "Bearer #{@access_token}" }
14
- headers[:params].merge!(options)
13
+ headers = { params: params, authorization: "Bearer #{@access_token}" }
15
14
  execute(method: :get, url: url, headers: headers)
16
15
  end
17
16
 
@@ -8,6 +8,13 @@ class Morpheus::DeploymentsInterface < Morpheus::APIClient
8
8
  @expires_at = expires_at
9
9
  end
10
10
 
11
+ def list(params={})
12
+ url = "#{@base_url}/api/deployments"
13
+ headers = { params: params, authorization: "Bearer #{@access_token}" }
14
+ opts = {method: :get, url: url, headers: headers}
15
+ execute(opts)
16
+ end
17
+
11
18
  def get(options=nil)
12
19
  url = "#{@base_url}/api/deployments"
13
20
  headers = { params: {}, authorization: "Bearer #{@access_token}" }
@@ -16,10 +16,9 @@ class Morpheus::ExecuteSchedulesInterface < Morpheus::APIClient
16
16
  execute(opts)
17
17
  end
18
18
 
19
- def list(options={})
19
+ def list(params={})
20
20
  url = "#{@base_url}/api/execute-schedules"
21
- headers = { params: {}, authorization: "Bearer #{@access_token}" }
22
- headers[:params].merge!(options)
21
+ headers = { params: params, authorization: "Bearer #{@access_token}" }
23
22
  opts = {method: :get, url: url, timeout: 10, headers: headers}
24
23
  execute(opts)
25
24
  end
@@ -9,6 +9,13 @@ class Morpheus::GroupsInterface < Morpheus::APIClient
9
9
  end
10
10
 
11
11
 
12
+ def list(params={})
13
+ url = "#{@base_url}/api/groups"
14
+ headers = { params: params, authorization: "Bearer #{@access_token}" }
15
+ opts = {method: :get, url: url, headers: headers}
16
+ execute(opts)
17
+ end
18
+
12
19
  def get(options=nil)
13
20
  url = "#{@base_url}/api/groups"
14
21
  headers = { params: {}, authorization: "Bearer #{@access_token}" }
@@ -14,18 +14,25 @@ class Morpheus::LicenseInterface < Morpheus::APIClient
14
14
  execute(method: :get, url: url, headers: headers)
15
15
  end
16
16
 
17
- def apply(key)
17
+ def install(key)
18
18
  url = "#{@base_url}/api/license"
19
19
  headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
20
20
  payload = {license: key}
21
21
  execute(method: :post, url: url, headers: headers, payload: payload.to_json)
22
22
  end
23
23
 
24
- def decode(key)
24
+ def test(key)
25
+ # use /test instead, since 4.1.1
25
26
  url = "#{@base_url}/api/license/decode"
26
27
  headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
27
28
  payload = {license: key}
28
29
  execute(method: :post, url: url, headers: headers, payload: payload.to_json)
29
30
  end
30
31
 
32
+ def uninstall(params={})
33
+ url = "#{@base_url}/api/license"
34
+ headers = { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
35
+ execute(method: :delete, url: url, headers: headers)
36
+ end
37
+
31
38
  end
@@ -21,6 +21,13 @@ class Morpheus::LoadBalancersInterface < Morpheus::APIClient
21
21
  execute(method: :get, url: url, headers: headers)
22
22
  end
23
23
 
24
+ def list(params={})
25
+ url = "#{@base_url}/api/load-balancers"
26
+ headers = { params: params, authorization: "Bearer #{@access_token}" }
27
+ opts = {method: :get, url: url, headers: headers}
28
+ execute(opts)
29
+ end
30
+
24
31
  def get(options=nil)
25
32
  url = "#{@base_url}/api/load-balancers"
26
33
  headers = { params: {}, authorization: "Bearer #{@access_token}" }
@@ -8,15 +8,24 @@ class Morpheus::LogsInterface < Morpheus::APIClient
8
8
  @expires_at = expires_at
9
9
  end
10
10
 
11
+ def list(params={})
12
+ url = "#{@base_url}/api/logs"
13
+ # old versions expected containers[]
14
+ headers = { params: params, authorization: "Bearer #{@access_token}" }
15
+ execute({method: :get, url: url, headers: headers})
16
+ end
17
+
11
18
  def container_logs(containers=[], params={})
12
19
  url = "#{@base_url}/api/logs"
13
- headers = { params: {'containers' => containers}.merge(params), authorization: "Bearer #{@access_token}" }
20
+ # old versions expected containers[]
21
+ headers = { params: {'containers' => containers, 'containers[]' => containers}.merge(params), authorization: "Bearer #{@access_token}" }
14
22
  execute({method: :get, url: url, headers: headers})
15
23
  end
16
24
 
17
25
  def server_logs(servers=[], params={})
18
26
  url = "#{@base_url}/api/logs"
19
- headers = { params: {'servers' => servers}.merge(params), authorization: "Bearer #{@access_token}" }
27
+ # old versions expected containers[]
28
+ headers = { params: {'servers' => servers, 'servers[]' => servers}.merge(params), authorization: "Bearer #{@access_token}" }
20
29
  execute({method: :get, url: url, headers: headers})
21
30
  end
22
31
 
@@ -0,0 +1,45 @@
1
+ class Morpheus::MonitoringAlertsInterface < Morpheus::APIClient
2
+ def initialize(access_token, refresh_token,expires_at = nil, base_url=nil)
3
+ @access_token = access_token
4
+ @refresh_token = refresh_token
5
+ @base_url = base_url
6
+ @expires_at = expires_at
7
+ end
8
+
9
+ def get(id, params={})
10
+ raise "#{self.class}.get() passed a blank id!" if id.to_s == ''
11
+ url = "#{@base_url}/api/monitoring/alerts/#{id}"
12
+ headers = { params: params, authorization: "Bearer #{@access_token}" }
13
+ opts = {method: :get, url: url, headers: headers}
14
+ execute(opts)
15
+ end
16
+
17
+ def list(params={})
18
+ url = "#{@base_url}/api/monitoring/alerts"
19
+ headers = { params: params, authorization: "Bearer #{@access_token}" }
20
+ opts = {method: :get, url: url, headers: headers}
21
+ execute(opts)
22
+ end
23
+
24
+ def create(payload)
25
+ url = "#{@base_url}/api/monitoring/alerts"
26
+ headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
27
+ opts = {method: :post, url: url, headers: headers, payload: payload.to_json}
28
+ execute(opts)
29
+ end
30
+
31
+ def update(id, payload)
32
+ url = "#{@base_url}/api/monitoring/alerts/#{id}"
33
+ headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
34
+ opts = {method: :put, url: url, headers: headers, payload: payload.to_json}
35
+ execute(opts)
36
+ end
37
+
38
+ def destroy(id)
39
+ url = "#{@base_url}/api/monitoring/alerts/#{id}"
40
+ headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
41
+ opts = {method: :delete, url: url, headers: headers}
42
+ execute(opts)
43
+ end
44
+
45
+ end
@@ -16,9 +16,9 @@ class Morpheus::MonitoringChecksInterface < Morpheus::APIClient
16
16
  execute(opts)
17
17
  end
18
18
 
19
- def list(options={})
19
+ def list(params={})
20
20
  url = "#{@base_url}/api/monitoring/checks"
21
- headers = { params: options, authorization: "Bearer #{@access_token}" }
21
+ headers = { params: params, authorization: "Bearer #{@access_token}" }
22
22
  opts = {method: :get, url: url, headers: headers}
23
23
  execute(opts)
24
24
  end