def run(self): # 1. Start Broker broker = Broker() broker.setDaemon(True) broker.start() # 2. Start Senders try: local_logger = LocalLogger( queue_size=4096, config=self._config['sender']['local_logger']) local_logger.setDaemon(True) except Exception as e: print e print "ERROR: Can\'t create local looger" else: broker.register_sender(local_logger) local_logger.start() try: mac_tracker_server = MacTrackerServer( queue_size=4096, config=self._config['sender']['mac_tracker_server'] ) mac_tracker_server.setDaemon(True) except Exception as e: print e print "ERROR: Can\'t create MAC tracker server" else: broker.register_sender(mac_tracker_server) mac_tracker_server.start() # 3. Start Reader try: reader = Reader(broker, config=self._config['pipe_file']) reader.setDaemon(True) except Exception as e: #sys.stdout.write("Error: Can\'t create PipeReader\n") print e print "Error: Can\'t create PipeReader\n" else: reader.start() broker.join() reader.join() #Agent Thread Start Idle Here while (True): time.sleep(1) pass
def run(self): # 1. Start Broker broker = Broker() broker.setDaemon(True) broker.start() # 2. Start Senders try: local_logger = LocalLogger( queue_size=4096, config=self._config['sender']['local_logger']) local_logger.setDaemon(True) except Exception as e: print e print "ERROR: Can\'t create local looger" else: broker.register_sender(local_logger) local_logger.start() try: mac_tracker_server = MacTrackerServer( queue_size=4096, config=self._config['sender']['mac_tracker_server']) mac_tracker_server.setDaemon(True) except Exception as e: print e print "ERROR: Can\'t create MAC tracker server" else: broker.register_sender(mac_tracker_server) mac_tracker_server.start() # 3. Start Reader try: reader = Reader(broker, config=self._config['pipe_file']) reader.setDaemon(True) except Exception as e: #sys.stdout.write("Error: Can\'t create PipeReader\n") print e print "Error: Can\'t create PipeReader\n" else: reader.start() broker.join() reader.join() #Agent Thread Start Idle Here while (True): time.sleep(1) pass
def run(config_file: str, password: str): """Reads config file, initializes configuration and creates Broker object that runs in a separate thread""" logging.info('Starting broker with config') logging.info("Loading config file '%s'", config_file) try: config = ConfigParser() config.read(config_file) except Exception as ex: logging.error("Error reading config: %s, exiting", type(ex)) logging.error(ex.args) return try: eth_section = config['Ethereum'] eth_contracts = config['Contracts'] eth_use = eth_section['use'] eth_server = eth_section[eth_use] ipfs_section = config['IPFS'] ipfs_use = config['IPFS.%s' % ipfs_section['use']] broker = Broker(eth_server=eth_server, abi_path=eth_contracts['abi_path'], pandora=eth_contracts['pandora'], node=eth_contracts['worker_node'], vault=config['Account']['vault'], data_dir=ipfs_section['store_in'], ipfs_server=ipfs_use['server'], ipfs_port=int(ipfs_use['port']), use_hooks=eth_contracts.getboolean('hooks')) except Exception as ex: logging.error("Error reading config: %s, exiting", type(ex)) logging.error(ex.args) return if password is None: password = getpass( 'Please provide password for unlocking private key: ') if broker.connect(password) is False: return # Remove the following line in order to put the app into a daemon mode (running on the background) broker.join()