1 """
2 Some supportive functions for the data engine.
3
4 Inter-Organisational Intrusion Detection System (IOIDS)
5
6 @author: Michael Pilgermann
7 @contact: mailto:mpilgerm@glam.ac.uk
8 @license: GPL (General Public License)
9 """
10
11 import soapsytools.dataengine_tools
12
13
14 _preXMLDictCreator = None
26
28
29 - def createNewIoidsPeerEntry(self, memberid):
30 dict_peer = {}
31 self._evalValue(dict_peer, 'peer_memberid', memberid)
32 return ['ioids_peer', dict_peer, []]
33
35 """
36 Creates the nested list for preparing for XML creation of an IOIDS Source.
37 """
38 return ['ioids_source', {}, [self.createNewIoidsPeerEntry(memberid)]]
39
41 """
42 Creates the nested list for preparing for XML creation of an IOIDS Source.
43 """
44 return ['ioids_sender', {}, [self.createNewIoidsPeerEntry(memberid)]]
45
46 - def createNewIoidsClassificationEntry(self, classificationCode, classificationName):
47 """
48 Creates the nested list for preparing for XML creation of an IOIDS Classification.
49 """
50 dict_class = {}
51 self._evalValue(dict_class, 'classification_code', classificationCode)
52 self._evalValue(dict_class, 'classification_name', classificationName)
53 return ['ioids_classification', dict_class, []]
54
55 - def createNewIoidsEventEntry(self, community_id, timestamp_received, relations = [], event_id = None):
56 dict = {}
57 self._evalValue(dict, 'event_id', event_id)
58 self._evalValue(dict, 'community_id', community_id)
59 self._evalValue(dict, 'timestamp_received', timestamp_received)
60 return ['ioids_event', dict, relations]
61
62 - def createNewIoidsRelationTypeEntry(self, typeName, relations = []):
63 dict = {}
64 self._evalValue(dict, 'ioids_relation_type_name', typeName)
65 return ['ioids_relation_type', dict, relations]
66
67 - def createNewIoidsRelationEntry(self, relations = [], ioidsEventId = None, eventId = None, relationTypeId = None, relationTypeName = None):
68 dict = {}
69 self._evalValue(dict, 'ioids_event_id', ioidsEventId)
70 self._evalValue(dict, 'event_id', eventId)
71 self._evalValue(dict, 'ioids_relation_type_id', relationTypeId)
72 if relationTypeName:
73 relations.append(self.createNewIoidsRelationTypeEntry(relationTypeName))
74 return ['ioids_relation', dict, relations]
75
76
77
79 dict = {}
80 rels = []
81
82 self._evalValue(dict, 'classification_code', dictRaw['classification_code'])
83 self._evalValue(dict, 'classification_name', dictRaw['classification_name'])
84 return ['ioids_classification', dict, rels]
85
86 - def createIoidsPeerEntry(self, dictRaw):
87 dict = {}
88 rels = []
89
90 self._evalValue(dict, 'peer_memberid', dictRaw['peer_memberid'])
91 return ['ioids_peer', dict, rels]
92
93 - def createIoidsSenderEntry(self, dictRaw, peerRelation):
94 dict = {}
95 rels = []
96
97 if not peerRelation:
98 self._evalValue(dict, 'ioids_peer_id', dictRaw['ioids_peer_id'])
99 else:
100 rels.append(peerRelation)
101 return ['ioids_sender', dict, rels]
102
103 - def createIoidsSourceEntry(self, dictRaw, peerRelation):
104 dict = {}
105 rels = []
106
107 if not peerRelation:
108 self._evalValue(dict, 'ioids_peer_id', dictRaw['ioids_peer_id'])
109 else:
110 rels.append(peerRelation)
111 return ['ioids_source', dict, rels]
112
113 - def createIoidsEventEntry(self, dictRaw, eventRelation, ioidsSenderRelation, ioidsSourceRelation, ioidsClassificationRelation):
114 dict = {}
115 rels = []
116
117 self._evalValue(dict, 'timestamp_received', dictRaw['timestamp_received'])
118 self._evalValue(dict, 'community_id', dictRaw['community_id'])
119 if not eventRelation:
120 self._evalValue(dict, 'event_id', dictRaw['event_id'])
121 else:
122 rels.append(eventRelation)
123 if not ioidsSenderRelation:
124 self._evalValue(dict, 'ioids_sender_id', dictRaw['ioids_sender_id'])
125 else:
126 rels.append(ioidsSenderRelation)
127 if not ioidsSourceRelation:
128 self._evalValue(dict, 'ioids_source_id', dictRaw['ioids_source_id'])
129 else:
130 rels.append(ioidsSourceRelation)
131 if not ioidsClassificationRelation:
132 self._evalValue(dict, 'classification_id', dictRaw['classification_id'])
133 else:
134 rels.append(ioidsClassificationRelation)
135 return ['ioids_event', dict, rels]
136
138 dict = {}
139 self._evalValue(dict, 'ioids_relation_type_name', dictRaw['ioids_relation_type_name'])
140 return ['ioids_relation_type', dict, []]
141
142 - def createIoidsRelationEntry(self, dictRaw, eventRelation, ioidsEventRelation, relationTypeRelation):
143 dict = {}
144 rels = []
145 if not eventRelation:
146 self._evalValue(dict, 'event_id', dictRaw['event_id'])
147 else:
148 rels.append(eventRelation)
149 if not ioidsEventRelation:
150 self._evalValue(dict, 'ioids_event_id', dictRaw['ioids_event_id'])
151 else:
152 rels.append(ioidsEventRelation)
153 if not relationTypeRelation:
154 self._evalValue(dict, 'ioids_relation_type_id', dictRaw['ioids_relation_type_id'])
155 else:
156 rels.append(relationTypeRelation)
157 return ['ioids_relation', dict, rels]
158
159
160 - def restructureEntry(self, normalDict, relationName):
161 attributes = {}
162 relations = []
163
164 for key in normalDict:
165 self._evalValue(attributes, key, normalDict[key])
166
167 return [relationName, attributes, relations]
168
169 - def restructureIoidsEventEntry(self, normalDict):
170 return self.restructureEntry(normalDict, 'ioids_event')
171
172
173
174
175
176
177
178