@@ -24,70 +24,79 @@ def configure (conf)
24
24
end
25
25
26
26
def start
27
-
28
- if KubernetesApiClient . isNodeMaster
29
- #run only if master node
30
- if @run_interval
31
- @finished = false
32
- @condition = ConditionVariable . new
33
- @mutex = Mutex . new
34
- @thread = Thread . new ( &method ( :run_periodic ) )
35
- else
36
- enumerate
37
- end
38
- end
27
+ if KubernetesApiClient . isNodeMaster && @run_interval
28
+ @finished = false
29
+ @condition = ConditionVariable . new
30
+ @mutex = Mutex . new
31
+ @thread = Thread . new ( &method ( :run_periodic ) )
32
+ else
33
+ enumerate
34
+ end
39
35
end
40
36
41
37
def shutdown
42
- if KubernetesApiClient . isNodeMaster
43
- if @run_interval
44
- @mutex . synchronize {
45
- @finished = true
46
- @condition . signal
47
- }
48
- @thread . join
49
- end
38
+ if KubernetesApiClient . isNodeMaster && @run_interval
39
+ @mutex . synchronize {
40
+ @finished = true
41
+ @condition . signal
42
+ }
43
+ @thread . join
50
44
end
51
45
end
52
46
53
47
def enumerate ( eventList = nil )
54
48
time = Time . now . to_f
55
- if eventList . nil?
56
- events = KubernetesApiClient . getKubeResourceInfo ( 'events' )
49
+ if KubernetesApiClient . isNodeMaster
50
+ if eventList . nil?
51
+ events = KubernetesApiClient . getKubeResourceInfo ( 'events' )
52
+ else
53
+ events = eventList
54
+ end
55
+ eventQueryState = getEventQueryState
56
+ newEventQueryState = [ ]
57
+ events [ 'items' ] . each do |items |
58
+ record = { }
59
+ begin
60
+ eventId = items [ 'metadata' ] [ 'uid' ]
61
+ newEventQueryState . push ( eventId )
62
+ if !eventQueryState . empty? && eventQueryState . include? ( eventId )
63
+ next
64
+ end
65
+ record [ 'ObjectKind' ] = items [ 'involvedObject' ] [ 'kind' ]
66
+ record [ 'Namespace' ] = items [ 'involvedObject' ] [ 'namespace' ]
67
+ record [ 'Name' ] = items [ 'involvedObject' ] [ 'name' ]
68
+ record [ 'Reason' ] = items [ 'reason' ]
69
+ record [ 'Message' ] = items [ 'message' ]
70
+ record [ 'Type' ] = items [ 'type' ]
71
+ record [ 'TimeGenerated' ] = items [ 'metadata' ] [ 'creationTimestamp' ]
72
+ record [ 'SourceComponent' ] = items [ 'source' ] [ 'component' ]
73
+ if items [ 'source' ] . key? ( 'host' )
74
+ record [ 'Computer' ] = items [ 'source' ] [ 'host' ]
75
+ else
76
+ record [ 'Computer' ] = ( OMS ::Common . get_hostname )
77
+ end
78
+ record [ 'ClusterName' ] = KubernetesApiClient . getClusterName
79
+ router . emit ( @tag , time , record ) if record
80
+ rescue => errorStr
81
+ $log. warn line . dump , error : errorStr . to_s
82
+ $log. debug_backtrace ( e . backtrace )
83
+ end
84
+ end
85
+ writeEventQueryState ( newEventQueryState )
57
86
else
58
- events = eventList
59
- end
60
- eventQueryState = getEventQueryState
61
- newEventQueryState = [ ]
62
- events [ 'items' ] . each do |items |
63
- record = { }
64
- begin
65
- eventId = items [ 'metadata' ] [ 'uid' ]
66
- newEventQueryState . push ( eventId )
67
- if !eventQueryState . empty? && eventQueryState . include? ( eventId )
68
- next
69
- end
70
- record [ 'ObjectKind' ] = items [ 'involvedObject' ] [ 'kind' ]
71
- record [ 'Namespace' ] = items [ 'involvedObject' ] [ 'namespace' ]
72
- record [ 'Name' ] = items [ 'involvedObject' ] [ 'name' ]
73
- record [ 'Reason' ] = items [ 'reason' ]
74
- record [ 'Message' ] = items [ 'message' ]
75
- record [ 'Type' ] = items [ 'type' ]
76
- record [ 'TimeGenerated' ] = items [ 'metadata' ] [ 'creationTimestamp' ]
77
- record [ 'SourceComponent' ] = items [ 'source' ] [ 'component' ]
78
- if items [ 'source' ] . key? ( 'host' )
79
- record [ 'Computer' ] = items [ 'source' ] [ 'host' ]
80
- else
81
- record [ 'Computer' ] = ( OMS ::Common . get_hostname )
82
- end
83
- record [ 'ClusterName' ] = KubernetesApiClient . getClusterName
84
- router . emit ( @tag , time , record ) if record
85
- rescue => errorStr
86
- $log. warn line . dump , error : errorStr . to_s
87
- $log. debug_backtrace ( e . backtrace )
88
- end
89
- end
90
- writeEventQueryState ( newEventQueryState )
87
+ record = { }
88
+ record [ 'ObjectKind' ] = ""
89
+ record [ 'Namespace' ] = ""
90
+ record [ 'Name' ] = ""
91
+ record [ 'Reason' ] = ""
92
+ record [ 'Message' ] = ""
93
+ record [ 'Type' ] = ""
94
+ record [ 'TimeGenerated' ] = ""
95
+ record [ 'SourceComponent' ] = ""
96
+ record [ 'Computer' ] = ""
97
+ record [ 'ClusterName' ] = ""
98
+ router . emit ( @tag , time , record )
99
+ end
91
100
end
92
101
93
102
def run_periodic
0 commit comments