Example #1
0
 def test_entity_loader(self):
     utils.load_converter('forwarder',
                          base_class_type=Transceiver,
                          *(),
                          **{
                              'frontend': '0',
                              'backend': '1',
                              'kind': 'forwarder',
                              'name': 'DUT'
                          })
     utils.load_converter('example_converter',
                          base_class_type=Transceiver,
                          *(),
                          **{
                              'frontend': '0',
                              'backend': '1',
                              'kind': 'example_converter',
                              'name': 'DUT'
                          })
     utils.load_receiver('example_receiver',
                         base_class_type=Receiver,
                         *(),
                         **{
                             'frontend': '0',
                             'kind': 'example_receiver',
                             'name': 'DUT'
                         })
     utils.load_producer_sim('example_producer_sim',
                             base_class_type=producer_sim.ProducerSim,
                             *(),
                             **{
                                 'backend': '0',
                                 'kind': 'example_producer_sim',
                                 'name': 'DUT'
                             })
Example #2
0
 def test_entity_loader(self):
     utils.load_converter('forwarder', base_class_type=Transceiver, *(), **{'frontend': '0',
                                                                            'backend': '1',
                                                                            'kind': 'forwarder',
                                                                            'name': 'DUT'})
     utils.load_converter('example_converter', base_class_type=Transceiver, *(), **{'frontend': '0',
                                                                                    'backend': '1',
                                                                                    'kind': 'example_converter',
                                                                                    'name': 'DUT'})
     utils.load_receiver('example_receiver', base_class_type=Receiver, *(), **{'frontend': '0',
                                                                               'kind': 'example_receiver',
                                                                               'name': 'DUT'})
     utils.load_producer_sim('example_producer_sim', base_class_type=producer_sim.ProducerSim, *(), **{'backend': '0',
                                                                                                       'kind': 'example_producer_sim',
                                                                                                       'name': 'DUT'})
    def start(self):
        try:
            self.configuration['converter']
        except KeyError:
            logging.info('No converters defined in config file')
            logging.info('Close converter manager')
            return
        logging.info('Starting %d converters', len(self.configuration['converter']))
        converters, process_infos = [], []

        for (converter_name, converter_settings) in self.configuration['converter'].items():
            converter_settings['name'] = converter_name
            converter = utils.load_converter(converter_settings['kind'], base_class_type=Transceiver, *(), **converter_settings)
            converter.start()
            process_infos.append((converter_name, psutil.Process(converter.ident)))
            converters.append(converter)
        try:
            while True:
                self._info_output(process_infos)
                time.sleep(1)
        except KeyboardInterrupt:
            logging.info('CRTL-C pressed, shutting down %d converters', len(self.configuration['converter']))
            for converter in converters:
                converter.shutdown()

        for converter in converters:
            converter.join()
        logging.info('Close converter manager')