class Network(): """A simple network definition""" def __init__(self): self.name = "" self.domains = [] self.admins = [] self.ip_blocks = [] self.data = {} class Domain(): """A simple domain definition""" def __init__(self): self.name = "" self.admins = [] self.data = {} def add_admin(self, admin): """Add an administrator for this network""" self.admins.append(admin) class Person(): """A simple person definition""" def __init__(self): self.name = "" self.surname = "" self.email = "" self.data = {} class Data(): """Abstract class for storing and getting information""" def __init__(self, config): self.config = config self.networks = [] self.domains = [] self.persons = [] def parse_config(self): """Parse neccesary config params depending on the method used Abstract method""" pass def load_data(self): """Load data from defined source. 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 def get_domains(self): """Return all domains. Common method for all kind of storages.""" if self.networks == None: self.load_data() return self.domains def get_persons(self): """Return all persons. Common method for all kind of storages.""" if self.persons == None: self.load_data() return self.persons