Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
    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
Ejemplo n.º 3
0
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()