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 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