Пример #1
0
def exec_docker_command(docker_cmd):
    print(docker_cmd)
    start = time()
    result = exec_cmd(docker_cmd)
    print(f'RESULT: {result}')
    duration = int((time() - start) * 1000)
    print(f"Command finished successfully time={duration}")
def exec_docker_command(docker_cmd) -> str:
    print(docker_cmd)
    start = time.time()
    result = exec_cmd(docker_cmd)
    duration = int((time.time() - start) * 1000)
    print(f"Command finished successfully time={duration}")
    return result
def test_os_user(vertica_container_name, vertica_setup):
    print(f"Test OS user named {vertica_setup['db_user']} ...")
    os_user = exec_cmd(
        f"docker exec -it {vertica_container_name} whoami").rstrip()
    if os_user == vertica_setup['db_user']:
        print('Test passed')
    else:
        print(f"Test failed expected={vertica_setup['db_user']} got={os_user}")
def poll_for_db_service(vertica_setup: config.VerticaSetup):
    service_address = f"{vertica_setup.host}:{vertica_setup.exposed_port}"
    print(f'Waiting on DB service {service_address}')
    sleep_delay = 2
    multiplier = 2
    max_threshold = 20

    while True:
        output = exec_cmd(
            f"docker logs --tail 1 {vertica_setup.vertica_container_name}"
        ).rstrip()
        if output == 'Vertica is now running':
            return

        time.sleep(sleep_delay)
        sleep_delay *= multiplier
        if sleep_delay > max_threshold:
            sleep_delay = max_threshold
Пример #5
0
def poll_for_db(conn_info, vertica_setup, vertica_container_name):
    start = time.time()
    while (time.time() - start) < vertica_setup['db_start_timeout']:
        try:
            output = exec_cmd(
                f"docker logs --tail 1 {vertica_container_name}").rstrip()
            if output == 'Vertica is now running':
                with vertica_python.connect(**conn_info) as conn:
                    cur = conn.cursor('dict')
                    cur.execute("select 1")
            else:
                time.sleep(10)
                print(
                    f"DB is not yet ready, last msg from container: {output}")
                continue
        except vertica_python.errors.ConnectionError:
            duration = int((time.time() - start) * 1000)
            time.sleep(10)
            print(f"DB is not yet ready, duration={duration}, waiting ...")
        else:
            return True
    return False
 def test_os_user(self, db: config.DbData):
     os_user = cmd_utils.exec_cmd(f"docker exec -i {db.vertica_setup.vertica_container_name} whoami").rstrip()
     assert os_user == db.vertica_setup.db_user