wavefront-sdk 3.6.1 → 5.0.1
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.
- checksums.yaml +4 -4
- data/.rubocop.yml +43 -2
- data/.travis.yml +0 -1
- data/HISTORY.md +33 -0
- data/README.md +4 -3
- data/lib/wavefront-sdk/account.rb +303 -0
- data/lib/wavefront-sdk/api_mixins/user.rb +20 -0
- data/lib/wavefront-sdk/core/api_caller.rb +50 -7
- data/lib/wavefront-sdk/core/exception.rb +6 -0
- data/lib/wavefront-sdk/core/response.rb +2 -1
- data/lib/wavefront-sdk/defs/version.rb +1 -3
- data/lib/wavefront-sdk/ingestionpolicy.rb +85 -0
- data/lib/wavefront-sdk/paginator/base.rb +21 -15
- data/lib/wavefront-sdk/query.rb +0 -1
- data/lib/wavefront-sdk/role.rb +128 -0
- data/lib/wavefront-sdk/spy.rb +126 -0
- data/lib/wavefront-sdk/stdlib/array.rb +1 -1
- data/lib/wavefront-sdk/stdlib/time.rb +13 -0
- data/lib/wavefront-sdk/unstable/README.md +4 -0
- data/lib/wavefront-sdk/unstable/chart.rb +90 -0
- data/lib/wavefront-sdk/unstable/unstable.rb +9 -0
- data/lib/wavefront-sdk/usage.rb +31 -0
- data/lib/wavefront-sdk/user.rb +41 -0
- data/lib/wavefront-sdk/usergroup.rb +17 -16
- data/lib/wavefront-sdk/validators.rb +65 -7
- data/lib/wavefront-sdk/write.rb +13 -3
- data/spec/.rubocop.yml +42 -1
- data/spec/spec_helper.rb +4 -0
- data/spec/support/minitest_assertions.rb +4 -4
- data/spec/wavefront-sdk/account_spec.rb +238 -0
- data/spec/wavefront-sdk/core/api_caller_spec.rb +43 -0
- data/spec/wavefront-sdk/ingestionpolicy_spec.rb +43 -0
- data/spec/wavefront-sdk/metric_helper_spec.rb +1 -1
- data/spec/wavefront-sdk/role_spec.rb +96 -0
- data/spec/wavefront-sdk/spy_spec.rb +113 -0
- data/spec/wavefront-sdk/unstable/chart_spec.rb +39 -0
- data/spec/wavefront-sdk/usage_spec.rb +33 -0
- data/spec/wavefront-sdk/user_spec.rb +20 -0
- data/spec/wavefront-sdk/usergroup_spec.rb +21 -11
- data/spec/wavefront-sdk/validators_spec.rb +52 -6
- data/wavefront-sdk.gemspec +4 -4
- metadata +30 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e4f8e6e99d7124c4a1654be470312d6749c475d0cfbc23b33c72962d13fe0e1e
|
4
|
+
data.tar.gz: d2f43cb3bf00ddacce6cd24e92578d9876cfcbfa6b05cbdf6db68a5fbba732d9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b01743fb3be2eaa72ff58f857eac4f640354ec6264436e764b0f5852b987a54f16d5fde57235b29b3c7ed5623ebca1894d467da1624f56fb8a185c5becded20c
|
7
|
+
data.tar.gz: 81953b85f6638f802619f8481f70a0e98129f26139ed06d70c28ce100b266dfd13fa1279112698e13a7ecf74364d781608ad3e20feb9c4451ef21070e511516a
|
data/.rubocop.yml
CHANGED
@@ -1,7 +1,48 @@
|
|
1
1
|
---
|
2
2
|
|
3
3
|
AllCops:
|
4
|
-
TargetRubyVersion: 2.
|
4
|
+
TargetRubyVersion: 2.4
|
5
5
|
|
6
6
|
Metrics/ClassLength:
|
7
|
-
Max:
|
7
|
+
Max: 150
|
8
|
+
|
9
|
+
# New cops
|
10
|
+
#
|
11
|
+
Lint/RaiseException:
|
12
|
+
Enabled: true
|
13
|
+
Lint/StructNewOverride:
|
14
|
+
Enabled: true
|
15
|
+
Style/ExponentialNotation:
|
16
|
+
Enabled: true
|
17
|
+
Style/HashEachMethods:
|
18
|
+
Enabled: true
|
19
|
+
Style/HashTransformKeys:
|
20
|
+
Enabled: true
|
21
|
+
Style/HashTransformValues:
|
22
|
+
Enabled: true
|
23
|
+
Layout/EmptyLinesAroundAttributeAccessor:
|
24
|
+
Enabled: true
|
25
|
+
Layout/SpaceAroundMethodCallOperator:
|
26
|
+
Enabled: true
|
27
|
+
Style/SlicingWithRange:
|
28
|
+
Enabled: true
|
29
|
+
Lint/DeprecatedOpenSSLConstant:
|
30
|
+
Enabled: true
|
31
|
+
Lint/MixedRegexpCaptureTypes:
|
32
|
+
Enabled: true
|
33
|
+
Style/RedundantRegexpCharacterClass:
|
34
|
+
Enabled: true
|
35
|
+
Style/RedundantRegexpEscape:
|
36
|
+
Enabled: true
|
37
|
+
Style/AccessorGrouping:
|
38
|
+
Enabled: true
|
39
|
+
Style/BisectedAttrAccessor:
|
40
|
+
Enabled: true
|
41
|
+
Style/RedundantAssignment:
|
42
|
+
Enabled: true
|
43
|
+
Style/RedundantFetchBlock:
|
44
|
+
Enabled: true
|
45
|
+
|
46
|
+
# Is nothing sacred?
|
47
|
+
Layout/LineLength:
|
48
|
+
Max: 80
|
data/.travis.yml
CHANGED
data/HISTORY.md
CHANGED
@@ -1,5 +1,38 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 5.0.1 (2020-07-08)
|
4
|
+
* Reinstate `Wavefront::Role#grant` and `Wavefront::Role#revoke`, which were
|
5
|
+
accidentally removed prior to release of 5.0.0.
|
6
|
+
|
7
|
+
## 5.0.0 (2020-07-08)
|
8
|
+
* Remove `Wavefront::UserGroup#grant` and `Wavefront::UserGroup#revoke` as [the
|
9
|
+
API paths they used have been
|
10
|
+
removed](https://docs.wavefront.com/2020.06.x_release_notes.html#obsolete-and-deprecated-apis).
|
11
|
+
(Breaking change.)
|
12
|
+
* Remove `Wavefront::MonitoredCluster` class, as it has been removed from the
|
13
|
+
public API.
|
14
|
+
* Deprecate `Wavefront::User` class, as [the user API is now
|
15
|
+
deprecated](https://docs.wavefront.com/2020.06.x_release_notes.html#obsolete-and-deprecated-apis)
|
16
|
+
* Add `Wavefront::Role` class, for managing roles.
|
17
|
+
* Promote `Wavefront::Spy` class from unstable. It is now an official API.
|
18
|
+
|
19
|
+
## 4.0.0 (2020-02-17)
|
20
|
+
* Drop support for Ruby 2.3. (Breaking change.)
|
21
|
+
* Add `Wavefront::MonitoredCluster` class.
|
22
|
+
* Add `Wavefront::Unstable::Spy` class to speak to (undocumented) spy
|
23
|
+
interface.
|
24
|
+
* Add `Wavefront::Unstable::Chart` class to speak to (undocumented) chart
|
25
|
+
interface.
|
26
|
+
|
27
|
+
## 3.7.1 (2020-02-09)
|
28
|
+
* `Response` object returned by `Wavefront::Write#write` includes a valid HTTP
|
29
|
+
code, rather than `nil`.
|
30
|
+
|
31
|
+
## 3.7.0 (2020-01-23)
|
32
|
+
* Add `Account`, `Usage` and `IngestionPolicy` classes.
|
33
|
+
* Allow modification of `Wavefront::Response`'s `response` object.
|
34
|
+
* Add `User#validate_users` method.
|
35
|
+
|
3
36
|
## 3.6.1 (2020-01-15)
|
4
37
|
* Test build against, and fix warning messages on, Ruby 2.7.0
|
5
38
|
|
data/README.md
CHANGED
@@ -24,7 +24,7 @@ or to build locally,
|
|
24
24
|
$ gem build wavefront-sdk.gemspec
|
25
25
|
```
|
26
26
|
|
27
|
-
`wavefront-sdk` requires Ruby >= 2.
|
27
|
+
`wavefront-sdk` requires Ruby >= 2.4. All its dependencies are pure
|
28
28
|
Ruby, right the way down, so a compiler should never be required to
|
29
29
|
install it.
|
30
30
|
|
@@ -100,10 +100,11 @@ when you ask for a list of objects.
|
|
100
100
|
|
101
101
|
You can set an offset and a limit when you list, but setting the
|
102
102
|
limit to the magic value `:all` will return all items, without you
|
103
|
-
having to deal with pagination.
|
103
|
+
having to deal with pagination. When you do that, `offset` is repurposed as
|
104
|
+
the number of results fetched with each call to the API.
|
104
105
|
|
105
106
|
Calling a method with the limit set to `:lazy` returns a lazy
|
106
|
-
enumerable.
|
107
|
+
enumerable. Again, `offset` is the chunk size.
|
107
108
|
|
108
109
|
```ruby
|
109
110
|
wf = Wavefront::Alert.new(creds.all)
|
@@ -0,0 +1,303 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'core/api'
|
4
|
+
require_relative 'api_mixins/user'
|
5
|
+
|
6
|
+
module Wavefront
|
7
|
+
#
|
8
|
+
# Manage and query Wavefront accounts. '/account/serviceaccount' API paths
|
9
|
+
# are covered in the Wavefront::ServiceAccount class.
|
10
|
+
#
|
11
|
+
# Many of these methods are duplicated in the User class. This reflects the
|
12
|
+
# layout of the API.
|
13
|
+
#
|
14
|
+
class Account < CoreApi
|
15
|
+
include Wavefront::Mixin::User
|
16
|
+
#
|
17
|
+
# GET /api/v2/account
|
18
|
+
# Get all accounts (users and service accounts) of a customer
|
19
|
+
# @param offset [Int] account at which the list begins
|
20
|
+
# @param limit [Int] the number of accounts to return
|
21
|
+
# @return [Wavefront::Response]
|
22
|
+
#
|
23
|
+
def list(offset = 0, limit = 100)
|
24
|
+
api.get('', offset: offset, limit: limit)
|
25
|
+
end
|
26
|
+
|
27
|
+
# DELETE /api/v2/account/{id}
|
28
|
+
# Deletes an account (user or service account) identified by id
|
29
|
+
# @param id [String] ID of the account
|
30
|
+
# @return [Wavefront::Response]
|
31
|
+
#
|
32
|
+
def delete(id)
|
33
|
+
wf_account_id?(id)
|
34
|
+
api.delete(id)
|
35
|
+
end
|
36
|
+
|
37
|
+
# GET /api/v2/account/{id}
|
38
|
+
# Get a specific account (user or service account)
|
39
|
+
# @param id [String] ID of the proxy
|
40
|
+
# @return [Wavefront::Response]
|
41
|
+
#
|
42
|
+
def describe(id)
|
43
|
+
wf_account_id?(id)
|
44
|
+
api.get(id)
|
45
|
+
end
|
46
|
+
|
47
|
+
# POST /api/v2/account/{id}/addRoles
|
48
|
+
# Add specific roles to the account (user or service account)
|
49
|
+
# @param id [String] ID of the account
|
50
|
+
# @param role_list [Array[String]] list of roles to add
|
51
|
+
# @return [Wavefront::Response]
|
52
|
+
#
|
53
|
+
def add_roles(id, role_list)
|
54
|
+
wf_account_id?(id)
|
55
|
+
validate_role_list(role_list)
|
56
|
+
api.post([id, 'addRoles'].uri_concat, role_list, 'application/json')
|
57
|
+
end
|
58
|
+
|
59
|
+
# POST /api/v2/account/{id}/addUserGroups
|
60
|
+
# Adds specific user groups to the account (user or service account)
|
61
|
+
# @param id [String] ID of the account
|
62
|
+
# @param group_list [Array[String]] list of groups to add
|
63
|
+
# @return [Wavefront::Response]
|
64
|
+
#
|
65
|
+
def add_user_groups(id, group_list)
|
66
|
+
wf_account_id?(id)
|
67
|
+
validate_usergroup_list(group_list)
|
68
|
+
api.post([id, 'addUserGroups'].uri_concat, group_list,
|
69
|
+
'application/json')
|
70
|
+
end
|
71
|
+
|
72
|
+
# GET /api/v2/account/{id}/businessFunctions
|
73
|
+
# Returns business functions of a specific account (user or service
|
74
|
+
# account).
|
75
|
+
# @param id [String] user ID
|
76
|
+
# @return [Wavefront::Response]
|
77
|
+
#
|
78
|
+
def business_functions(id)
|
79
|
+
wf_account_id?(id)
|
80
|
+
api.get([id, 'businessFunctions'].uri_concat)
|
81
|
+
end
|
82
|
+
|
83
|
+
# POST /api/v2/account/{id}/removeRoles
|
84
|
+
# Removes specific roles from the account (user or service account)
|
85
|
+
# @param id [String] ID of the account
|
86
|
+
# @param role_list [Array[String]] list of roles to remove
|
87
|
+
# @return [Wavefront::Response]
|
88
|
+
#
|
89
|
+
def remove_roles(id, role_list)
|
90
|
+
wf_account_id?(id)
|
91
|
+
validate_role_list(role_list)
|
92
|
+
api.post([id, 'removeRoles'].uri_concat, role_list, 'application/json')
|
93
|
+
end
|
94
|
+
|
95
|
+
# POST /api/v2/account/{id}/removeUserGroups
|
96
|
+
# Removes specific user groups from the account (user or service account)
|
97
|
+
# @param id [String] ID of the account
|
98
|
+
# @param group_list [Array[String]] list of groups to remove
|
99
|
+
# @return [Wavefront::Response]
|
100
|
+
#
|
101
|
+
def remove_user_groups(id, group_list)
|
102
|
+
wf_account_id?(id)
|
103
|
+
validate_usergroup_list(group_list)
|
104
|
+
api.post([id, 'removeUserGroups'].uri_concat, group_list,
|
105
|
+
'application/json')
|
106
|
+
end
|
107
|
+
|
108
|
+
# POST /api/v2/account/{id}/grant/{permission}
|
109
|
+
# Grants a specific permission to account (user or service account)
|
110
|
+
# POST /api/v2/account/grant/{permission}
|
111
|
+
# Grants a specific permission to multiple accounts (users or service
|
112
|
+
# accounts)
|
113
|
+
# @param id_list [Array[String],String] single account ID or list of
|
114
|
+
# account IDs
|
115
|
+
# @param permission [String] permission group to grant to user.
|
116
|
+
# @return [Wavefront::Response]
|
117
|
+
#
|
118
|
+
def grant(id, permission)
|
119
|
+
if id.is_a?(String)
|
120
|
+
grant_to_id(id, permission)
|
121
|
+
else
|
122
|
+
grant_to_multiple(id, permission)
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
# POST /api/v2/account/{id}/revoke/{permission}
|
127
|
+
# Revokes a specific permission from account (user or service account)
|
128
|
+
# POST /api/v2/account/revoke/{permission}
|
129
|
+
# Revokes a specific permission from multiple accounts (users or service
|
130
|
+
# accounts
|
131
|
+
# @param id [String,Array[String]] ID of the user, or list of user IDs
|
132
|
+
# @param permission [String] permission group to revoke from user.
|
133
|
+
# @return [Wavefront::Response]
|
134
|
+
#
|
135
|
+
def revoke(id, permission)
|
136
|
+
if id.is_a?(String)
|
137
|
+
revoke_from_id(id, permission)
|
138
|
+
else
|
139
|
+
revoke_from_multiple(id, permission)
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
143
|
+
# POST /api/v2/account/addingestionpolicy
|
144
|
+
# Add a specific ingestion policy to multiple accounts
|
145
|
+
# @param policy_id [String] ID of the ingestion policy
|
146
|
+
# @param id_list [Array[String]] list of accounts to be put in policy
|
147
|
+
# @return [Wavefront::Response]
|
148
|
+
#
|
149
|
+
def add_ingestion_policy(policy_id, id_list)
|
150
|
+
wf_ingestionpolicy_id?(policy_id)
|
151
|
+
validate_account_list(id_list)
|
152
|
+
api.post('addingestionpolicy',
|
153
|
+
{ ingestionPolicyId: policy_id,
|
154
|
+
accounts: id_list },
|
155
|
+
'application/json')
|
156
|
+
end
|
157
|
+
|
158
|
+
# POST /api/v2/account/removeingestionpolicies
|
159
|
+
# Removes ingestion policies from multiple accounts. The API path says
|
160
|
+
# "policies" but I've made the method name "policy" for consistency.
|
161
|
+
# @param policy_id [String] ID of the ingestion policy
|
162
|
+
# @param id_list [Array[String]] list of accounts to be put in policy
|
163
|
+
# @return [Wavefront::Response]
|
164
|
+
#
|
165
|
+
def remove_ingestion_policy(policy_id, id_list)
|
166
|
+
wf_ingestionpolicy_id?(policy_id)
|
167
|
+
validate_account_list(id_list)
|
168
|
+
api.post('removeingestionpolicies',
|
169
|
+
{ ingestionPolicyId: policy_id,
|
170
|
+
accounts: id_list },
|
171
|
+
'application/json')
|
172
|
+
end
|
173
|
+
|
174
|
+
# POST /api/v2/account/deleteAccounts
|
175
|
+
# Deletes multiple accounts (users or service accounts)
|
176
|
+
# @param id [String] ID of the account
|
177
|
+
# @param group_list [Array[String]] list of accounts to delete
|
178
|
+
# @return [Wavefront::Response]
|
179
|
+
#
|
180
|
+
def delete_accounts(id_list)
|
181
|
+
validate_account_list(id_list)
|
182
|
+
api.post('deleteAccounts', id_list, 'application/json')
|
183
|
+
end
|
184
|
+
|
185
|
+
# GET /api/v2/account/user
|
186
|
+
# Get all user accounts
|
187
|
+
# @param offset [Int] user account at which the list begins
|
188
|
+
# @param limit [Int] the number of user accounts to return
|
189
|
+
# @return [Wavefront::Response]
|
190
|
+
#
|
191
|
+
def user_list(offset = 0, limit = 100)
|
192
|
+
api.get('user', offset: offset, limit: limit)
|
193
|
+
end
|
194
|
+
|
195
|
+
def user_create(body, send_email = false)
|
196
|
+
raise ArgumentError unless body.is_a?(Hash)
|
197
|
+
|
198
|
+
uri = send_email ? "?sendEmail=#{send_email}" : 'user'
|
199
|
+
|
200
|
+
api.post(uri, body, 'application/json')
|
201
|
+
end
|
202
|
+
|
203
|
+
# POST /api/v2/account/user
|
204
|
+
# Creates or updates a user account
|
205
|
+
# @param id [String] a Wavefront user ID
|
206
|
+
# @param body [Hash] key-value hash of the parameters you wish to change
|
207
|
+
# @param modify [true, false] if true, use {#describe()} to get a hash
|
208
|
+
# describing the existing object, and modify that with the new body. If
|
209
|
+
# false, pass the new body straight through.
|
210
|
+
# @return [Wavefront::Response]
|
211
|
+
def user_update(body, modify = true)
|
212
|
+
raise ArgumentError unless body.is_a?(Hash)
|
213
|
+
|
214
|
+
return api.post('user', body, 'application/json') unless modify
|
215
|
+
|
216
|
+
api.post('user',
|
217
|
+
hash_for_update(describe(id).response, body),
|
218
|
+
'application/json')
|
219
|
+
end
|
220
|
+
|
221
|
+
# GET /api/v2/account/user/{id}
|
222
|
+
# Retrieves a user by identifier (email address)
|
223
|
+
# @param id [String] ID of the proxy
|
224
|
+
# @return [Wavefront::Response]
|
225
|
+
#
|
226
|
+
def user_describe(id)
|
227
|
+
wf_user_id?(id)
|
228
|
+
api.get(['user', id].uri_concat)
|
229
|
+
end
|
230
|
+
|
231
|
+
# POST /api/v2/account/user/invite
|
232
|
+
# Invite user accounts with given user groups and permissions.
|
233
|
+
# @param body [Array[Hash]] array of hashes, each hash describing a user.
|
234
|
+
# See API docs for more details. It is your responsibility to validate
|
235
|
+
# the data which describes each user.
|
236
|
+
# @return [Wavefront::Response]
|
237
|
+
#
|
238
|
+
def user_invite(body)
|
239
|
+
raise ArgumentError unless body.is_a?(Array)
|
240
|
+
raise ArgumentError unless body.first.is_a?(Hash)
|
241
|
+
|
242
|
+
api.post('user/invite', body, 'application/json')
|
243
|
+
end
|
244
|
+
|
245
|
+
# POST /api/v2/account/validateAccounts
|
246
|
+
# Returns valid accounts (users and service accounts), also invalid
|
247
|
+
# identifiers from the given list
|
248
|
+
# @param id_list [Array[String]] list of user IDs
|
249
|
+
# @return [Wavefront::Response]
|
250
|
+
#
|
251
|
+
def validate_accounts(id_list)
|
252
|
+
raise ArgumentError unless id_list.is_a?(Array)
|
253
|
+
|
254
|
+
api.post('validateAccounts', id_list, 'application/json')
|
255
|
+
end
|
256
|
+
|
257
|
+
private
|
258
|
+
|
259
|
+
# @param id [String] ID of the user
|
260
|
+
# @param permission [String] permission group to grant to user.
|
261
|
+
# @return [Wavefront::Response]
|
262
|
+
#
|
263
|
+
def grant_to_id(id, permission)
|
264
|
+
wf_account_id?(id)
|
265
|
+
wf_permission?(permission)
|
266
|
+
api.post([id, 'grant', permission].uri_concat)
|
267
|
+
end
|
268
|
+
|
269
|
+
# @param id_list [Array[String]] list of account IDs
|
270
|
+
# @param permission [String] permission group to grant to user.
|
271
|
+
# @return [Wavefront::Response]
|
272
|
+
#
|
273
|
+
def grant_to_multiple(id_list, permission)
|
274
|
+
validate_account_list(id_list)
|
275
|
+
wf_permission?(permission)
|
276
|
+
api.post(['grant', permission].uri_concat, id_list, 'application/json')
|
277
|
+
end
|
278
|
+
|
279
|
+
# @param id [String] ID of the user
|
280
|
+
# @param permission [String] permission group to revoke from user.
|
281
|
+
# @return [Wavefront::Response]
|
282
|
+
#
|
283
|
+
def revoke_from_id(id, permission)
|
284
|
+
wf_account_id?(id)
|
285
|
+
wf_permission?(permission)
|
286
|
+
api.post([id, 'revoke', permission].uri_concat)
|
287
|
+
end
|
288
|
+
|
289
|
+
# @param id_list [Array[String]] list of account IDs
|
290
|
+
# @param permission [String] permission group to revoke from user.
|
291
|
+
# @return [Wavefront::Response]
|
292
|
+
#
|
293
|
+
def revoke_from_multiple(id_list, permission)
|
294
|
+
validate_account_list(id_list)
|
295
|
+
wf_permission?(permission)
|
296
|
+
api.post(['revoke', permission].uri_concat, id_list, 'application/json')
|
297
|
+
end
|
298
|
+
|
299
|
+
def update_keys
|
300
|
+
%i[identifier groups userGroups roles ingestionPolicyId]
|
301
|
+
end
|
302
|
+
end
|
303
|
+
end
|
@@ -25,6 +25,26 @@ module Wavefront
|
|
25
25
|
|
26
26
|
list.each { |id| wf_usergroup_id?(id) }
|
27
27
|
end
|
28
|
+
|
29
|
+
# Validate a list of accounts.
|
30
|
+
# @param list [Array[String]] list of account IDs
|
31
|
+
# @raise Wavefront::Exception::InvalidAccount
|
32
|
+
#
|
33
|
+
def validate_account_list(list)
|
34
|
+
raise ArgumentError unless list.is_a?(Array)
|
35
|
+
|
36
|
+
list.each { |id| wf_account_id?(id) }
|
37
|
+
end
|
38
|
+
|
39
|
+
# Validate a list of roles
|
40
|
+
# @param list [Array[String]] list of role IDs
|
41
|
+
# @raise Wavefront::Exception::InvalidRole
|
42
|
+
#
|
43
|
+
def validate_role_list(list)
|
44
|
+
raise ArgumentError unless list.is_a?(Array)
|
45
|
+
|
46
|
+
list.each { |id| wf_role_id?(id) }
|
47
|
+
end
|
28
48
|
end
|
29
49
|
end
|
30
50
|
end
|