Example #1
0
def main(log_level, advertise_host, port, database, zap, curvezmq, curve_dir,
         key_id):
    logging.config.dictConfig(get_default_logger_settings(level=log_level))
    LOG.info("Python Platform %s", platform.python_implementation())
    kwargs = {
        'bind_address': f'tcp://{advertise_host}:{port}',
        'database': database,
        'curve_dir': curve_dir,
        'use_zap_auth': zap,
        'use_encryption': curvezmq,
        'server_curve_id': key_id
    }
    LOG.info('Args %s', pformat(kwargs))
    server = SQLiteServer(**kwargs)
    server.start()
def test_backup_exception():

    if not (sys.version_info.major == 3 and sys.version_info.minor >= 7):
        with pytest.raises(SQLiteRxBackUpError):
            server = SQLiteServer(bind_address="tcp://127.0.0.1:5002",
                                  database=":memory:",
                                  backup_database='backup.db')
Example #3
0
def curvezmq_client():
    with get_server_auth_files() as auth_files:
        curve_dir, server_key_id, server_public_key, server_private_key = auth_files
        client_key_id = "id_client_{}_curve".format(socket.gethostname())
        key_generator = KeyGenerator(destination_dir=curve_dir,
                                     key_id=client_key_id)
        key_generator.generate()
        client_public_key = os.path.join(curve_dir,
                                         "{}.key".format(client_key_id))
        client_private_key = os.path.join(
            curve_dir, "{}.key_secret".format(client_key_id))
        shutil.copyfile(
            client_public_key,
            os.path.join(curve_dir, 'authorized_clients',
                         "{}.key".format(client_key_id)))
        auth_config = {sqlite3.SQLITE_OK: {sqlite3.SQLITE_DROP_TABLE}}
        server = SQLiteServer(bind_address="tcp://127.0.0.1:5002",
                              use_encryption=True,
                              curve_dir=curve_dir,
                              server_curve_id=server_key_id,
                              auth_config=auth_config,
                              database=":memory:")

        client = SQLiteClient(connect_address="tcp://127.0.0.1:5002",
                              server_curve_id=server_key_id,
                              client_curve_id=client_key_id,
                              curve_dir=curve_dir,
                              use_encryption=True)
        server.start()
        LOG.info("Started Test SQLiteServer")
        yield client
        os.kill(server.pid, signal.SIGINT)
        server.join()
        client.shutdown()
Example #4
0
def plain_client():
    auth_config = {
        sqlite3.SQLITE_OK: {
            sqlite3.SQLITE_DROP_TABLE
        }
    }
    server = SQLiteServer(bind_address="tcp://127.0.0.1:5003",
                          database=":memory:",
                          auth_config=auth_config)
    
    # server.daemon = True

    client = SQLiteClient(connect_address="tcp://127.0.0.1:5003")

    server.start()
    # server.join()
    LOG.info("Started Test SQLiteServer")
    yield client
    if platform.system().lower() == 'windows':
        os.system("taskkill  /F /pid "+str(server.pid))
    else:
        os.kill(server.pid, signal.SIGINT)
    server.join()
    client.cleanup()
    
Example #5
0
def plain_client():
    auth_config = {sqlite3.SQLITE_OK: {sqlite3.SQLITE_DROP_TABLE}}
    server = SQLiteServer(bind_address="tcp://127.0.0.1:5003",
                          database=":memory:",
                          auth_config=auth_config)

    client = SQLiteClient(connect_address="tcp://127.0.0.1:5003")

    server.start()
    LOG.info("Started Test SQLiteServer")
    yield client
    os.kill(server.pid, signal.SIGINT)
    server.join()
    client.shutdown()
Example #6
0
def main():

    # database is a path-like object giving the pathname
    # of the database file to be opened.

    # You can use ":memory:" to open a database connection to a database
    # that resides in RAM instead of on disk

    logging.config.dictConfig(get_default_logger_settings(logging.DEBUG))
    server = SQLiteServer(database=":memory:",
                          bind_address="tcp://127.0.0.1:5000")
    try:
        server.start()
    except KeyboardInterrupt:
        server.stop()
Example #7
0
def plain_client():

    auth_config = {sqlite3.SQLITE_OK: {sqlite3.SQLITE_DROP_TABLE}}
    with tempfile.TemporaryDirectory() as base_dir:

        main_db_file = os.path.join(base_dir, 'main.db')
        backup_db_file = os.path.join(base_dir, 'backup.db')

        if (sys.version_info.major == 3 and sys.version_info.minor >= 7):
            server = SQLiteServer(bind_address="tcp://127.0.0.1:5003",
                                  database=main_db_file,
                                  auth_config=auth_config,
                                  backup_database=backup_db_file,
                                  backup_interval=1)
        else:
            server = SQLiteServer(bind_address="tcp://127.0.0.1:5003",
                                  database=main_db_file,
                                  auth_config=auth_config)

        client = SQLiteClient(connect_address="tcp://127.0.0.1:5003")

        event = backup_event(client=client, backup_database=backup_db_file)

        server.start()

        LOG.info("Started Test SQLiteServer")

        yield event

        if platform.system().lower() == 'windows':
            os.system("taskkill  /F /pid " + str(server.pid))
        else:
            os.kill(server.pid, signal.SIGINT)

        server.join()
        client.cleanup()
Example #8
0
def main(log_level, advertise_host, port, database, zap, curvezmq, curve_dir,
         key_id, backup_database, backup_interval):
    logging.config.dictConfig(get_default_logger_settings(level=log_level))
    LOG.info("Python Platform %s", platform.python_implementation())
    kwargs = {
        'bind_address': f'tcp://{advertise_host}:{port}',
        'database': database,
        'curve_dir': curve_dir,
        'use_zap_auth': zap,
        'use_encryption': curvezmq,
        'server_curve_id': key_id,
        'backup_database': backup_database,
        'backup_interval': backup_interval
    }
    LOG.info('Args %s', pformat(kwargs))

    # def signal_handler(sig, frame):
    #    sys.exit(1)

    # signal.signal(signal.SIGTERM, signal_handler)

    server = SQLiteServer(**kwargs)
    server.start()
    server.join()