author | Kim Alvefur <zash@zash.se> |
Tue, 16 Sep 2014 19:53:41 +0200 | |
changeset 1506 | a40f9b8661d8 |
parent 1343 | 7dbde05b48a9 |
permissions | -rw-r--r-- |
913
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
1 |
-- This contains the auxiliary functions for the Incidents Handling module. |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
2 |
-- (C) 2012-2013, Marco Cirillo (LW.Org) |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
3 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
4 |
local pairs, ipairs, os_date, string, table, tonumber = pairs, ipairs, os.date, string, table, tonumber |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
5 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
6 |
local dataforms_new = require "util.dataforms".new |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
7 |
local st = require "util.stanza" |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
8 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
9 |
local xmlns_inc = "urn:xmpp:incident:2" |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
10 |
local xmlns_iodef = "urn:ietf:params:xml:ns:iodef-1.0" |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
11 |
local my_host = nil |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
12 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
13 |
-- // Util and Functions // |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
14 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
15 |
local function ft_str() |
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
913
diff
changeset
|
16 |
local d = os_date("%FT%T%z"):gsub("^(.*)(%+%d+)", function(dt, z) |
913
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
17 |
if z == "+0000" then return dt.."Z" else return dt..z end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
18 |
end) |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
19 |
return d |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
20 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
21 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
22 |
local function get_incident_layout(i_type) |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
23 |
local layout = { |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
24 |
title = (i_type == "report" and "Incident report form") or (i_type == "request" and "Request for assistance with incident form"), |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
25 |
instructions = "Started/Ended Time, Contacts, Sources and Targets of the attack are mandatory. See RFC 5070 for further format instructions.", |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
26 |
{ name = "FORM_TYPE", type = "hidden", value = "http://jabber.org/protocol/commands" }, |
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
913
diff
changeset
|
27 |
|
913
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
28 |
{ name = "name", type = "hidden", value = my_host }, |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
29 |
{ name = "entity", type ="text-single", label = "Remote entity to query" }, |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
30 |
{ name = "started", type = "text-single", label = "Incident Start Time" }, |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
31 |
{ name = "ended", type = "text-single", label = "Incident Ended Time" }, |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
32 |
{ name = "reported", type = "hidden", value = ft_str() }, |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
33 |
{ name = "description", type = "text-single", label = "Description", |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
34 |
desc = "Description syntax is: <lang (in xml:lang format)> <short description>" }, |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
35 |
{ name = "contacts", type = "text-multi", label = "Contacts", |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
36 |
desc = "Contacts entries format is: <address> <type> <role> - separated by new lines" }, |
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
913
diff
changeset
|
37 |
{ name = "related", type = "text-multi", label = "Related Incidents", |
913
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
38 |
desc = "Related incidents entries format is: <CSIRT's FQDN> <Incident ID> - separated by new lines" }, |
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
913
diff
changeset
|
39 |
{ name = "impact", type = "text-single", label = "Impact Assessment", |
913
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
40 |
desc = "Impact assessment format is: <severity> <completion> <type>" }, |
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
913
diff
changeset
|
41 |
{ name = "sources", type = "text-multi", label = "Attack Sources", |
913
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
42 |
desc = "Attack sources format is: <address> <category> <count> <count-type>" }, |
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
913
diff
changeset
|
43 |
{ name = "targets", type = "text-multi", label = "Attack Targets", |
913
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
44 |
desc = "Attack target format is: <address> <category> <noderole>" } |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
45 |
} |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
46 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
47 |
if i_type == "request" then |
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
913
diff
changeset
|
48 |
table.insert(layout, { |
913
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
49 |
name = "expectation", |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
50 |
type = "list-single", |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
51 |
label = "Expected action from remote entity", |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
52 |
value = { |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
53 |
{ value = "nothing", label = "No action" }, |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
54 |
{ value = "contact-sender", label = "Contact us, regarding the incident" }, |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
55 |
{ value = "investigate", label = "Investigate the entities listed into the incident" }, |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
56 |
{ value = "block-host", label = "Block the involved accounts" }, |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
57 |
{ value = "other", label = "Other action, filling the description field is required" } |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
58 |
}}) |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
59 |
table.insert(layout, { name = "description", type = "text-single", label = "Description" }) |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
60 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
61 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
62 |
return dataforms_new(layout) |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
63 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
64 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
65 |
local function render_list(incidents) |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
66 |
local layout = { |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
67 |
title = "Stored Incidents List", |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
68 |
instructions = "You can select and view incident reports here, if a followup/response is possible it'll be noted in the step after selection.", |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
69 |
{ name = "FORM_TYPE", type = "hidden", value = "http://jabber.org/protocol/commands" }, |
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
913
diff
changeset
|
70 |
{ |
913
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
71 |
name = "ids", |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
72 |
type = "list-single", |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
73 |
label = "Stored Incidents", |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
74 |
value = {} |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
75 |
} |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
76 |
} |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
77 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
78 |
-- Render stored incidents list |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
79 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
80 |
for id in pairs(incidents) do |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
81 |
table.insert(layout[2].value, { value = id, label = id }) |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
82 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
83 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
84 |
return dataforms_new(layout) |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
85 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
86 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
87 |
local function insert_fixed(t, item) table.insert(t, { type = "fixed", value = item }) end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
88 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
89 |
local function render_single(incident) |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
90 |
local layout = { |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
91 |
title = string.format("Incident ID: %s - Friendly Name: %s", incident.data.id.text, incident.data.id.name), |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
92 |
instructions = incident.data.desc.text, |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
93 |
{ name = "FORM_TYPE", type = "hidden", value = "http://jabber.org/protocol/commands" } |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
94 |
} |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
95 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
96 |
insert_fixed(layout, "Start Time: "..incident.data.start_time) |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
97 |
insert_fixed(layout, "End Time: "..incident.data.end_time) |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
98 |
insert_fixed(layout, "Report Time: "..incident.data.report_time) |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
99 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
100 |
insert_fixed(layout, "Contacts --") |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
101 |
for _, contact in ipairs(incident.data.contacts) do |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
102 |
insert_fixed(layout, string.format("Role: %s Type: %s", contact.role, contact.type)) |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
103 |
if contact.jid then insert_fixed(layout, "--> JID: "..contact.jid..(contact.xmlns and ", XMLNS: "..contact.xmlns or "")) end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
104 |
if contact.email then insert_fixed(layout, "--> E-Mail: "..contact.email) end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
105 |
if contact.telephone then insert_fixed(layout, "--> Telephone: "..contact.telephone) end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
106 |
if contact.postaladdr then insert_fixed(layout, "--> Postal Address: "..contact.postaladdr) end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
107 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
108 |
|
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
913
diff
changeset
|
109 |
insert_fixed(layout, "Related Activity --") |
913
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
110 |
for _, related in ipairs(incident.data.related) do |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
111 |
insert_fixed(layout, string.format("Name: %s ID: %s", related.name, related.text)) |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
112 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
113 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
114 |
insert_fixed(layout, "Assessment --") |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
115 |
insert_fixed(layout, string.format("Language: %s Severity: %s Completion: %s Type: %s", |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
116 |
incident.data.assessment.lang, incident.data.assessment.severity, incident.data.assessment.completion, incident.data.assessment.type)) |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
117 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
118 |
insert_fixed(layout, "Sources --") |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
119 |
for _, source in ipairs(incident.data.event_data.sources) do |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
120 |
insert_fixed(layout, string.format("Address: %s Counter: %s", source.address.text, source.counter.value)) |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
121 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
122 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
123 |
insert_fixed(layout, "Targets --") |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
124 |
for _, target in ipairs(incident.data.event_data.targets) do |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
125 |
insert_fixed(layout, string.format("For NodeRole: %s", (target.noderole.cat == "ext-category" and target.noderole.ext) or targets.noderole.cat)) |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
126 |
for _, address in ipairs(target.addresses) do |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
127 |
insert_fixed(layout, string.format("---> Address: %s Type: %s", address.text, (address.cat == "ext-category" and address.ext) or address.cat)) |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
128 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
129 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
130 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
131 |
if incident.data.expectation then |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
132 |
insert_fixed(layout, "Expected Action: "..incident.data.expectation.action) |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
133 |
if incident.data.expectation.desc then |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
134 |
insert_fixed(layout, "Expected Action Description: "..incident.data.expectation.desc) |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
135 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
136 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
137 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
138 |
if incident.type == "request" and incident.status == "open" then |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
139 |
table.insert(layout, { name = "response-datetime", type = "hidden", value = ft_str() }) |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
140 |
table.insert(layout, { name = "response", type = "text-single", label = "Respond to the request" }) |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
141 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
142 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
143 |
return dataforms_new(layout) |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
144 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
145 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
146 |
local function get_type(var, typ) |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
147 |
if typ == "counter" then |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
148 |
local count_type, count_ext = var, nil |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
149 |
if count_type ~= "byte" or count_type ~= "packet" or count_type ~= "flow" or count_type ~= "session" or |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
150 |
count_type ~= "alert" or count_type ~= "message" or count_type ~= "event" or count_type ~= "host" or |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
151 |
count_type ~= "site" or count_type ~= "organization" then |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
152 |
count_ext = count_type |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
153 |
count_type = "ext-type" |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
154 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
155 |
return count_type, count_ext |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
156 |
elseif typ == "category" then |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
157 |
local cat, cat_ext = var, nil |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
158 |
if cat ~= "asn" or cat ~= "atm" or cat ~= "e-mail" or cat ~= "ipv4-addr" or |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
159 |
cat ~= "ipv4-net" or cat ~= "ipv4-net-mask" or cat ~= "ipv6-addr" or cat ~= "ipv6-net" or |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
160 |
cat ~= "ipv6-net-mask" or cat ~= "mac" then |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
161 |
cat_ext = cat |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
162 |
cat = "ext-category" |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
163 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
164 |
return cat, cat_ext |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
165 |
elseif type == "noderole" then |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
166 |
local noderole_ext = nil |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
167 |
if cat ~= "client" or cat ~= "server-internal" or cat ~= "server-public" or cat ~= "www" or |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
168 |
cat ~= "mail" or cat ~= "messaging" or cat ~= "streaming" or cat ~= "voice" or |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
169 |
cat ~= "file" or cat ~= "ftp" or cat ~= "p2p" or cat ~= "name" or |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
170 |
cat ~= "directory" or cat ~= "credential" or cat ~= "print" or cat ~= "application" or |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
171 |
cat ~= "database" or cat ~= "infra" or cat ~= "log" then |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
172 |
noderole_ext = true |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
173 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
174 |
return noderole_ext |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
175 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
176 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
177 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
178 |
local function do_tag_mapping(tag, object) |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
179 |
if tag.name == "IncidentID" then |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
180 |
object.id = { text = tag:get_text(), name = tag.attr.name } |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
181 |
elseif tag.name == "StartTime" then |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
182 |
object.start_time = tag:get_text() |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
183 |
elseif tag.name == "EndTime" then |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
184 |
object.end_time = tag:get_text() |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
185 |
elseif tag.name == "ReportTime" then |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
186 |
object.report_time = tag:get_text() |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
187 |
elseif tag.name == "Description" then |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
188 |
object.desc = { text = tag:get_text(), lang = tag.attr["xml:lang"] } |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
189 |
elseif tag.name == "Contact" then |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
190 |
local jid = tag:get_child("AdditionalData").tags[1] |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
191 |
local email = tag:get_child("Email") |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
192 |
local telephone = tag:get_child("Telephone") |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
193 |
local postaladdr = tag:get_child("PostalAddress") |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
194 |
if not object.contacts then |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
195 |
object.contacts = {} |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
196 |
object.contacts[1] = { |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
197 |
role = tag.attr.role, |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
198 |
ext_role = (tag.attr["ext-role"] and true) or nil, |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
199 |
type = tag.attr.type, |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
200 |
ext_type = (tag.attr["ext-type"] and true) or nil, |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
201 |
xmlns = jid.attr.xmlns, |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
202 |
jid = jid:get_text(), |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
203 |
email = email, |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
204 |
telephone = telephone, |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
205 |
postaladdr = postaladdr |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
206 |
} |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
207 |
else |
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
913
diff
changeset
|
208 |
object.contacts[#object.contacts + 1] = { |
913
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
209 |
role = tag.attr.role, |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
210 |
ext_role = (tag.attr["ext-role"] and true) or nil, |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
211 |
type = tag.attr.type, |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
212 |
ext_type = (tag.attr["ext-type"] and true) or nil, |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
213 |
xmlns = jid.attr.xmlns, |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
214 |
jid = jid:get_text(), |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
215 |
email = email, |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
216 |
telephone = telephone, |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
217 |
postaladdr = postaladdr |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
218 |
} |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
219 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
220 |
elseif tag.name == "RelatedActivity" then |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
221 |
object.related = {} |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
222 |
for _, t in ipairs(tag.tags) do |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
223 |
if tag.name == "IncidentID" then |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
224 |
object.related[#object.related + 1] = { text = t:get_text(), name = tag.attr.name } |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
225 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
226 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
227 |
elseif tag.name == "Assessment" then |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
228 |
local impact = tag:get_child("Impact") |
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
913
diff
changeset
|
229 |
object.assessment = { lang = impact.attr.lang, severity = impact.attr.severity, completion = impact.attr.completion, type = impact.attr.type } |
913
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
230 |
elseif tag.name == "EventData" then |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
231 |
local source = tag:get_child("Flow").tags[1] |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
232 |
local target = tag:get_child("Flow").tags[2] |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
233 |
local expectation = tag:get_child("Flow").tags[3] |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
234 |
object.event_data = { sources = {}, targets = {} } |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
235 |
for _, t in ipairs(source.tags) do |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
236 |
local addr = t:get_child("Address") |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
237 |
local cntr = t:get_child("Counter") |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
238 |
object.event_data.sources[#object.event_data.sources + 1] = { |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
239 |
address = { cat = addr.attr.category, ext = addr.attr["ext-category"], text = addr:get_text() }, |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
240 |
counter = { type = cntr.attr.type, ext_type = cntr.attr["ext-type"], value = cntr:get_text() } |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
241 |
} |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
242 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
243 |
for _, entry in ipairs(target.tags) do |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
244 |
local noderole = { cat = entry:get_child("NodeRole").attr.category, ext = entry:get_child("NodeRole").attr["ext-category"] } |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
245 |
local current = #object.event_data.targets + 1 |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
246 |
object.event_data.targets[current] = { addresses = {}, noderole = noderole } |
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
913
diff
changeset
|
247 |
for _, tag in ipairs(entry.tags) do |
913
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
248 |
object.event_data.targets[current].addresses[#object.event_data.targets[current].addresses + 1] = { text = tag:get_text(), cat = tag.attr.category, ext = tag.attr["ext-category"] } |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
249 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
250 |
end |
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
913
diff
changeset
|
251 |
if expectation then |
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
913
diff
changeset
|
252 |
object.event_data.expectation = { |
913
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
253 |
action = expectation.attr.action, |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
254 |
desc = expectation:get_child("Description") and expectation:get_child("Description"):get_text() |
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
913
diff
changeset
|
255 |
} |
913
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
256 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
257 |
elseif tag.name == "History" then |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
258 |
object.history = {} |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
259 |
for _, t in ipairs(tag.tags) do |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
260 |
object.history[#object.history + 1] = { |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
261 |
action = t.attr.action, |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
262 |
date = t:get_child("DateTime"):get_text(), |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
263 |
desc = t:get_chilld("Description"):get_text() |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
264 |
} |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
265 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
266 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
267 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
268 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
269 |
local function stanza_parser(stanza) |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
270 |
local object = {} |
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
913
diff
changeset
|
271 |
|
913
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
272 |
if stanza:get_child("report", xmlns_inc) then |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
273 |
local report = st.clone(stanza):get_child("report", xmlns_inc):get_child("Incident", xmlns_iodef) |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
274 |
for _, tag in ipairs(report.tags) do do_tag_mapping(tag, object) end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
275 |
elseif stanza:get_child("request", xmlns_inc) then |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
276 |
local request = st.clone(stanza):get_child("request", xmlns_inc):get_child("Incident", xmlns_iodef) |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
277 |
for _, tag in ipairs(request.tags) do do_tag_mapping(tag, object) end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
278 |
elseif stanza:get_child("response", xmlns_inc) then |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
279 |
local response = st.clone(stanza):get_child("response", xmlns_inc):get_child("Incident", xmlns_iodef) |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
280 |
for _, tag in ipairs(response.tags) do do_tag_mapping(tag, object) end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
281 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
282 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
283 |
return object |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
284 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
285 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
286 |
local function stanza_construct(id) |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
287 |
if not id then return nil |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
288 |
else |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
289 |
local object = incidents[id].data |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
290 |
local s_type = incidents[id].type |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
291 |
local stanza = st.iq():tag(s_type or "report", { xmlns = xmlns_inc }) |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
292 |
stanza:tag("Incident", { xmlns = xmlns_iodef, purpose = incidents[id].purpose }) |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
293 |
:tag("IncidentID", { name = object.id.name }):text(object.id.text):up() |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
294 |
:tag("StartTime"):text(object.start_time):up() |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
295 |
:tag("EndTime"):text(object.end_time):up() |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
296 |
:tag("ReportTime"):text(object.report_time):up() |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
297 |
:tag("Description", { ["xml:lang"] = object.desc.lang }):text(object.desc.text):up():up(); |
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
913
diff
changeset
|
298 |
|
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
913
diff
changeset
|
299 |
local incident = stanza:get_child(s_type, xmlns_inc):get_child("Incident", xmlns_iodef) |
913
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
300 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
301 |
for _, contact in ipairs(object.contacts) do |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
302 |
incident:tag("Contact", { role = (contact.ext_role and "ext-role") or contact.role, |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
303 |
["ext-role"] = (contact.ext_role and contact.role) or nil, |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
304 |
type = (contact.ext_type and "ext-type") or contact.type, |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
305 |
["ext-type"] = (contact.ext_type and contact.type) or nil }) |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
306 |
:tag("Email"):text(contact.email):up() |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
307 |
:tag("Telephone"):text(contact.telephone):up() |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
308 |
:tag("PostalAddress"):text(contact.postaladdr):up() |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
309 |
:tag("AdditionalData") |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
310 |
:tag("jid", { xmlns = contact.xmlns }):text(contact.jid):up():up():up() |
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
913
diff
changeset
|
311 |
|
913
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
312 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
313 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
314 |
incident:tag("RelatedActivity"):up(); |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
315 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
316 |
for _, related in ipairs(object.related) do |
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
913
diff
changeset
|
317 |
incident:get_child("RelatedActivity") |
913
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
318 |
:tag("IncidentID", { name = related.name }):text(related.text):up(); |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
319 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
320 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
321 |
incident:tag("Assessment") |
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
913
diff
changeset
|
322 |
:tag("Impact", { |
913
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
323 |
lang = object.assessment.lang, |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
324 |
severity = object.assessment.severity, |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
325 |
completion = object.assessment.completion, |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
326 |
type = object.assessment.type |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
327 |
}):up():up(); |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
328 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
329 |
incident:tag("EventData") |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
330 |
:tag("Flow") |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
331 |
:tag("System", { category = "source" }):up() |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
332 |
:tag("System", { category = "target" }):up():up():up(); |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
333 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
334 |
local e_data = incident:get_child("EventData") |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
335 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
336 |
local sources = e_data:get_child("Flow").tags[1] |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
337 |
local targets = e_data:get_child("Flow").tags[2] |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
338 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
339 |
for _, source in ipairs(object.event_data.sources) do |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
340 |
sources:tag("Node") |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
341 |
:tag("Address", { category = source.address.cat, ["ext-category"] = source.address.ext }) |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
342 |
:text(source.address.text):up() |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
343 |
:tag("Counter", { type = source.counter.type, ["ext-type"] = source.counter.ext_type }) |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
344 |
:text(source.counter.value):up():up(); |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
345 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
346 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
347 |
for _, target in ipairs(object.event_data.targets) do |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
348 |
targets:tag("Node"):up() ; local node = targets.tags[#targets.tags] |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
349 |
for _, address in ipairs(target.addresses) do |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
350 |
node:tag("Address", { category = address.cat, ["ext-category"] = address.ext }):text(address.text):up(); |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
351 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
352 |
node:tag("NodeRole", { category = target.noderole.cat, ["ext-category"] = target.noderole.ext }):up(); |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
353 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
354 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
355 |
if object.event_data.expectation then |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
356 |
e_data:tag("Expectation", { action = object.event_data.expectation.action }):up(); |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
357 |
if object.event_data.expectation.desc then |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
358 |
local expectation = e_data:get_child("Expectation") |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
359 |
expectation:tag("Description"):text(object.event_data.expectation.desc):up(); |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
360 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
361 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
362 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
363 |
if object.history then |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
364 |
local history = incident:tag("History"):up(); |
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
913
diff
changeset
|
365 |
|
913
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
366 |
for _, item in ipairs(object.history) do |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
367 |
history:tag("HistoryItem", { action = item.action }) |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
368 |
:tag("DateTime"):text(item.date):up() |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
369 |
:tag("Description"):text(item.desc):up():up(); |
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
913
diff
changeset
|
370 |
end |
913
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
371 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
372 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
373 |
-- Sanitize contact empty tags |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
374 |
for _, tag in ipairs(incident) do |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
375 |
if tag.name == "Contact" then |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
376 |
for i, check in ipairs(tag) do |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
377 |
if (check.name == "Email" or check.name == "PostalAddress" or check.name == "Telephone") and |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
378 |
not check:get_text() then |
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
913
diff
changeset
|
379 |
table.remove(tag, i) |
913
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
380 |
end |
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
913
diff
changeset
|
381 |
end |
913
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
382 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
383 |
end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
384 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
385 |
if s_type == "request" then stanza.attr.type = "get" |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
386 |
elseif s_type == "response" then stanza.attr.type = "set" |
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
913
diff
changeset
|
387 |
else stanza.attr.type = "set" end |
913
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
388 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
389 |
return stanza |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
390 |
end |
1343
7dbde05b48a9
all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents:
913
diff
changeset
|
391 |
end |
913
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
392 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
393 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
394 |
_M = {} -- wraps methods into the library. |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
395 |
_M.ft_str = ft_str |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
396 |
_M.get_incident_layout = get_incident_layout |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
397 |
_M.render_list = render_list |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
398 |
_M.render_single = render_single |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
399 |
_M.get_type = get_type |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
400 |
_M.stanza_parser = stanza_parser |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
401 |
_M.stanza_construct = stanza_construct |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
402 |
_M.set_my_host = function(host) my_host = host end |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
403 |
|
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
404 |
return _M |
f42837829d5f
mod_incidents_handling: commiting its auxiliary library.
Marco Cirillo <maranda@lightwitch.org>
parents:
diff
changeset
|
405 |