wavefront-sdk 1.6.0 → 1.6.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.
@@ -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