wavefront-sdk 1.6.0 → 1.6.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,8 +1,10 @@
1
1
  require 'json'
2
2
  require 'map'
3
3
  require_relative 'exception'
4
+ require_relative 'mixins'
4
5
 
5
6
  module Wavefront
7
+ #
6
8
  # Every API path has its own response class, which allows us to
7
9
  # provide a stable interface. If the API changes underneath us,
8
10
  # the SDK will break in a predictable way, throwing a
@@ -18,31 +20,36 @@ module Wavefront
18
20
  # which allows
19
21
  #
20
22
  class Response
21
- attr_reader :status, :response
23
+ include Wavefront::Mixins
24
+ attr_reader :status, :response, :opts, :logger
22
25
 
23
26
  # Create and return a Wavefront::Response object
24
27
  # @param json [String] a raw response body from the Wavefront API
25
28
  # @param status [Integer] HTTP return code from the API
26
- # @param debug [Boolean] whether or not to print the exception
27
- # message if one is thrown
29
+ # @param opts [Hash] options passed through from calling class.
28
30
  # @raise [Wavefront::Exception::UnparseableResponse] if the
29
31
  # response cannot be parsed. This may be because the API
30
32
  # has changed underneath us.
31
33
  #
32
- # rubocop:disable Metrics/CyclomaticComplexity
33
- # rubocop:disable Metrics/PerceivedComplexity
34
- def initialize(json, status, debug = false)
35
- raw = raw_response(json, status)
36
- @status = build_status(raw, status)
34
+ def initialize(json, status, opts = {})
35
+ raw = raw_response(json, status)
36
+ @status = build_status(raw, status)
37
37
  @response = build_response(raw)
38
+ @opts = opts
39
+
40
+ setup_opts
38
41
 
39
- p self if debug
42
+ logger.log(self, :debug)
40
43
  rescue StandardError => e
41
- puts "could not parse:\n#{json}" if debug
42
- puts e.message if debug
44
+ logger.log(format("could not parse:\n%s", json), :debug)
45
+ logger.log(e.message.to_s, :debug)
43
46
  raise Wavefront::Exception::UnparseableResponse
44
47
  end
45
48
 
49
+ def setup_opts
50
+ @logger = Wavefront::Logger.new(opts)
51
+ end
52
+
46
53
  def raw_response(json, status)
47
54
  json.empty? ? {} : JSON.parse(json, symbolize_names: true)
48
55
  rescue StandardError
@@ -61,7 +68,7 @@ module Wavefront
61
68
  end
62
69
  end
63
70
 
64
- # Status tests
71
+ # Status types are used by the Wavefront::Response class
65
72
  #
66
73
  class Type
67
74
  #
@@ -79,24 +86,28 @@ module Wavefront
79
86
  # request
80
87
  #
81
88
  class Status
82
- attr_reader :result, :message, :code
89
+ attr_reader :obj, :status
83
90
 
84
- # @param raw [Hash] the API response, turned into a hash
91
+ # @param response [Hash] the API response, turned into a hash
85
92
  # @param status [Integer] HTTP status code
86
93
  #
87
- def initialize(raw, status)
88
- obj = raw.key?(:status) ? raw[:status] : raw
94
+ def initialize(response, status)
95
+ @obj = response.fetch(:status, response)
96
+ @status = status
97
+ end
98
+
99
+ def message
100
+ obj[:message] || nil
101
+ end
89
102
 
90
- @message = obj[:message] || nil
91
- @code = obj[:code] || status
103
+ def code
104
+ obj[:code] || status
105
+ end
92
106
 
93
- @result = if obj[:result]
94
- obj[:result]
95
- elsif status >= 200 && status <= 299
96
- 'OK'
97
- else
98
- 'ERROR'
99
- end
107
+ def result
108
+ return obj[:result] if obj[:result]
109
+ return 'OK' if status.between?(200, 299)
110
+ 'ERROR'
100
111
  end
101
112
  end
102
113
  end
@@ -94,8 +94,8 @@ module Wavefront
94
94
  #
95
95
  def raw_facet_search(entity = nil, body = nil, deleted = false,
96
96
  facet = false)
97
- raise ArgumentError unless entity.is_a?(String)
98
- raise ArgumentError unless body.is_a?(Hash)
97
+ raise ArgumentError unless entity.is_a?(String) && body.is_a?(Hash)
98
+
99
99
  path = [entity]
100
100
  path.<< 'deleted' if deleted
101
101
  path.<< facet ? facet : 'facets'
@@ -6,8 +6,13 @@ class Hash
6
6
  # Convert a tag hash into a string. The quoting is recommended in
7
7
  # the WF wire-format guide. No validation is performed here.
8
8
  #
9
- # rubocop:disable Style/FormatStringToken
10
9
  def to_wf_tag
11
10
  map { |k, v| format('%s="%s"', k, v.tagescape) }.join(' ')
12
11
  end
12
+
13
+ # Drop any key-value pairs where the value is not truthy
14
+ #
15
+ def cleanse
16
+ select { |_k, v| v }
17
+ end
13
18
  end
@@ -1,4 +1,3 @@
1
- # rubocop:disable Naming/UncommunicativeMethodParamName
2
1
  require_relative 'constants'
3
2
  require_relative 'exception'
4
3
 
@@ -18,8 +17,11 @@ module Wavefront
18
17
  # @return true if it is valid
19
18
  # @raise Wavefront::Exception::InvalidTemplate if not
20
19
  #
21
- def wf_link_template?(v)
22
- return true if v.is_a?(String) && v.start_with?('http://', 'https://')
20
+ def wf_link_template?(template)
21
+ if template.is_a?(String) &&
22
+ template.start_with?('http://', 'https://')
23
+ return true
24
+ end
23
25
 
24
26
  raise Wavefront::Exception::InvalidLinkTemplate
25
27
  end
@@ -27,15 +29,15 @@ module Wavefront
27
29
  # Ensure the given argument is a valid Wavefront metric name, or
28
30
  # path.
29
31
  #
30
- # @param v [String] the metric name to validate
32
+ # @param metric [String] the metric name to validate
31
33
  # @return True if the metric name is valid
32
34
  # @raise Wavefront::Exception::InvalidMetricName if metric name
33
35
  # is not valid.
34
36
  #
35
- def wf_metric_name?(v)
36
- if v.is_a?(String) && v.size < 1024 &&
37
- (v.match(/^#{DELTA}?[\w\-\.]+$/) ||
38
- v.match(%r{^\"#{DELTA}?[\w\-\.\/,]+\"$}))
37
+ def wf_metric_name?(metric)
38
+ if metric.is_a?(String) && metric.size < 1024 &&
39
+ (metric.match(/^#{DELTA}?[\w\-\.]+$/) ||
40
+ metric.match(%r{^\"#{DELTA}?[\w\-\.\/,]+\"$}))
39
41
  return true
40
42
  end
41
43
 
@@ -45,40 +47,42 @@ module Wavefront
45
47
  # Ensure the given argument is a valid name, for instance for an
46
48
  # event. Names can contain, AFAIK, word characters.
47
49
  #
48
- # @param v [String] the name to validate
50
+ # @param name [String] the name to validate
49
51
  # @return true if the name is valid
50
52
  # raise Wavefront::Exception::InvalidName if name is not valid
51
53
  #
52
- def wf_name?(v)
53
- return true if v.is_a?(String) && v.size < 1024 && v =~ /^\w+$/
54
+ def wf_name?(name)
55
+ return true if name.is_a?(String) && name.size < 1024 && name =~ /^\w+$/
54
56
  raise Wavefront::Exception::InvalidName
55
57
  end
56
58
 
57
59
  # Ensure the given argument is a valid string, for a tag name.
58
60
  #
59
- # @param v [String] the string name to validate
61
+ # @param str [String] the string name to validate
60
62
  # @return True if the string is valid
61
63
  # @raise Wavefront::Exception::InvalidString if string is not valid.
62
64
  #
63
- def wf_string?(v)
65
+ def wf_string?(str)
64
66
  #
65
67
  # Only allows PCRE "word" characters, spaces, full-stops and
66
68
  # commas in tags and descriptions. This might be too restrictive,
67
69
  # but if it is, this is the only place we need to change it.
68
70
  #
69
- return true if v.is_a?(String) && v.size < 1024 && v =~ /^[\-\w \.,]*$/
71
+ if str.is_a?(String) && str.size < 1024 && str =~ /^[\-\w \.,]*$/
72
+ return true
73
+ end
70
74
 
71
75
  raise Wavefront::Exception::InvalidString
72
76
  end
73
77
 
74
78
  # Ensure the given argument is a valid timestamp
75
79
  #
76
- # @param v [DateTime] the timestamp name to validate
80
+ # @param timestamp [DateTime] the timestamp name to validate
77
81
  # @return True if the value is valid
78
82
  # @raise Wavefront::Exception::InvalidTimestamp
79
83
  #
80
- def wf_ts?(v)
81
- return true if v.is_a?(Time) || v.is_a?(Date)
84
+ def wf_ts?(timestamp)
85
+ return true if timestamp.is_a?(Time) || timestamp.is_a?(Date)
82
86
  raise Wavefront::Exception::InvalidTimestamp
83
87
  end
84
88
 
@@ -87,24 +91,24 @@ module Wavefront
87
91
  # say that the user doesn't want to send a point relating to 1ms
88
92
  # after the epoch, or a thousand years in the future?
89
93
  #
90
- # @param v [Integer] the timestamp name to validate
94
+ # @param timestamp [Integer] the timestamp name to validate
91
95
  # @return True if the value is valid
92
96
  # @raise Wavefront::Exception::InvalidTimestamp
93
97
  #
94
- def wf_ms_ts?(v)
95
- return true if v.is_a?(Numeric)
98
+ def wf_ms_ts?(timestamp)
99
+ return true if timestamp.is_a?(Numeric)
96
100
  raise Wavefront::Exception::InvalidTimestamp
97
101
  end
98
102
 
99
103
  # Ensure the given argument is a valid epoch timestamp. Again,
100
104
  # no range checking.
101
105
  #
102
- # @param v [String, Integer]
106
+ # @param timestamp [String, Integer]
103
107
  # @return True if the timestamp is valid
104
108
  # @raise Wavefront::Exception::InvalidMaintenanceWindow
105
109
  #
106
- def wf_epoch?(v)
107
- return true if v.is_a?(Numeric)
110
+ def wf_epoch?(timestamp)
111
+ return true if timestamp.is_a?(Numeric)
108
112
  raise Wavefront::Exception::InvalidTimestamp
109
113
  end
110
114
 
@@ -113,13 +117,13 @@ module Wavefront
113
117
  # can contain letters, numbers, -, _ and :, and must be less
114
118
  # than 256 characters long
115
119
  #
116
- # @param v [String, Array] a tag or list of tags
120
+ # @param tags [String, Array] a tag or list of tags
117
121
  # @return True if all tags are valid
118
122
  # @raise Wavefront::Exception::InvalidTag
119
123
  #
120
- def wf_tag?(*v)
121
- Array(*v).each do |t|
122
- unless t.is_a?(String) && t.size < 255 && t =~ /^[\w:\-\.]+$/
124
+ def wf_tag?(*tags)
125
+ Array(*tags).each do |tag|
126
+ unless tag.is_a?(String) && tag.size < 255 && tag =~ /^[\w:\-\.]+$/
123
127
  raise Wavefront::Exception::InvalidTag
124
128
  end
125
129
  end
@@ -130,29 +134,27 @@ module Wavefront
130
134
  # Ensure the given argument is a valid Wavefront value. Can be
131
135
  # any form of Numeric, including standard notation.
132
136
  #
133
- # @param v [Numeric] the source name to validate
137
+ # @param value [Numeric] the source name to validate
134
138
  # @return True if the value is valid
135
139
  # @raise Wavefront::Exception::InvalidValue if the value is not valid
136
140
  #
137
- def wf_value?(v)
138
- return true if v.is_a?(Numeric)
141
+ def wf_value?(value)
142
+ return true if value.is_a?(Numeric)
139
143
  raise Wavefront::Exception::InvalidMetricValue
140
144
  end
141
145
 
142
146
  # Ensure the given argument is a valid version number
143
147
  #
144
- # @param v [Integer] the version number to validate
148
+ # @param version [Integer] the version number to validate
145
149
  # @return True if the version is valid
146
150
  # @raise Wavefront::Exception::InvalidVersion if the alert ID is
147
151
  # not valid
148
152
  #
149
- # rubocop:disable Style/NumericPredicate
150
- def wf_version?(v)
151
- v = v.to_i if v.is_a?(String) && v =~ /^\d+$/
152
- return true if v.is_a?(Integer) && v > 0
153
+ def wf_version?(version)
154
+ version = version.to_i if version.is_a?(String) && version =~ /^\d+$/
155
+ return true if version.is_a?(Integer) && version > 0
153
156
  raise Wavefront::Exception::InvalidVersion
154
157
  end
155
- # rubocop:enable Style/NumericPredicate
156
158
 
157
159
  # Ensure a hash of key:value point tags are value. Not to be
158
160
  # confused with source tags.
@@ -167,28 +169,30 @@ module Wavefront
167
169
  tags.each { |k, v| wf_point_tag?(k, v) }
168
170
  end
169
171
 
170
- # Validate a single point tag, probably on behalf of
171
- # #wf_point_tags?
172
- # @param k [String] tag key
173
- # @param v [String] tag value
172
+ # Validate a single point tag, probably on behalf of #wf_point_tags?
173
+ # @param key [String] tag key
174
+ # @param val [String] tag value
174
175
  # @raise Wavefront::Exception::InvalidTag if any tag is not valid
175
176
  # @return nil
176
177
  #
177
- def wf_point_tag?(k, v)
178
- return if k && v && (k.size + v.size < 254) && k =~ /^[\w\-\.:]+$/ &&
179
- v !~ /\\$/
178
+ def wf_point_tag?(key, val)
179
+ if key && val && (key.size + val.size < 254) &&
180
+ key =~ /^[\w\-\.:]+$/ && val !~ /\\$/
181
+ return
182
+ end
183
+
180
184
  raise Wavefront::Exception::InvalidTag
181
185
  end
182
186
 
183
187
  # Ensure the given argument is a valid Wavefront proxy ID
184
188
  #
185
- # @param v [String] the proxy ID to validate
189
+ # @param id [String] the proxy ID to validate
186
190
  # @return True if the proxy ID is valid
187
191
  # @raise Wavefront::Exception::InvalidProxyId if the proxy ID
188
192
  # is not valid
189
193
  #
190
- def wf_proxy_id?(v)
191
- if v.is_a?(String) && v.match(
194
+ def wf_proxy_id?(id)
195
+ if id.is_a?(String) && id.match(
192
196
  /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/
193
197
  )
194
198
  return true
@@ -201,27 +205,27 @@ module Wavefront
201
205
  # Alerts are identified by the epoch-nanosecond at which they
202
206
  # were created.
203
207
  #
204
- # @param v [String] the alert ID to validate
208
+ # @param id [String] the alert ID to validate
205
209
  # @return True if the alert ID is valid
206
210
  # @raise Wavefront::Exception::InvalidAlertId if the alert ID is
207
211
  # not valid
208
212
  #
209
- def wf_alert_id?(v)
210
- v = v.to_s if v.is_a?(Numeric)
211
- return true if v.is_a?(String) && v.match(/^\d{13}$/)
213
+ def wf_alert_id?(id)
214
+ id = id.to_s if id.is_a?(Numeric)
215
+ return true if id.is_a?(String) && id.match(/^\d{13}$/)
212
216
  raise Wavefront::Exception::InvalidAlertId
213
217
  end
214
218
 
215
219
  # Ensure the given argument is a valid Wavefront cloud
216
220
  # integration ID
217
221
  #
218
- # @param v [String] the integration name to validate
222
+ # @param id [String] the integration name to validate
219
223
  # @return True if the integration name is valid
220
224
  # @raise Wavefront::Exception::InvalidCloudIntegrationId if the
221
225
  # integration ID is not valid
222
226
  #
223
- def wf_cloudintegration_id?(v)
224
- if v.is_a?(String) && v.match(
227
+ def wf_cloudintegration_id?(id)
228
+ if id.is_a?(String) && id.match(
225
229
  /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/
226
230
  )
227
231
  return true
@@ -234,13 +238,13 @@ module Wavefront
234
238
  # in a dashboard name. For now I'm going to assume up to 255 word
235
239
  # characters.
236
240
  #
237
- # @param v [String] the dashboard ID to validate
241
+ # @param id [String] the dashboard ID to validate
238
242
  # @return true if the dashboard ID is valid
239
243
  # @raise Wavefront::Exception::InvalidDashboardID if the
240
244
  # dashboard ID is not valid
241
245
  #
242
- def wf_dashboard_id?(v)
243
- return true if v.is_a?(String) && v.size < 256 && v.match(/^[\w\-]+$/)
246
+ def wf_dashboard_id?(id)
247
+ return true if id.is_a?(String) && id.size < 256 && id.match(/^[\w\-]+$/)
244
248
  raise Wavefront::Exception::InvalidDashboardId
245
249
  end
246
250
 
@@ -248,13 +252,13 @@ module Wavefront
248
252
  # are the millisecond epoch timestamp at which the derived
249
253
  # metric was created.
250
254
  #
251
- # @param v [String, Integer]
255
+ # @param id [String, Integer]
252
256
  # @return True if the ID is valid
253
257
  # @raise Wavefront::Exception::InvalidDerivedMetricId
254
258
  #
255
- def wf_derivedmetric_id?(v)
256
- v = v.to_s if v.is_a?(Numeric)
257
- return true if v.is_a?(String) && v =~ /^\d{13}$/
259
+ def wf_derivedmetric_id?(id)
260
+ id = id.to_s if id.is_a?(Numeric)
261
+ return true if id.is_a?(String) && id =~ /^\d{13}$/
258
262
 
259
263
  raise Wavefront::Exception::InvalidDerivedMetricId
260
264
  end
@@ -263,25 +267,25 @@ module Wavefront
263
267
  # an epoch-millisecond timestamp followed by a : followed by the
264
268
  # name of the event.
265
269
  #
266
- # @param v [String] the event ID to validate
270
+ # @param id [String] the event ID to validate
267
271
  # @return true if the event ID is valid
268
272
  # @raise Wavefront::Exception::InvalidEventID if the
269
273
  # event ID is not valid
270
274
  #
271
- def wf_event_id?(v)
272
- return true if v.is_a?(String) && v =~ /^\d{13}:.+/
275
+ def wf_event_id?(id)
276
+ return true if id.is_a?(String) && id =~ /^\d{13}:.+/
273
277
  raise Wavefront::Exception::InvalidEventId
274
278
  end
275
279
 
276
280
  # Ensure the given argument is a valid external Link ID
277
281
  #
278
- # @param v [String] the external link ID to validate
282
+ # @param id [String] the external link ID to validate
279
283
  # @return True if the link ID is valid
280
284
  # @raise Wavefront::Exception::InvalidExternalLinkId if the
281
285
  # link ID is not valid
282
286
  #
283
- def wf_link_id?(v)
284
- return true if v.is_a?(String) && v =~ /^\w{16}$/
287
+ def wf_link_id?(id)
288
+ return true if id.is_a?(String) && id =~ /^\w{16}$/
285
289
  raise Wavefront::Exception::InvalidExternalLinkId
286
290
  end
287
291
 
@@ -289,155 +293,159 @@ module Wavefront
289
293
  # IDs are the millisecond epoch timestamp at which the window
290
294
  # was created.
291
295
  #
292
- # @param v [String, Integer]
296
+ # @param id [String, Integer]
293
297
  # @return True if the ID is valid
294
298
  # @raise Wavefront::Exception::InvalidMaintenanceWindowId
295
299
  #
296
- def wf_maintenance_window_id?(v)
297
- v = v.to_s if v.is_a?(Numeric)
298
- return true if v.is_a?(String) && v =~ /^\d{13}$/
300
+ def wf_maintenance_window_id?(id)
301
+ id = id.to_s if id.is_a?(Numeric)
302
+ return true if id.is_a?(String) && id =~ /^\d{13}$/
299
303
 
300
304
  raise Wavefront::Exception::InvalidMaintenanceWindowId
301
305
  end
302
306
 
303
307
  # Ensure the given argument is a valid alert severity
304
308
  #
305
- # @param v [String] severity
309
+ # @param severity [String] severity
306
310
  # @return true if valid
307
- # @raise Wavefront::Exceptions::InvalidAlertSeverity if not
308
- # valid
311
+ # @raise Wavefront::Exceptions::InvalidAlertSeverity if not valid
309
312
  #
310
- def wf_alert_severity?(v)
311
- return true if %w[INFO SMOKE WARN SEVERE].include?(v)
313
+ def wf_alert_severity?(severity)
314
+ return true if %w[INFO SMOKE WARN SEVERE].include?(severity)
312
315
  raise Wavefront::Exception::InvalidAlertSeverity
313
316
  end
314
317
 
315
318
  # Ensure the given argument is a valid message ID
316
319
  #
317
- # @param v [String] severity
320
+ # @param id [String] message ID
318
321
  # @return true if valid
319
- # @raise Wavefront::Exceptions::InvalidMessageId if not
320
- # valid
322
+ # @raise Wavefront::Exceptions::InvalidMessageId if not valid
321
323
  #
322
- def wf_message_id?(v)
323
- return true if v.is_a?(String) && v =~ /^\w+::\w+$/
324
+ def wf_message_id?(id)
325
+ return true if id.is_a?(String) && id =~ /^\w+::\w+$/
324
326
  raise Wavefront::Exception::InvalidMessageId
325
327
  end
326
328
 
327
329
  # Ensure the given argument is a valid query granularity
328
330
  #
329
- # @param v [String] granularity
331
+ # @param granularity [String] granularity
330
332
  # @return true if valid
331
333
  # @raise Wavefront::Exceptions::InvalidGranularity if not
332
334
  # valid
333
335
  #
334
- def wf_granularity?(v)
335
- return true if %w[d h m s].include?(v.to_s)
336
+ def wf_granularity?(granularity)
337
+ return true if %w[d h m s].include?(granularity.to_s)
336
338
  raise Wavefront::Exception::InvalidGranularity
337
339
  end
338
340
 
339
341
  # Ensure the given argument is a valid saved search ID.
340
342
  #
341
- # @param v [String] saved search ID
343
+ # @param id [String] saved search ID
342
344
  # @return true if valid
343
345
  # @raise Wavefront::Exceptions::InvalidSavedSearchId if not valid
344
346
  #
345
- def wf_savedsearch_id?(v)
346
- return true if v.is_a?(String) && v =~ /^\w{8}$/
347
+ def wf_savedsearch_id?(id)
348
+ return true if id.is_a?(String) && id =~ /^\w{8}$/
347
349
  raise Wavefront::Exception::InvalidSavedSearchId
348
350
  end
349
351
 
350
352
  # Ensure the given argument is a valid saved search entity type.
351
353
  #
352
- # @param v [String] entity type
354
+ # @param id [String] entity type
353
355
  # @return true if valid
354
356
  # @raise Wavefront::Exceptions::InvalidSavedSearchEntity if not
355
357
  # valid
356
358
  #
357
- def wf_savedsearch_entity?(v)
359
+ def wf_savedsearch_entity?(id)
358
360
  return true if %w[DASHBOARD ALERT MAINTENANCE_WINDOW
359
361
  NOTIFICANT EVENT SOURCE EXTERNAL_LINK AGENT
360
- CLOUD_INTEGRATION].include?(v)
362
+ CLOUD_INTEGRATION].include?(id)
361
363
  raise Wavefront::Exception::InvalidSavedSearchEntity
362
364
  end
363
365
 
364
366
  # Ensure the given argument is a valid Wavefront source name
365
367
  #
366
- # @param v [String] the source name to validate
368
+ # @param source [String] the source name to validate
367
369
  # @return True if the source name is valid
368
370
  # @raise Wavefront::Exception::InvalidSourceId if the source name
369
371
  # is not valid
370
372
  #
371
- def wf_source_id?(v)
372
- return true if v.is_a?(String) && v.match(/^[\w\.\-]+$/) && v.size < 1024
373
+ def wf_source_id?(source)
374
+ if source.is_a?(String) && source.match(/^[\w\.\-]+$/) &&
375
+ source.size < 1024
376
+ return true
377
+ end
373
378
 
374
379
  raise Wavefront::Exception::InvalidSourceId
375
380
  end
376
381
 
377
382
  # Ensure the given argument is a valid user.
378
383
  #
379
- # @param v [String] user identifier
384
+ # @param user [String] user identifier
380
385
  # @return true if valid
381
386
  # @raise Wavefront::Exceptions::InvalidUserId if not valid
382
387
  #
383
- def wf_user_id?(v)
384
- return true if v.is_a?(String) &&
385
- v =~ /\A([\w+\-].?)+@[a-z\d\-]+(\.[a-z]+)*\.[a-z]+\z/i
388
+ def wf_user_id?(user)
389
+ if user.is_a?(String) &&
390
+ user =~ /\A([\w+\-].?)+@[a-z\d\-]+(\.[a-z]+)*\.[a-z]+\z/i
391
+ return true
392
+ end
393
+
386
394
  raise Wavefront::Exception::InvalidUserId
387
395
  end
388
396
 
389
397
  # Ensure the given argument is a valid webhook ID.
390
398
  #
391
- # @param v [String] webhook ID
399
+ # @param id [String] webhook ID
392
400
  # @return true if valid
393
401
  # @raise Wavefront::Exceptions::InvalidWebhook if not valid
394
402
  #
395
- def wf_webhook_id?(v)
396
- return true if v.is_a?(String) && v =~ /^[a-zA-Z0-9]{16}$/
403
+ def wf_webhook_id?(id)
404
+ return true if id.is_a?(String) && id =~ /^[a-zA-Z0-9]{16}$/
397
405
  raise Wavefront::Exception::InvalidWebhookId
398
406
  end
399
407
 
400
408
  # Validate a point so it conforms to the standard described in
401
409
  # https://community.wavefront.com/docs/DOC-1031
402
410
  #
403
- # @param v [Hash] description of point
411
+ # @param point [Hash] description of point
404
412
  # @return true if valie
405
413
  # @raise whichever exception is thrown first when validating
406
414
  # each component of the point.
407
415
  #
408
- def wf_point?(v)
409
- wf_metric_name?(v[:path])
410
- wf_value?(v[:value])
411
- wf_epoch?(v[:ts]) if v[:ts]
412
- wf_source_id?(v[:source]) if v[:source]
413
- wf_point_tags?(v[:tags]) if v[:tags]
416
+ def wf_point?(point)
417
+ wf_metric_name?(point[:path])
418
+ wf_value?(point[:value])
419
+ wf_epoch?(point[:ts]) if point[:ts]
420
+ wf_source_id?(point[:source]) if point[:source]
421
+ wf_point_tags?(point[:tags]) if point[:tags]
414
422
  true
415
423
  end
416
424
 
417
- # Ensure the given argument is a valid Wavefront
418
- # notificant ID.
425
+ # Ensure the given argument is a valid Wavefront notificant ID.
419
426
  #
420
- # @param v [String] the notificant name to validate
421
- # @return True if the notificant name is valid
427
+ # @param id [String] the notificant ID to validate
428
+ # @return True if the notificant ID is valid
422
429
  # @raise Wavefront::Exception::InvalidNotificantId if the
423
430
  # notificant ID is not valid
424
431
  #
425
- def wf_notificant_id?(v)
426
- return true if v.is_a?(String) && v =~ /^\w{16}$/
432
+ def wf_notificant_id?(id)
433
+ return true if id.is_a?(String) && id =~ /^\w{16}$/
427
434
  raise Wavefront::Exception::InvalidNotificantId
428
435
  end
429
436
 
430
437
  # Ensure the given argument is a valid Wavefront
431
438
  # integration ID. These appear to be lower-case strings.
432
439
  #
433
- # @param v [String] the integration name to validate
440
+ # @param id [String] the integration ID to validate
434
441
  # @return True if the integration name is valid
435
442
  # @raise Wavefront::Exception::InvalidIntegrationId if the
436
443
  # integration ID is not valid
437
444
  #
438
- def wf_integration_id?(v)
439
- return true if v.is_a?(String) && v =~ /^[a-z0-9]+$/
445
+ def wf_integration_id?(id)
446
+ return true if id.is_a?(String) && id =~ /^[a-z0-9]+$/
440
447
  raise Wavefront::Exception::InvalidIntegrationId
441
448
  end
442
449
  end
450
+ # rubocop:enable Metrics/ModuleLength
443
451
  end