blob: f8fb0f2c4fb8d502b8c1c174ca2c6be2c894c484 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
from xml.etree import ElementTree
import model
class DataXML(model.Data):
"""Reads network information from a XML file"""
def parse_config(self):
"""Reads and sets up XML config file fields"""
self.data_file = self.config['Storage']['xml_file']
def load_data(self):
"""Parse XML for getting network information"""
root = ElementTree(file=self.data_file).getroot()
for elem in root:
if elem.tag == 'person':
self.add_person(elem)
elif elem.tag == 'domain':
self.add_domain(elem)
elif elem.tag == 'network':
self.add_network(elem)
else:
pass # raise TagNotFoundError
def add_person(self, elem):
"""Adds a new person"""
person = model.Person()
for e in elem:
if e.tag == 'name':
person.name = e.text
elif e.tag == 'surname':
person.surname = e.text
elif e.tag == 'email':
person.email = e.text
else:
person.data[e.tag] = e.text
self.persons[elem.attrib['id']] = person
def add_domain(self, elem):
"""Adds a new domain"""
domain = model.Domain()
for e in elem:
if e.tag == 'name':
domain.name == e.text
else:
domain.data[e.tag] = e.text
self.domains[elem.attrib['id']] = domain
def add_network(self, elem):
"""Adds a new network"""
network = model.Network()
for e in elem:
if e.tag == 'name':
network.name = e.text
elif e.tag == 'domain':
network.domains.append(e.text)
elif e.tag == 'ip_block':
network.ip_blocks.append(e.text)
elif e.tag == 'admin':
network.admins.append(e.text)
else:
network.data[e.tag] = e.text
self.networks[elem.attrib['id']] = network
|