Esempio n. 1
0
    def __init__(self):
        Overlay.__init__(self, self.__class__.__name__)
        self._vertices = {}
        self._edges = []

        # Get a logger
        self._log = Logger.get_instance()
Esempio n. 2
0
 def __init__(self, name):
     # The logger
     self._log = Logger.get_instance()
     # The name of the service
     self._name = name
     # self._overlay = None
     self._alternatives = []
Esempio n. 3
0
 def __init__(self):
     Thread.__init__(self)
     # This extractor is a observable object, due to the fact that upon extraction finishes, other actions will be
     # undertaken
     Observable.__init__(self)
     # Logger
     self._log = Logger.get_instance()
Esempio n. 4
0
    def __init__(self, topology, service, environment, alternative):
        Thread.__init__(self)
        """ Utils objects """
        # Get the object for filesystem handling
        self._fs = FileSystem.get_instance()
        # Logger
        self._log = Logger.get_instance()

        # Root simulation path (simulation/)
        self._root_simulation_path = self._fs.get_simulations_folder()
        # Specific simulation path (simulation/service_name/timestamp/)
        self._simulation_path = None

        # The topology
        self._topology = topology
        # Service to evaluate
        self._service = service
        # The environment in which this simulation is running
        self._environment = environment
        # The alternative of the service to evaluate
        self._alternative = alternative
        # The metrics to evaluate during this simulation
        self._metrics = alternative.get_metrics()
        # Extractor count. This variable is used to keep track of how many extractors notified this object
        self._extractor_number = len(self._metrics)
        self._extractor_count = 0
        # Initialize the simulation
        self._init()
 def __init__(self, overlay):
     # Logger
     self._log = Logger.get_instance()
     # The overlay based on which the topology is created
     self._overlay = overlay
     # Create a Mininet instance
     self._net = Mininet(controller=None, switch=CustomSwitch, listenPort=6634, inNamespace=False)
     # Add controller to the network
     self._net.addController('c0', controller=RemoteController, ip='127.0.0.1', port=6633)
Esempio n. 6
0
 def __init__(self):
     Overlay.__init__(self, self.__class__.__name__)
     # Logger
     self._log = Logger.get_instance()
     # Internal data structures
     self._switches = {}
     self._hosts = {}
     # This is a map<device, list of all connected devices>; it is an OrderedDict to preserve the mapping between
     # host-pe connections.
     self._links = [] #OrderedDict()
Esempio n. 7
0
 def __init__(self, controller_path, controller_cmd):
     # Get the framework file system handler
     self._fs = FileSystem.get_instance()
     # Logger
     self._log = Logger.get_instance()
     # Controller's parameters
     self._path = controller_path
     self._cmd = controller_cmd
     # The controller process
     self._controller_process = None
Esempio n. 8
0
    def __init__(self, topology):
        self._name = None
        self._overlays = {}
        self._current_overlay = None
        self._topology_as_graphml = topology

        # Get a logger
        self._log = Logger.get_instance()

        # When create a Topology object, add it a Topology Overlay by default.
        self._add_topology_overlay()
Esempio n. 9
0
 def __init__(self):
     # Logger
     self._log = Logger.get_instance()
     # ConfigObj reference
     self._parser = None
     # System configuration parser
     self._system_parser = SystemParser()
     # Service parser factory
     self._factory_service_parser = FactoryServiceParser.get_instance()
     # The service specific parser
     self._service_parser = None
     # The factories for the creation of extractors and collectors
     self._factory_extractor = FactoryExtractor.get_instance()
     self._factory_collector = FactoryCollector.get_instance()
     # All services expressed in the configuration file. Each service is an instance of model.service.Service
     self._services = []
Esempio n. 10
0
    def __init__(self):
        # Get a logger
        self._log = Logger.get_instance()
        # Create the parser
        self._parser = Parser()
        # The topology
        self._topology = None
        # Factory loader. For each alternative, a new environment is loaded in accord with the alternative itself.
        self._loader = EnvironmentLoader()

        # ArgParse
        self._arg = argparse.ArgumentParser(description='Comparison Framework')
        self._arg.add_argument('-c',
                               '--config-file',
                               required=True,
                               help='The framework configuration file.')
        self._arg.add_argument('-t',
                               '--topology',
                               required=True,
                               help='The topology on which framework runs. It must be a GraphML file.')
Esempio n. 11
0
 def __init__(self):
     # Reference to the file to parse
     self._parser = XmlParser.parse('conf/system.xml')
     # Logger
     self._log = Logger.get_instance()
     # All services. This is a map<name, parser_adapter>
     self._services = {}
     # Mapping between services and alternatives. This is a map<service_name, list(alternative_name)>
     self._service_to_alternatives = {}
     # All alternatives. This is a map<name, alternative_adapter>
     self._alternatives = {}
     # All metrics. This is a list
     self._metrics = []
     # Mapping between metric and collector adapter. This is a map<metric_name, collector_adapter_name>
     self._metric_to_collector = {}
     # Mapping between metric and extractor adapter. This is a map<metric_name, extractor_adapter_name>
     self._metric_to_extractor = {}
     # All environments. This is a map<env_name, adapter>
     self._environments = {}
     # Mapping between environments and alternatives. This is a map<env_name, list(alternative_name)>
     self._environment_to_alternatives = {}
Esempio n. 12
0
def main(nbargs=()):
    parser = argparse.ArgumentParser()

    parser.add_argument("--exp-name",
                        default="default",
                        help="Name of the experiment")

    parser.add_argument("--logs-dir",
                        default="logs",
                        help="Directory for storing logs")

    parser.add_argument("--config-file",
                        default=None,
                        help="Path to config.yml")

    try:
        _ = get_ipython().__class__.__name__
        args = parser.parse_args(nbargs)
    except NameError:
        args = parser.parse_args()

    cfg = load_config(args)

    logger = Logger.get_instance(cfg)

    logger.info("Configuration")
    logger.info("-" * 50)
    for key, value in cfg.items():
        logger.info("{:25s}:\t{:s}".format(str(key), str(value)))
    logger.info("-" * 50)

    for i in tqdm(range(5)):
        logger.info("Info message {:d}".format(i))
        time.sleep(0.5)

    return cfg
Esempio n. 13
0
 def __init__(self):
     # Logger
     self._log = Logger.get_instance()
     # The reference to the extractor object
     self._extractor = None
 def __init__(self, mininet_topology):
     Thread.__init__(self)
     # Logger
     self._log = Logger.get_instance()
     # The reference to the topology executing into mininet
     self._mininet_topology = mininet_topology
Esempio n. 15
0
 def __init__(self, name):
     # Logger
     self._log = Logger.get_instance()
     # The name of the alternative
     self._name = name
Esempio n. 16
0
 def __init__(self):
     Thread.__init__(self)
     # Logger
     self._log = Logger.get_instance()
Esempio n. 17
0
 def __init__(self, service_name):
     # Logger
     self._log = Logger.get_instance()
     # The service's name
     self._service_name = service_name
Esempio n. 18
0
#! /usr/bin/env python

from framework import ComparisonFramework
from utils.log import Logger

if __name__ == '__main__':
    log = Logger.get_instance()
    framework = ComparisonFramework()
    log.info('Runner', 'Framework starts.')
    framework.run()
Esempio n. 19
0
 def __init__(self):
     # FileSystem handler
     self._fs = FileSystem.get_instance()
     # Logger
     self._log = Logger.get_instance()
Esempio n. 20
0
 def __init__(self):
     # The reference to the FileSystem object, useful for writing configuration in tmp folder
     self._fs = FileSystem.get_instance()
     # Logger
     self._log = Logger.get_instance()