datawire_mdk 2.0.12 → 2.0.13

Sign up to get free protection for your applications and to get access to all the features.
data/lib/mdk.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Quark 1.0.443 run at 2016-09-12 17:46:24.827506
1
+ # Quark 1.0.443 run at 2016-09-21 13:32:20.805015
2
2
  module Quark
3
3
  require "quark"
4
4
  def self.mdk; Mdk; end
@@ -429,7 +429,7 @@ class MDKImpl < ::DatawireQuarkCore::QuarkObject
429
429
  @_reflection_hack = ::Hash.new()
430
430
  @_runtime = runtime
431
431
  if (!((runtime).dependencies.hasService("failurepolicy_factory")))
432
- (runtime).dependencies.registerService("failurepolicy_factory", ::Quark.mdk_discovery.CircuitBreakerFactory.new(runtime))
432
+ (runtime).dependencies.registerService("failurepolicy_factory", self.getFailurePolicy(runtime))
433
433
  end
434
434
  @_disco = ::Quark.mdk_discovery.Discovery.new(runtime)
435
435
  env = runtime.getEnvVarsService()
@@ -471,7 +471,12 @@ class MDKImpl < ::DatawireQuarkCore::QuarkObject
471
471
  if ((config).start_with?("synapse:path="))
472
472
  result = ::Quark.mdk_discovery.synapse.Synapse.new((config)[(13)...((config).size)])
473
473
  else
474
- raise (("Unknown MDK discovery source: ") + (config))
474
+ if ((config).start_with?("static:nodes="))
475
+ json = (config)[(13)...((config).size)]
476
+ result = ::Quark.mdk_discovery.StaticRoutes.parseJSON(json)
477
+ else
478
+ raise (("Unknown MDK discovery source: ") + (config))
479
+ end
475
480
  end
476
481
  end
477
482
  return result
@@ -479,6 +484,21 @@ class MDKImpl < ::DatawireQuarkCore::QuarkObject
479
484
  nil
480
485
  end
481
486
 
487
+ ##
488
+ # Choose FailurePolicy based on environment variables.
489
+
490
+ def getFailurePolicy(runtime)
491
+
492
+ config = runtime.getEnvVarsService().var("MDK_FAILURE_POLICY").orElseGet("")
493
+ if ((config) == ("recording"))
494
+ return ::Quark.mdk_discovery.RecordingFailurePolicyFactory.new()
495
+ else
496
+ return ::Quark.mdk_discovery.CircuitBreakerFactory.new(runtime)
497
+ end
498
+
499
+ nil
500
+ end
501
+
482
502
  def _timeout()
483
503
 
484
504
  return 10.0
@@ -621,13 +641,70 @@ class MDKImpl < ::DatawireQuarkCore::QuarkObject
621
641
  end
622
642
  MDKImpl.unlazy_statics
623
643
 
644
+ def self._TLSInit; TLSInit; end
645
+ class TLSInit < ::DatawireQuarkCore::QuarkObject
646
+ extend ::DatawireQuarkCore::Static
647
+
648
+ static mdk__TLSInit_ref: -> { nil }
649
+
650
+
651
+
652
+ def initialize()
653
+ self.__init_fields__
654
+
655
+ nil
656
+ end
657
+
658
+
659
+
660
+
661
+ def getValue()
662
+
663
+ return false
664
+
665
+ nil
666
+ end
667
+
668
+ def _getClass()
669
+
670
+ return "mdk._TLSInit"
671
+
672
+ nil
673
+ end
674
+
675
+ def _getField(name)
676
+
677
+ return nil
678
+
679
+ nil
680
+ end
681
+
682
+ def _setField(name, value)
683
+
684
+ nil
685
+
686
+ nil
687
+ end
688
+
689
+ def __init_fields__()
690
+
691
+
692
+ nil
693
+ end
694
+
695
+
696
+ end
697
+ TLSInit.unlazy_statics
698
+
624
699
  def self.SessionImpl; SessionImpl; end
625
700
  class SessionImpl < ::DatawireQuarkCore::QuarkObject
626
701
  attr_accessor :_mdk, :_resolved, :_context, :_experimental
627
702
  extend ::DatawireQuarkCore::Static
628
703
 
629
704
  static _levels: -> { {"CRITICAL" => 0, "ERROR" => 1, "WARN" => 2, "INFO" => 3, "DEBUG" => 4} }
705
+ static _inLogging: -> { ::DatawireQuarkCore::TLS.new(::Quark.mdk._TLSInit.new()) }
630
706
  static mdk_SessionImpl_ref: -> { nil }
707
+ static quark_List_quark_List_mdk_discovery_Node___ref: -> { nil }
631
708
  static quark_List_mdk_discovery_Node__ref: -> { nil }
632
709
  static quark_List_quark_Map_quark_String_quark_String___ref: -> { nil }
633
710
  static quark_List_quark_String__ref: -> { nil }
@@ -730,8 +807,13 @@ class SessionImpl < ::DatawireQuarkCore::QuarkObject
730
807
  def _log(level, category, text)
731
808
 
732
809
  if (((@_mdk)._tracer) != (nil))
810
+ if (::Quark.mdk.SessionImpl._inLogging.getValue())
811
+ return
812
+ end
813
+ ::Quark.mdk.SessionImpl._inLogging.setValue(true)
733
814
  (@_mdk)._tracer.setContext(@_context)
734
815
  (@_mdk)._tracer.log((@_mdk).procUUID, level, category, text)
816
+ ::Quark.mdk.SessionImpl._inLogging.setValue(false)
735
817
  end
736
818
 
737
819
  nil
@@ -740,7 +822,6 @@ class SessionImpl < ::DatawireQuarkCore::QuarkObject
740
822
  def critical(category, text)
741
823
 
742
824
  if (self._enabled("CRITICAL"))
743
- (@_mdk).logger.error(((category) + (": ")) + (text))
744
825
  self._log("CRITICAL", category, text)
745
826
  end
746
827
 
@@ -750,7 +831,6 @@ class SessionImpl < ::DatawireQuarkCore::QuarkObject
750
831
  def error(category, text)
751
832
 
752
833
  if (self._enabled("ERROR"))
753
- (@_mdk).logger.error(((category) + (": ")) + (text))
754
834
  self._log("ERROR", category, text)
755
835
  end
756
836
 
@@ -760,7 +840,6 @@ class SessionImpl < ::DatawireQuarkCore::QuarkObject
760
840
  def warn(category, text)
761
841
 
762
842
  if (self._enabled("WARN"))
763
- (@_mdk).logger.warn(((category) + (": ")) + (text))
764
843
  self._log("WARN", category, text)
765
844
  end
766
845
 
@@ -770,7 +849,6 @@ class SessionImpl < ::DatawireQuarkCore::QuarkObject
770
849
  def info(category, text)
771
850
 
772
851
  if (self._enabled("INFO"))
773
- (@_mdk).logger.info(((category) + (": ")) + (text))
774
852
  self._log("INFO", category, text)
775
853
  end
776
854
 
@@ -780,7 +858,6 @@ class SessionImpl < ::DatawireQuarkCore::QuarkObject
780
858
  def debug(category, text)
781
859
 
782
860
  if (self._enabled("DEBUG"))
783
- (@_mdk).logger.debug(((category) + (": ")) + (text))
784
861
  self._log("DEBUG", category, text)
785
862
  end
786
863
 
@@ -833,15 +910,22 @@ class SessionImpl < ::DatawireQuarkCore::QuarkObject
833
910
 
834
911
  def _resolvedCallback(result)
835
912
 
836
- (@_resolved) << (result)
913
+ (self._current_interaction()) << (result)
837
914
  return result
838
915
 
839
916
  nil
840
917
  end
841
918
 
919
+ def _current_interaction()
920
+
921
+ return (@_resolved)[((@_resolved).size) - (1)]
922
+
923
+ nil
924
+ end
925
+
842
926
  def start_interaction()
843
927
 
844
- @_resolved = ::DatawireQuarkCore::List.new([])
928
+ (@_resolved) << (::DatawireQuarkCore::List.new([]))
845
929
 
846
930
  nil
847
931
  end
@@ -864,8 +948,8 @@ class SessionImpl < ::DatawireQuarkCore::QuarkObject
864
948
 
865
949
  def fail_interaction(message)
866
950
 
867
- suspects = @_resolved
868
- @_resolved = ::DatawireQuarkCore::List.new([])
951
+ suspects = self._current_interaction()
952
+ (@_resolved)[((@_resolved).size) - (1)] = (::DatawireQuarkCore::List.new([]))
869
953
  involved = ::DatawireQuarkCore::List.new([])
870
954
  idx = 0
871
955
  while ((idx) < ((suspects).size)) do
@@ -882,8 +966,8 @@ class SessionImpl < ::DatawireQuarkCore::QuarkObject
882
966
 
883
967
  def finish_interaction()
884
968
 
885
- nodes = @_resolved
886
- @_resolved = ::DatawireQuarkCore::List.new([])
969
+ nodes = self._current_interaction()
970
+ (@_resolved).delete_at(((@_resolved).size) - (1))
887
971
  idx = 0
888
972
  while ((idx) < ((nodes).size)) do
889
973
  node = (nodes)[idx]
@@ -915,6 +999,9 @@ class SessionImpl < ::DatawireQuarkCore::QuarkObject
915
999
  if ((name) == ("_levels"))
916
1000
  return ::Quark.mdk.SessionImpl._levels
917
1001
  end
1002
+ if ((name) == ("_inLogging"))
1003
+ return ::Quark.mdk.SessionImpl._inLogging
1004
+ end
918
1005
  if ((name) == ("_mdk"))
919
1006
  return (self)._mdk
920
1007
  end
@@ -937,6 +1024,9 @@ class SessionImpl < ::DatawireQuarkCore::QuarkObject
937
1024
  if ((name) == ("_levels"))
938
1025
  ::Quark.mdk.SessionImpl._levels = ::DatawireQuarkCore.cast(value) { ::Hash }
939
1026
  end
1027
+ if ((name) == ("_inLogging"))
1028
+ ::Quark.mdk.SessionImpl._inLogging = ::DatawireQuarkCore.cast(value) { ::DatawireQuarkCore::TLS }
1029
+ end
940
1030
  if ((name) == ("_mdk"))
941
1031
  (self)._mdk = ::DatawireQuarkCore.cast(value) { ::Quark.mdk.MDKImpl }
942
1032
  end
@@ -956,7 +1046,7 @@ class SessionImpl < ::DatawireQuarkCore::QuarkObject
956
1046
  def __init_fields__()
957
1047
 
958
1048
  self._mdk = nil
959
- self._resolved = ::DatawireQuarkCore::List.new([])
1049
+ self._resolved = ::DatawireQuarkCore::List.new([::DatawireQuarkCore::List.new([])])
960
1050
  self._context = nil
961
1051
  self._experimental = false
962
1052
 
@@ -1,4 +1,4 @@
1
- # Quark 1.0.443 run at 2016-09-12 17:46:24.827506
1
+ # Quark 1.0.443 run at 2016-09-21 13:32:20.805015
2
2
  module Quark
3
3
  require "quark"
4
4
  def self.mdk_discovery; MdkDiscovery; end
@@ -1,4 +1,4 @@
1
- # Quark 1.0.443 run at 2016-09-12 17:46:24.827506
1
+ # Quark 1.0.443 run at 2016-09-21 13:32:20.805015
2
2
  module Quark
3
3
  require "quark"
4
4
  def self.mdk_discovery; MdkDiscovery; end
data/lib/mdk_discovery.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Quark 1.0.443 run at 2016-09-12 17:46:24.827506
1
+ # Quark 1.0.443 run at 2016-09-21 13:32:20.805015
2
2
  module Quark
3
3
  require "quark"
4
4
  def self.mdk_discovery; MdkDiscovery; end
@@ -7,8 +7,8 @@ require "datawire-quark-core"
7
7
  require_relative 'quark/reflect' # 0 ('quark',) ()
8
8
  require_relative 'mdk_runtime/actors' # 0 ('mdk_runtime',) ()
9
9
  require_relative 'mdk_runtime' # 0 () ()
10
- require_relative 'mdk_runtime/promise' # 0 ('mdk_runtime',) ()
11
10
  require_relative 'quark' # 0 () ()
11
+ require_relative 'mdk_runtime/promise' # 0 ('mdk_runtime',) ()
12
12
  require_relative 'mdk_util' # 0 () ()
13
13
  require_relative 'mdk_discovery/protocol' # 0 ('mdk_discovery',) ()
14
14
  require_relative 'mdk_discovery/synapse' # 0 ('mdk_discovery',) ()
@@ -285,6 +285,182 @@ class DiscoverySourceFactory < ::DatawireQuarkCore::QuarkObject
285
285
  end
286
286
  DiscoverySourceFactory.unlazy_statics
287
287
 
288
+ def self._StaticRoutesActor; StaticRoutesActor; end
289
+ ##
290
+ # Discovery actor for hard-coded static routes.
291
+
292
+ class StaticRoutesActor < ::DatawireQuarkCore::QuarkObject
293
+ attr_accessor :_subscriber, :_knownNodes
294
+ extend ::DatawireQuarkCore::Static
295
+
296
+ static mdk_discovery__StaticRoutesActor_ref: -> { nil }
297
+
298
+
299
+
300
+ def initialize(subscriber, knownNodes)
301
+
302
+ self.__init_fields__
303
+ (self)._subscriber = subscriber
304
+ (self)._knownNodes = knownNodes
305
+
306
+ nil
307
+ end
308
+
309
+
310
+
311
+
312
+ def onStart(dispatcher)
313
+
314
+ idx = 0
315
+ while ((idx) < (((self)._knownNodes).size)) do
316
+ dispatcher.tell(self, ::Quark.mdk_discovery.NodeActive.new(((self)._knownNodes)[idx]), (self)._subscriber)
317
+ idx = (idx) + (1)
318
+ end
319
+
320
+ nil
321
+ end
322
+
323
+ def onMessage(origin, message)
324
+
325
+ nil
326
+
327
+ nil
328
+ end
329
+
330
+ def onStop()
331
+
332
+ nil
333
+
334
+ nil
335
+ end
336
+
337
+ def _getClass()
338
+
339
+ return "mdk_discovery._StaticRoutesActor"
340
+
341
+ nil
342
+ end
343
+
344
+ def _getField(name)
345
+
346
+ if ((name) == ("_subscriber"))
347
+ return (self)._subscriber
348
+ end
349
+ if ((name) == ("_knownNodes"))
350
+ return (self)._knownNodes
351
+ end
352
+ return nil
353
+
354
+ nil
355
+ end
356
+
357
+ def _setField(name, value)
358
+
359
+ if ((name) == ("_subscriber"))
360
+ (self)._subscriber = ::DatawireQuarkCore.cast(value) { ::Quark.mdk_runtime.actors.Actor }
361
+ end
362
+ if ((name) == ("_knownNodes"))
363
+ (self)._knownNodes = ::DatawireQuarkCore.cast(value) { ::DatawireQuarkCore::List }
364
+ end
365
+
366
+ nil
367
+ end
368
+
369
+ def __init_fields__()
370
+
371
+ self._subscriber = nil
372
+ self._knownNodes = nil
373
+
374
+ nil
375
+ end
376
+
377
+
378
+ end
379
+ StaticRoutesActor.unlazy_statics
380
+
381
+ def self.StaticRoutes; StaticRoutes; end
382
+ ##
383
+ # Create a DiscoverySource with hard-coded static routes.
384
+
385
+ class StaticRoutes < ::DatawireQuarkCore::QuarkObject
386
+ attr_accessor :_knownNodes
387
+ extend ::DatawireQuarkCore::Static
388
+
389
+ static mdk_discovery_StaticRoutes_ref: -> { nil }
390
+
391
+
392
+
393
+ def initialize(knowNodes)
394
+
395
+ self.__init_fields__
396
+ (self)._knownNodes = knowNodes
397
+
398
+ nil
399
+ end
400
+
401
+
402
+
403
+
404
+ def self.parseJSON(json_encoded)
405
+
406
+ nodes = ::DatawireQuarkCore::List.new([])
407
+ ::Quark.quark.fromJSON(::Quark.quark.reflect.QuarkClass.get("quark.List<mdk_discovery.Node>"), nodes, ::DatawireQuarkCore::JSONObject.parse(json_encoded))
408
+ return ::Quark.mdk_discovery.StaticRoutes.new(nodes)
409
+
410
+ nil
411
+ end
412
+
413
+ def isRegistrar()
414
+
415
+ return false
416
+
417
+ nil
418
+ end
419
+
420
+ def create(subscriber, runtime)
421
+
422
+ return ::Quark.mdk_discovery._StaticRoutesActor.new(subscriber, (self)._knownNodes)
423
+
424
+ nil
425
+ end
426
+
427
+ def _getClass()
428
+
429
+ return "mdk_discovery.StaticRoutes"
430
+
431
+ nil
432
+ end
433
+
434
+ def _getField(name)
435
+
436
+ if ((name) == ("_knownNodes"))
437
+ return (self)._knownNodes
438
+ end
439
+ return nil
440
+
441
+ nil
442
+ end
443
+
444
+ def _setField(name, value)
445
+
446
+ if ((name) == ("_knownNodes"))
447
+ (self)._knownNodes = ::DatawireQuarkCore.cast(value) { ::DatawireQuarkCore::List }
448
+ end
449
+
450
+ nil
451
+ end
452
+
453
+ def __init_fields__()
454
+
455
+ self._knownNodes = nil
456
+
457
+ nil
458
+ end
459
+
460
+
461
+ end
462
+ StaticRoutes.unlazy_statics
463
+
288
464
  def self.RegisterNode; RegisterNode; end
289
465
  ##
290
466
  # Message sent to DiscoveryRegistrar Actor to register a node.
@@ -795,6 +971,152 @@ class CircuitBreakerFactory < ::Quark.mdk_discovery.FailurePolicyFactory
795
971
  end
796
972
  CircuitBreakerFactory.unlazy_statics
797
973
 
974
+ def self.RecordingFailurePolicy; RecordingFailurePolicy; end
975
+ ##
976
+ # FailurePolicy that records failures and successes.
977
+
978
+ class RecordingFailurePolicy < ::DatawireQuarkCore::QuarkObject
979
+ attr_accessor :successes, :failures
980
+ extend ::DatawireQuarkCore::Static
981
+
982
+ static mdk_discovery_RecordingFailurePolicy_ref: -> { nil }
983
+
984
+
985
+
986
+ def initialize()
987
+ self.__init_fields__
988
+
989
+ nil
990
+ end
991
+
992
+
993
+
994
+
995
+ def success()
996
+
997
+ (self).successes = ((self).successes) + (1)
998
+
999
+ nil
1000
+ end
1001
+
1002
+ def failure()
1003
+
1004
+ (self).failures = ((self).failures) + (1)
1005
+
1006
+ nil
1007
+ end
1008
+
1009
+ def available()
1010
+
1011
+ return true
1012
+
1013
+ nil
1014
+ end
1015
+
1016
+ def _getClass()
1017
+
1018
+ return "mdk_discovery.RecordingFailurePolicy"
1019
+
1020
+ nil
1021
+ end
1022
+
1023
+ def _getField(name)
1024
+
1025
+ if ((name) == ("successes"))
1026
+ return (self).successes
1027
+ end
1028
+ if ((name) == ("failures"))
1029
+ return (self).failures
1030
+ end
1031
+ return nil
1032
+
1033
+ nil
1034
+ end
1035
+
1036
+ def _setField(name, value)
1037
+
1038
+ if ((name) == ("successes"))
1039
+ (self).successes = ::DatawireQuarkCore.cast(value) { ::Integer }
1040
+ end
1041
+ if ((name) == ("failures"))
1042
+ (self).failures = ::DatawireQuarkCore.cast(value) { ::Integer }
1043
+ end
1044
+
1045
+ nil
1046
+ end
1047
+
1048
+ def __init_fields__()
1049
+
1050
+ self.successes = 0
1051
+ self.failures = 0
1052
+
1053
+ nil
1054
+ end
1055
+
1056
+
1057
+ end
1058
+ RecordingFailurePolicy.unlazy_statics
1059
+
1060
+ def self.RecordingFailurePolicyFactory; RecordingFailurePolicyFactory; end
1061
+ ##
1062
+ # Factory for FailurePolicy useful for testing.
1063
+
1064
+ class RecordingFailurePolicyFactory < ::Quark.mdk_discovery.FailurePolicyFactory
1065
+ extend ::DatawireQuarkCore::Static
1066
+
1067
+ static mdk_discovery_RecordingFailurePolicyFactory_ref: -> { nil }
1068
+
1069
+
1070
+
1071
+ def initialize()
1072
+
1073
+ super()
1074
+
1075
+ nil
1076
+ end
1077
+
1078
+
1079
+
1080
+
1081
+ def create()
1082
+
1083
+ return ::Quark.mdk_discovery.RecordingFailurePolicy.new()
1084
+
1085
+ nil
1086
+ end
1087
+
1088
+ def _getClass()
1089
+
1090
+ return "mdk_discovery.RecordingFailurePolicyFactory"
1091
+
1092
+ nil
1093
+ end
1094
+
1095
+ def _getField(name)
1096
+
1097
+ return nil
1098
+
1099
+ nil
1100
+ end
1101
+
1102
+ def _setField(name, value)
1103
+
1104
+ nil
1105
+
1106
+ nil
1107
+ end
1108
+
1109
+ def __init_fields__()
1110
+
1111
+ super
1112
+
1113
+ nil
1114
+ end
1115
+
1116
+
1117
+ end
1118
+ RecordingFailurePolicyFactory.unlazy_statics
1119
+
798
1120
  def self.Cluster; Cluster; end
799
1121
  ##
800
1122
  # A Cluster is a group of providers of (possibly different versions of)