datawire_mdk 2.0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -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