From 588a241bebfc477ef117c3f87e5c405edbe5bec5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Benencia?= Date: Thu, 2 Aug 2012 13:18:26 -0300 Subject: Updated model classes --- data.py | 56 ---------------------------------------------- model.py | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+), 56 deletions(-) delete mode 100644 data.py create mode 100644 model.py diff --git a/data.py b/data.py deleted file mode 100644 index 4b48e19..0000000 --- a/data.py +++ /dev/null @@ -1,56 +0,0 @@ -from xml.etree.ElementTree import ElementTree - -class Network(): - """A simple network definition""" - - def __init__(self, name): - self.name = name - self.domain = None - self.ip_blocks = [] - self.data = {} - -class Data(): - """Abstract class for storing network information""" - - def __init__(self, config): - self.networks = [] - self.config = config - - 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 DataXML(Data): - """Reads network information from a XML file""" - - def parse_config(): - """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']) - 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) diff --git a/model.py b/model.py new file mode 100644 index 0000000..5894e05 --- /dev/null +++ b/model.py @@ -0,0 +1,77 @@ +from xml.etree.ElementTree import ElementTree + +class Network(): + """A simple network definition""" + + def __init__(self, name): + self.name = name + self.domain = [] + self.ip_blocks = [] + self.data = {} + +class Domain(): + """A simple domain definition""" + + def __init__(self, name, domain): + self.name = name + self.domain = domain + self.admins = [] + + def add_admin(self, admin): + """Add an administrator for this network""" + + self.admins.append(admin) + +class Person(): + """A simple person definition""" + + def __init__(self, name, surname, email): + self.name = name + self.surname = surname + self.email = email + +class Data(): + """Abstract class for storing anf getting information""" + + def __init__(self, config): + self.networks = [] + self.config = config + + 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 DataXML(Data): + """Reads network information from a XML file""" + + def parse_config(): + """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']) + 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) -- cgit v1.2.3