def __exec_request_from_container()

in wadebug/wa_actions/curl_utils.py [0:0]


def __exec_request_from_container(container, exec_params, ssl_cert_path=None):
    try:
        exec_result = container.exec_run(exec_params)

        exit_code = exec_result[0]  # https://ec.haxx.se/usingcurl-returns.html
        [http_code, response_time] = exec_result[1].decode().split(":")

        if exit_code == CURLExitCode.OK:
            if int(http_code) != 200:
                return [CURLTestResult.HTTP_STATUS_NOT_OK, None]
            return CURLTestResult.OK, float(response_time)
        elif exit_code == CURLExitCode.TIMEOUT:
            return CURLTestResult.CONNECTION_TIMEOUT, None
        elif exit_code == CURLExitCode.SSL_CERT_UNKNOWN:
            return CURLTestResult.SSL_CERT_UNKNOWN, None

        __clean_up_cert_file_from_container(container, ssl_cert_path)
    except Exception:
        pass

    return CURLTestResult.CONNECTION_ERROR, None