datawire_mdk 2.0.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.
@@ -0,0 +1,369 @@
1
+ # Quark 1.0.406 run at 2016-08-31 13:21:53.028839
2
+ module Quark
3
+ require "quark"
4
+ def self.mdk_tracing; MdkTracing; end
5
+ module MdkTracing
6
+ require "datawire-quark-core"
7
+ require_relative 'quark/reflect' # 0 ('quark',) ()
8
+ require_relative 'mdk_tracing/api' # 0 ('mdk_tracing',) ()
9
+ require_relative 'mdk_tracing/protocol' # 0 ('mdk_tracing',) ()
10
+ require_relative 'mdk_protocol' # 0 () ()
11
+ require_relative 'datawire_mdk_md' # 0 () ()
12
+ require_relative 'quark' # 0 () ()
13
+ require_relative 'mdk_runtime' # 0 () ()
14
+ require_relative 'mdk_introspection' # 0 () ()
15
+
16
+
17
+ def self.SharedContextInitializer; SharedContextInitializer; end
18
+ class SharedContextInitializer < ::DatawireQuarkCore::QuarkObject
19
+ extend ::DatawireQuarkCore::Static
20
+
21
+ static mdk_tracing_SharedContextInitializer_ref: -> { nil }
22
+
23
+
24
+
25
+ def initialize()
26
+ self.__init_fields__
27
+
28
+ nil
29
+ end
30
+
31
+
32
+
33
+
34
+ def getValue()
35
+
36
+ return ::DatawireQuarkCore.cast(nil) { ::Quark.mdk_protocol.SharedContext }
37
+
38
+ nil
39
+ end
40
+
41
+ def _getClass()
42
+
43
+ return "mdk_tracing.SharedContextInitializer"
44
+
45
+ nil
46
+ end
47
+
48
+ def _getField(name)
49
+
50
+ return nil
51
+
52
+ nil
53
+ end
54
+
55
+ def _setField(name, value)
56
+
57
+ nil
58
+
59
+ nil
60
+ end
61
+
62
+ def __init_fields__()
63
+
64
+
65
+ nil
66
+ end
67
+
68
+
69
+ end
70
+ SharedContextInitializer.unlazy_statics
71
+
72
+ def self.Tracer; Tracer; end
73
+ class Tracer < ::DatawireQuarkCore::QuarkObject
74
+ attr_accessor :logger, :url, :queryURL, :token, :lastPoll, :_context, :_client, :runtime
75
+ extend ::DatawireQuarkCore::Static
76
+
77
+ static quark_List_mdk_tracing_protocol_LogEvent__ref: -> { nil }
78
+ static mdk_tracing_Tracer_ref: -> { nil }
79
+
80
+
81
+
82
+ def initialize(runtime)
83
+
84
+ self.__init_fields__
85
+ (self).runtime = runtime
86
+
87
+ nil
88
+ end
89
+
90
+
91
+
92
+
93
+ def self.withURLsAndToken(url, queryURL, token)
94
+
95
+ newTracer = ::Quark.mdk_tracing.Tracer.new(::Quark.mdk_runtime.defaultRuntime())
96
+ (newTracer).url = url
97
+ if (((queryURL) == (nil)) || (((queryURL).size) == (0)))
98
+ parsedURL = ::Quark.quark.URL.parse(url)
99
+ if (((parsedURL).scheme) == ("ws"))
100
+ (parsedURL).scheme = "http"
101
+ else
102
+ (parsedURL).scheme = "https"
103
+ end
104
+ (parsedURL).path = "/api/v1/logs"
105
+ (newTracer).queryURL = parsedURL.toString()
106
+ else
107
+ (newTracer).queryURL = queryURL
108
+ end
109
+ (newTracer).token = token
110
+ return newTracer
111
+
112
+ nil
113
+ end
114
+
115
+ def _openIfNeeded()
116
+
117
+ if ((@_client) == (nil))
118
+ @_client = ::Quark.mdk_tracing.protocol.TracingClient.new(self, @runtime)
119
+ end
120
+ if ((@token) == (nil))
121
+ @token = ::Quark.mdk_introspection.DatawireToken.getToken(@runtime.getEnvVarsService())
122
+ end
123
+
124
+ nil
125
+ end
126
+
127
+ def stop()
128
+
129
+ if ((@_client) != (nil))
130
+ (@runtime).dispatcher.stopActor(@_client)
131
+ end
132
+
133
+ nil
134
+ end
135
+
136
+ def initContext()
137
+
138
+ @_context.setValue(::Quark.mdk_protocol.SharedContext.new())
139
+
140
+ nil
141
+ end
142
+
143
+ def joinContext(context)
144
+
145
+ @_context.setValue(context.start_span())
146
+
147
+ nil
148
+ end
149
+
150
+ def joinEncodedContext(encodedContext)
151
+
152
+ newContext = ::Quark.mdk_protocol.SharedContext.decode(encodedContext)
153
+ self.joinContext(newContext)
154
+
155
+ nil
156
+ end
157
+
158
+ def getContext()
159
+
160
+ return @_context.getValue()
161
+
162
+ nil
163
+ end
164
+
165
+ def setContext(ctx)
166
+
167
+ @_context.setValue(ctx)
168
+
169
+ nil
170
+ end
171
+
172
+ def start_span()
173
+
174
+ @_context.setValue(self.getContext().start_span())
175
+
176
+ nil
177
+ end
178
+
179
+ def finish_span()
180
+
181
+ @_context.setValue(self.getContext().finish_span())
182
+
183
+ nil
184
+ end
185
+
186
+ def log(procUUID, level, category, text)
187
+
188
+ self._openIfNeeded()
189
+ ctx = self.getContext()
190
+ ctx.tick()
191
+ @logger.trace(("CTX ") + (ctx.toString()))
192
+ evt = ::Quark.mdk_tracing.protocol.LogEvent.new()
193
+ (evt).context = ctx.copy()
194
+ (evt).timestamp = ::Quark.quark.now()
195
+ (evt).node = procUUID
196
+ (evt).level = level
197
+ (evt).category = category
198
+ (evt).contentType = "text/plain"
199
+ (evt).text = text
200
+ @_client.log(evt)
201
+
202
+ nil
203
+ end
204
+
205
+ def poll()
206
+
207
+ self._openIfNeeded()
208
+ @logger.trace("Polling for logs...")
209
+ rightNow = ::Quark.quark.now()
210
+ result = self.query(@lastPoll, rightNow)
211
+ @lastPoll = rightNow
212
+ return result.andThen(::Quark.quark._BoundMethod.new(self, "deresultify", ::DatawireQuarkCore::List.new([])))
213
+
214
+ nil
215
+ end
216
+
217
+ def subscribe(handler)
218
+
219
+ self._openIfNeeded()
220
+ @_client.subscribe(handler)
221
+
222
+ nil
223
+ end
224
+
225
+ def deresultify(result)
226
+
227
+ @logger.trace((("got ") + ((((result).result).size).to_s)) + (" log events"))
228
+ return (result).result
229
+
230
+ nil
231
+ end
232
+
233
+ ##
234
+ # Query the trace logs. startTimeMillis and endTimeMillis are milliseconds since the UNIX epoch.
235
+
236
+ def query(startTimeMillis, endTimeMillis)
237
+
238
+ args = ::DatawireQuarkCore::List.new([])
239
+ reqID = "Query "
240
+ if ((startTimeMillis) >= ((0)))
241
+ (args) << (("startTime=") + ((startTimeMillis).to_s))
242
+ reqID = (reqID) + ((startTimeMillis).to_s)
243
+ end
244
+ reqID = (reqID) + ("-")
245
+ if ((endTimeMillis) >= ((0)))
246
+ (args) << (("endTime=") + ((endTimeMillis).to_s))
247
+ reqID = (reqID) + ((endTimeMillis).to_s)
248
+ end
249
+ url = (self).queryURL
250
+ if (((args).size) > (0))
251
+ url = ((url) + ("?")) + ((args).join("&"))
252
+ end
253
+ req = ::DatawireQuarkCore::HTTP::Request.new(url)
254
+ req.setMethod("GET")
255
+ req.setHeader("Content-Type", "application/json")
256
+ req.setHeader("Authorization", ("Bearer ") + ((self).token))
257
+ return ::Quark.quark.IO.httpRequest(req).andThen(::Quark.quark._BoundMethod.new(self, "handleQueryResponse", ::DatawireQuarkCore::List.new([])))
258
+
259
+ nil
260
+ end
261
+
262
+ def handleQueryResponse(response)
263
+
264
+ code = response.getCode()
265
+ body = response.getBody()
266
+ if ((code) == (200))
267
+ return ::Quark.mdk_tracing.api.GetLogEventsResult.decode(body)
268
+ else
269
+ error = ""
270
+ if (((body).size) > (0))
271
+ error = body
272
+ end
273
+ if (((error).size) < (1))
274
+ error = ("HTTP response ") + ((code).to_s)
275
+ end
276
+ @logger.error(("query failure: ") + (error))
277
+ return ::Quark.quark.HTTPError.new(error)
278
+ end
279
+
280
+ nil
281
+ end
282
+
283
+ def _getClass()
284
+
285
+ return "mdk_tracing.Tracer"
286
+
287
+ nil
288
+ end
289
+
290
+ def _getField(name)
291
+
292
+ if ((name) == ("logger"))
293
+ return (self).logger
294
+ end
295
+ if ((name) == ("url"))
296
+ return (self).url
297
+ end
298
+ if ((name) == ("queryURL"))
299
+ return (self).queryURL
300
+ end
301
+ if ((name) == ("token"))
302
+ return (self).token
303
+ end
304
+ if ((name) == ("lastPoll"))
305
+ return (self).lastPoll
306
+ end
307
+ if ((name) == ("_context"))
308
+ return (self)._context
309
+ end
310
+ if ((name) == ("_client"))
311
+ return (self)._client
312
+ end
313
+ if ((name) == ("runtime"))
314
+ return (self).runtime
315
+ end
316
+ return nil
317
+
318
+ nil
319
+ end
320
+
321
+ def _setField(name, value)
322
+
323
+ if ((name) == ("logger"))
324
+ (self).logger = value
325
+ end
326
+ if ((name) == ("url"))
327
+ (self).url = ::DatawireQuarkCore.cast(value) { ::String }
328
+ end
329
+ if ((name) == ("queryURL"))
330
+ (self).queryURL = ::DatawireQuarkCore.cast(value) { ::String }
331
+ end
332
+ if ((name) == ("token"))
333
+ (self).token = ::DatawireQuarkCore.cast(value) { ::String }
334
+ end
335
+ if ((name) == ("lastPoll"))
336
+ (self).lastPoll = ::DatawireQuarkCore.cast(value) { ::Integer }
337
+ end
338
+ if ((name) == ("_context"))
339
+ (self)._context = ::DatawireQuarkCore.cast(value) { ::DatawireQuarkCore::TLS }
340
+ end
341
+ if ((name) == ("_client"))
342
+ (self)._client = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_tracing.protocol.TracingClient }
343
+ end
344
+ if ((name) == ("runtime"))
345
+ (self).runtime = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_runtime.MDKRuntime }
346
+ end
347
+
348
+ nil
349
+ end
350
+
351
+ def __init_fields__()
352
+
353
+ self.logger = ::Quark.quark._getLogger("MDK Tracer")
354
+ self.url = "wss://tracing.datawire.io/ws/v1"
355
+ self.queryURL = "https://tracing.datawire.io/api/v1/logs"
356
+ self.token = nil
357
+ self.lastPoll = 0
358
+ self._context = ::DatawireQuarkCore::TLS.new(::Quark.mdk_tracing.SharedContextInitializer.new())
359
+ self._client = nil
360
+ self.runtime = nil
361
+
362
+ nil
363
+ end
364
+
365
+
366
+ end
367
+ Tracer.unlazy_statics
368
+ end # module MdkTracing
369
+ end # module Quark
@@ -0,0 +1,188 @@
1
+ # Quark 1.0.406 run at 2016-08-31 13:21:53.028839
2
+ module Quark
3
+ require "quark"
4
+ def self.mdk_tracing; MdkTracing; end
5
+ module MdkTracing
6
+ def self.api; Api; end
7
+ module Api
8
+ require "datawire-quark-core"
9
+ require_relative '../quark/reflect' # 0 ('quark',) ('mdk_tracing',)
10
+ require_relative '../datawire_mdk_md' # 0 () ('mdk_tracing',)
11
+ require_relative '../mdk_protocol' # 0 () ('mdk_tracing',)
12
+ require_relative '../quark' # 0 () ('mdk_tracing',)
13
+ require_relative 'protocol' # 1 () ()
14
+
15
+
16
+ def self.ApiHandler; ApiHandler; end
17
+ class ApiHandler < ::DatawireQuarkCore::QuarkObject
18
+ extend ::DatawireQuarkCore::Static
19
+
20
+ static mdk_tracing_api_ApiHandler_ref: -> { nil }
21
+
22
+
23
+
24
+ def initialize()
25
+ self.__init_fields__
26
+
27
+ nil
28
+ end
29
+
30
+
31
+
32
+
33
+ ##
34
+ # Retrieves zero or more events based on the provided request parameters.
35
+
36
+ def getLogEvents(request)
37
+ raise NotImplementedError, '`ApiHandler.getLogEvents` is an abstract method'
38
+
39
+ nil
40
+ end
41
+
42
+ def __init_fields__()
43
+
44
+
45
+ nil
46
+ end
47
+
48
+
49
+ end
50
+ ApiHandler.unlazy_statics
51
+
52
+ def self.GetLogEventsRequest; GetLogEventsRequest; end
53
+ class GetLogEventsRequest < ::Quark.mdk_protocol.Serializable
54
+ attr_accessor :startTime, :endTime
55
+ extend ::DatawireQuarkCore::Static
56
+
57
+ static mdk_tracing_api_GetLogEventsRequest_ref: -> { nil }
58
+
59
+
60
+
61
+ def initialize()
62
+
63
+ super()
64
+
65
+ nil
66
+ end
67
+
68
+
69
+
70
+
71
+ def self.decode(encoded)
72
+
73
+ return ::DatawireQuarkCore.cast(::Quark.mdk_protocol.Serializable.decodeClassName("mdk_tracing.api.GetLogEventsRequest", encoded)) { ::Quark.mdk_tracing.api.GetLogEventsRequest }
74
+
75
+ nil
76
+ end
77
+
78
+ def _getClass()
79
+
80
+ return "mdk_tracing.api.GetLogEventsRequest"
81
+
82
+ nil
83
+ end
84
+
85
+ def _getField(name)
86
+
87
+ if ((name) == ("startTime"))
88
+ return (self).startTime
89
+ end
90
+ if ((name) == ("endTime"))
91
+ return (self).endTime
92
+ end
93
+ return nil
94
+
95
+ nil
96
+ end
97
+
98
+ def _setField(name, value)
99
+
100
+ if ((name) == ("startTime"))
101
+ (self).startTime = ::DatawireQuarkCore.cast(value) { ::Integer }
102
+ end
103
+ if ((name) == ("endTime"))
104
+ (self).endTime = ::DatawireQuarkCore.cast(value) { ::Integer }
105
+ end
106
+
107
+ nil
108
+ end
109
+
110
+ def __init_fields__()
111
+
112
+ super
113
+ self.startTime = 0
114
+ self.endTime = ::Quark.quark.now()
115
+
116
+ nil
117
+ end
118
+
119
+
120
+ end
121
+ GetLogEventsRequest.unlazy_statics
122
+
123
+ def self.GetLogEventsResult; GetLogEventsResult; end
124
+ class GetLogEventsResult < ::Quark.mdk_protocol.Serializable
125
+ attr_accessor :result
126
+ extend ::DatawireQuarkCore::Static
127
+
128
+ static mdk_tracing_api_GetLogEventsResult_ref: -> { nil }
129
+
130
+
131
+
132
+ def initialize()
133
+
134
+ super()
135
+
136
+ nil
137
+ end
138
+
139
+
140
+
141
+
142
+ def self.decode(encoded)
143
+
144
+ return ::DatawireQuarkCore.cast(::Quark.mdk_protocol.Serializable.decodeClassName("mdk_tracing.api.GetLogEventsResult", encoded)) { ::Quark.mdk_tracing.api.GetLogEventsResult }
145
+
146
+ nil
147
+ end
148
+
149
+ def _getClass()
150
+
151
+ return "mdk_tracing.api.GetLogEventsResult"
152
+
153
+ nil
154
+ end
155
+
156
+ def _getField(name)
157
+
158
+ if ((name) == ("result"))
159
+ return (self).result
160
+ end
161
+ return nil
162
+
163
+ nil
164
+ end
165
+
166
+ def _setField(name, value)
167
+
168
+ if ((name) == ("result"))
169
+ (self).result = ::DatawireQuarkCore.cast(value) { ::DatawireQuarkCore::List }
170
+ end
171
+
172
+ nil
173
+ end
174
+
175
+ def __init_fields__()
176
+
177
+ super
178
+ self.result = nil
179
+
180
+ nil
181
+ end
182
+
183
+
184
+ end
185
+ GetLogEventsResult.unlazy_statics
186
+ end # module Api
187
+ end # module MdkTracing
188
+ end # module Quark