diff options
Diffstat (limited to 'data.py')
-rw-r--r-- | data.py | 30 |
1 files changed, 24 insertions, 6 deletions
@@ -1,31 +1,49 @@ from xml.etree.ElementTree import ElementTree -class WhoisNetwork(): +class Network(): + """A simple network definition""" + def __init__(self, name): self.name = name self.domain = None self.ip_blocks = [] self.data = {} -class WhoisData(): +class Data(): + """Abstract class for storing network information""" + def __init__(self, config): self.networks = [] self.config = config - def parse_config(self): pass - def load_data(self): pass + def parse_config(self): + """Abstract method""" + + pass + + def load_data(self): + """Abstract method""" + + pass def get_networks(self): + """Return all networks. Common method for all kind of storages.""" + if self.networks == None: self.load_data() return self.networks -class WhoisDataXML(WhoisData): +class DataXML(Data): + """Reads network information from a XML file""" + def parse_config(): - self.data_file = self.config.get('Storage', 'xml_file') + """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""" # Ugly implementation. Beautify. root = ElementTree(file=self.data_file).getroot() for elem in root: network = WhoisNetwork(elem.attrib['name']) |