diff options
Diffstat (limited to 'model.py')
-rw-r--r-- | model.py | 47 |
1 files changed, 23 insertions, 24 deletions
@@ -1,5 +1,3 @@ -from xml.etree.ElementTree import ElementTree - class Network(): """A simple network definition""" @@ -31,19 +29,25 @@ class Person(): self.email = email class Data(): - """Abstract class for storing anf getting information""" + """Abstract class for storing and getting information""" def __init__(self, config): - self.networks = [] self.config = config + self.networks = [] + self.domains = [] + self.persons = [] def parse_config(self): - """Abstract method""" + """Parse neccesary config params depending on the method used + + Abstract method""" pass def load_data(self): - """Abstract method""" + """Load data from defined source. + + Abstract method""" pass @@ -55,23 +59,18 @@ class Data(): return self.networks -class DataXML(Data): - """Reads network information from a XML file""" - - def parse_config(): - """Reads and sets up XML config file fields""" + def get_domains(self): + """Return all domains. Common method for all kind of storages.""" - self.data_file = self.config['Storage']['xml_file'] + if self.networks == None: + self.load_data() + + return self.domains + + def get_persons(self): + """Return all persons. Common method for all kind of storages.""" - def load_data(self): - """Parse XML for getting network information""" # Ugly implementation. Beautify. - root = ElementTree(file=self.data_file).getroot() - for elem in root: - network = WhoisNetwork(elem.attrib['name']) - for e in elem: - if e.tag == 'ip_block': - network.ip_blocks.append(e.text) - else: - network.data[e.tag] = e.text - - self.networks.append(network) + if self.persons == None: + self.load_data() + + return self.persons |