Package ioids :: Module dataengine_tools
[hide private]
[frames] | no frames]

Source Code for Module ioids.dataengine_tools

  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  # "singleton" 
 14  _preXMLDictCreator = None 
15 -def getPreXMLDictCreator():
16 """ 17 Singleton implementation. 18 19 @return: The instance for the data engine 20 @rtype: L{DataEngine} 21 """ 22 global _preXMLDictCreator 23 if not _preXMLDictCreator: 24 _preXMLDictCreator = IoidsPreXMLDictCreator() 25 return _preXMLDictCreator
26
27 -class IoidsPreXMLDictCreator(soapsytools.dataengine_tools.PreXMLDictCreator):
28
29 - def createNewIoidsPeerEntry(self, memberid):
30 dict_peer = {} 31 self._evalValue(dict_peer, 'peer_memberid', memberid) 32 return ['ioids_peer', dict_peer, []]
33
34 - def createNewIoidsSourceEntry(self, memberid):
35 """ 36 Creates the nested list for preparing for XML creation of an IOIDS Source. 37 """ 38 return ['ioids_source', {}, [self.createNewIoidsPeerEntry(memberid)]]
39
40 - def createNewIoidsSenderEntry(self, memberid):
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 # here we go with the known events 77
78 - def createIoidsClassificationEntry(self, dictRaw):
79 dict = {} 80 rels = [] 81 ## self._evalValue(dict, 'classification_id', dictRaw['classification_id']) 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 ## self._evalValue(dict, 'ioids_peer_id', dictRaw['ioids_peer_id']) 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 ## self._evalValue(dict, 'ioids_sender_id', dictRaw['ioids_sender_id']) 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 ## self._evalValue(dict, 'ioids_source_id', dictRaw['ioids_source_id']) 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 ## self._evalValue(dict, 'ioids_event_id', dictRaw['ioids_event_id']) 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
137 - def createIoidsRelationTypeEntry(self, dictRaw):
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] # todo: something her
168
169 - def restructureIoidsEventEntry(self, normalDict):
170 return self.restructureEntry(normalDict, 'ioids_event')
171 ## attributes = {} 172 ## relations = [] 173 ## 174 ## for key in normalDict: 175 ## self._evalValue(attributes, key, normalDict[key]) 176 ## 177 ## return ['ioids_event', attributes, relations] # todo: something here 178