Beispiel #1
0
 def __init__(self, networking, domain_id):
     self.networking = networking
     self.stats = networking.core.stats
     self.domain_id = domain_id
     self.logger = get_fluent_logger(name="user_message_routing")
     self.registered_users = dict()
     self.insert_notification_list = dict()
     self.queue = queue.Queue()
     th = threading.Thread(target=self._message_loop)
     th.setDaemon(True)
     th.start()
Beispiel #2
0
 def __init__(self, config, core=None):
     self.core = core
     self.stats = core.stats
     self.logger = get_fluent_logger(name="bbc_network")
     self.config = config
     self.domains = dict()
     self.redis_pubsub = None
     self.pubsub = None
     conf = self.config.get_config()['redis']
     pool = redis.ConnectionPool(host=conf['host'], port=conf['port'], db=0)
     th = threading.Thread(target=self._redis_loop, args=(pool, ))
     th.setDaemon(True)
     th.start()
     self.redis_msg = redis.StrictRedis(connection_pool=pool, db=1)
Beispiel #3
0
 def __init__(self,
              host='127.0.0.1',
              port=DEFAULT_CORE_PORT,
              multiq=True,
              id_length=DEFAULT_ID_LEN):
     self.logger = get_fluent_logger(name="bbc_app")
     self.connection = socket.create_connection((host, port))
     self.callback = Callback(log=self.logger)
     self.callback.set_client(self)
     self.use_query_id_based_message_wait = multiq
     self.user_id = None
     self.domain_id = None
     self.query_id = (0).to_bytes(2, 'little')
     self.id_length = id_length
     self.start_receiver_loop()
Beispiel #4
0
 def __init__(self,
              networking=None,
              default_config=None,
              config=None,
              workingdir=None,
              domain_id=None):
     self.networking = networking
     self.core = networking.core
     self.stats = networking.core.stats
     self.logger = get_fluent_logger(name="data_handler")
     self.domain_id = domain_id
     self.domain_id_str = bbclib.convert_id_to_string(domain_id)[:16]
     self.config = config
     self.working_dir = workingdir
     self.db_adaptor = None
     self._db_setup(default_config)
Beispiel #5
0
    def __init__(self,
                 core_port=None,
                 workingdir=".bbc1",
                 configfile=None,
                 ipv6=False,
                 server_start=True):
        self.logger = get_fluent_logger(name="bbc_core")
        self.stats = bbc_stats.BBcStats()
        self.config = BBcConfig(workingdir, configfile)
        conf = self.config.get_config()
        self.ipv6 = ipv6
        self.logger.debug("config = %s" % conf)
        self.test_tx_obj = BBcTransaction()
        self.networking = bbc_network.BBcNetwork(self.config, core=self)
        for domain_id_str in conf['domains'].keys():
            domain_id = bbclib.convert_idstring_to_bytes(domain_id_str)
            c = self.config.get_domain_config(domain_id)
            self.networking.create_domain(domain_id=domain_id, config=c)

        gevent.signal(signal.SIGINT, self.quit_program)
        if server_start:
            self._start_server(core_port)
Beispiel #6
0
sys.path.append("../../")
from bbc_simple.core import bbc_app, bbclib
from bbc_simple.core.message_key_types import KeyType
from bbc_simple.logger.fluent_logger import get_fluent_logger

from argparse import ArgumentParser
from datetime import timedelta
from functools import update_wrapper
from flask import Flask, jsonify, request, make_response, current_app
from flask_cors import CORS

PID_FILE = "/tmp/bbc_admin_app_rest.pid"

http = Flask(__name__)
CORS(http)
flog = get_fluent_logger(name="bbc_app_rest")


def get_id_binary(jsondata, keystr):
    idstr = jsondata.get(keystr, None)
    if idstr is None:
        return None
    return binascii.a2b_hex(idstr)


def get_encoded_bson_txobj(txdat):
    txobj = bbclib.BBcTransaction(deserialize=txdat,
                                  format_type=bbclib.BBcFormat.FORMAT_BSON)
    return base64.b64encode(txobj.serialize_bson(no_header=True)).decode()