hq-log-monitor-server 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data/features/event-page.feature +38 -5
- data/features/support/ui-steps.rb +16 -0
- data/lib/hq/log-monitor-server/event-page.rb +38 -8
- data/lib/hq/log-monitor-server/logic.rb +26 -0
- metadata +17 -1
data/features/event-page.feature
CHANGED
@@ -16,7 +16,7 @@ Feature: View and manipulate a single event
|
|
16
16
|
</log-monitor-server-config>
|
17
17
|
"""
|
18
18
|
|
19
|
-
And the time is
|
19
|
+
And the time is 10
|
20
20
|
|
21
21
|
And I submit the following event:
|
22
22
|
"""
|
@@ -37,6 +37,9 @@ Feature: View and manipulate a single event
|
|
37
37
|
When I visit /event/${event-id}
|
38
38
|
|
39
39
|
Then I should see the event
|
40
|
+
And I should see a button "mark as seen"
|
41
|
+
And I should not see a button "mark as unseen"
|
42
|
+
|
40
43
|
And the event status should be "unseen"
|
41
44
|
|
42
45
|
And the summary new should be 1
|
@@ -46,12 +49,15 @@ Feature: View and manipulate a single event
|
|
46
49
|
|
47
50
|
Scenario: Mark as seen
|
48
51
|
|
49
|
-
Given the time is
|
52
|
+
Given the time is 20
|
50
53
|
|
51
54
|
When I visit /event/${event-id}
|
52
55
|
And I click "mark as seen"
|
53
56
|
|
54
57
|
Then I should see the event
|
58
|
+
And I should see a button "mark as unseen"
|
59
|
+
And I should not see a button "mark as seen"
|
60
|
+
|
55
61
|
And the event status should be "seen"
|
56
62
|
|
57
63
|
And the summary new should be 0
|
@@ -61,7 +67,34 @@ Scenario: Mark as seen
|
|
61
67
|
|
62
68
|
And icinga should receive:
|
63
69
|
"""
|
64
|
-
[
|
65
|
-
[
|
66
|
-
[
|
70
|
+
[10] PROCESS_SERVICE_CHECK_RESULT;host;service;0;OK no new events
|
71
|
+
[10] PROCESS_SERVICE_CHECK_RESULT;host;service;1;WARNING 1 warning
|
72
|
+
[20] PROCESS_SERVICE_CHECK_RESULT;host;service;0;OK no new events
|
73
|
+
"""
|
74
|
+
|
75
|
+
Scenario: Mark as unseen
|
76
|
+
|
77
|
+
Given the time is 20
|
78
|
+
|
79
|
+
When I visit /event/${event-id}
|
80
|
+
And I click "mark as seen"
|
81
|
+
And I click "mark as unseen"
|
82
|
+
|
83
|
+
Then I should see the event
|
84
|
+
And I should see a button "mark as seen"
|
85
|
+
And I should not see a button "mark as unseen"
|
86
|
+
|
87
|
+
And the event status should be "unseen"
|
88
|
+
|
89
|
+
And the summary new should be 1
|
90
|
+
And the summary total should be 1
|
91
|
+
And the summary new for type "warning" should be 1
|
92
|
+
And the summary total for type "warning" should be 1
|
93
|
+
|
94
|
+
And icinga should receive:
|
95
|
+
"""
|
96
|
+
[10] PROCESS_SERVICE_CHECK_RESULT;host;service;0;OK no new events
|
97
|
+
[10] PROCESS_SERVICE_CHECK_RESULT;host;service;1;WARNING 1 warning
|
98
|
+
[20] PROCESS_SERVICE_CHECK_RESULT;host;service;0;OK no new events
|
99
|
+
[20] PROCESS_SERVICE_CHECK_RESULT;host;service;1;WARNING 1 warning
|
67
100
|
"""
|
@@ -48,3 +48,19 @@ Then /^I should see the event$/ do
|
|
48
48
|
find("#event #id td").text.should == @event_id.to_s
|
49
49
|
|
50
50
|
end
|
51
|
+
|
52
|
+
Then /^I should see a button "(.*?)"$/ do
|
53
|
+
|label|
|
54
|
+
|
55
|
+
find_button(label).should_not be_nil
|
56
|
+
|
57
|
+
end
|
58
|
+
|
59
|
+
Then /^I should not see a button "(.*?)"$/ do
|
60
|
+
|label|
|
61
|
+
|
62
|
+
expect {
|
63
|
+
find_button(label)
|
64
|
+
}.to raise_error Capybara::ElementNotFound
|
65
|
+
|
66
|
+
end
|
@@ -16,6 +16,13 @@ class Script
|
|
16
16
|
|
17
17
|
end
|
18
18
|
|
19
|
+
if req.request_method == "POST" \
|
20
|
+
&& req.params["mark-as-unseen"]
|
21
|
+
|
22
|
+
mark_event_as_unseen context[:event_id]
|
23
|
+
|
24
|
+
end
|
25
|
+
|
19
26
|
# read from database
|
20
27
|
|
21
28
|
event =
|
@@ -77,6 +84,13 @@ class Script
|
|
77
84
|
]
|
78
85
|
html << "</tr>\n"
|
79
86
|
|
87
|
+
html << "<tr>\n"
|
88
|
+
html << "<th>Status</th>\n"
|
89
|
+
html << "<td>%s</td>\n" % [
|
90
|
+
esc_ht(event["status"].to_s),
|
91
|
+
]
|
92
|
+
html << "</tr>\n"
|
93
|
+
|
80
94
|
html << "<tr>\n"
|
81
95
|
html << "<th>Service</th>\n"
|
82
96
|
html << "<td>%s</td>\n" % [
|
@@ -108,7 +122,7 @@ class Script
|
|
108
122
|
html << "<tr>\n"
|
109
123
|
html << "<th>Line number</th>\n"
|
110
124
|
html << "<td>%s</td>\n" % [
|
111
|
-
esc_ht((event["location"]["line"] + 1).to_s),
|
125
|
+
esc_ht((event["location"]["line"].to_i + 1).to_s),
|
112
126
|
]
|
113
127
|
html << "</tr>\n"
|
114
128
|
|
@@ -149,13 +163,29 @@ class Script
|
|
149
163
|
|
150
164
|
html << "<form method=\"post\">\n"
|
151
165
|
|
152
|
-
html <<
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
"
|
158
|
-
|
166
|
+
html << "<p>\n"
|
167
|
+
|
168
|
+
if event["status"] != "seen"
|
169
|
+
|
170
|
+
html <<
|
171
|
+
"<input " +
|
172
|
+
"type=\"submit\" " +
|
173
|
+
"name=\"mark-as-seen\" " +
|
174
|
+
"value=\"mark as seen\">\n"
|
175
|
+
|
176
|
+
end
|
177
|
+
|
178
|
+
if event["status"] != "unseen"
|
179
|
+
|
180
|
+
html <<
|
181
|
+
"<input " +
|
182
|
+
"type=\"submit\" " +
|
183
|
+
"name=\"mark-as-unseen\" " +
|
184
|
+
"value=\"mark as unseen\">\n"
|
185
|
+
|
186
|
+
end
|
187
|
+
|
188
|
+
html << "</p>\n"
|
159
189
|
|
160
190
|
html << "</form>\n"
|
161
191
|
|
@@ -37,6 +37,32 @@ class Script
|
|
37
37
|
|
38
38
|
end
|
39
39
|
|
40
|
+
def mark_event_as_unseen event_id
|
41
|
+
|
42
|
+
event = get_event event_id
|
43
|
+
|
44
|
+
return if event["status"] == "unseen"
|
45
|
+
|
46
|
+
event["status"] = "unseen"
|
47
|
+
|
48
|
+
@db["events"].save event
|
49
|
+
|
50
|
+
# update summary
|
51
|
+
|
52
|
+
@db["summaries"].update(
|
53
|
+
{ "_id" => event["source"] },
|
54
|
+
{ "$inc" => {
|
55
|
+
"combined.new" => 1,
|
56
|
+
"types.#{event["type"]}.new" => 1,
|
57
|
+
} }
|
58
|
+
)
|
59
|
+
|
60
|
+
# notify icinga checks
|
61
|
+
|
62
|
+
do_checks
|
63
|
+
|
64
|
+
end
|
65
|
+
|
40
66
|
def get_summaries_by_service
|
41
67
|
|
42
68
|
summaries_by_service = {}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hq-log-monitor-server
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -139,6 +139,22 @@ dependencies:
|
|
139
139
|
- - ! '>='
|
140
140
|
- !ruby/object:Gem::Version
|
141
141
|
version: 1.2.1
|
142
|
+
- !ruby/object:Gem::Dependency
|
143
|
+
name: json
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
145
|
+
none: false
|
146
|
+
requirements:
|
147
|
+
- - ! '>='
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: 1.7.7
|
150
|
+
type: :development
|
151
|
+
prerelease: false
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
154
|
+
requirements:
|
155
|
+
- - ! '>='
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: 1.7.7
|
142
158
|
- !ruby/object:Gem::Dependency
|
143
159
|
name: rake
|
144
160
|
requirement: !ruby/object:Gem::Requirement
|