def _get_session()

in src/hpc/autoscale/ccbindings/legacy.py [0:0]


def _get_session(config: Dict) -> requests.sessions.Session:
    try:
        retries = 3
        while retries > 0:
            try:
                if not config["verify_certificates"]:
                    urllib3.disable_warnings(InsecureRequestWarning)

                s = requests.session()
                s.auth = (config["username"], config["password"])
                # TODO apparently this does nothing...
                # s.timeout = config["cycleserver"]["timeout"]
                s.verify = config[
                    "verify_certificates"
                ]  # Should we auto-accept unrecognized certs?
                s.headers = CaseInsensitiveDict(
                    {"X-Cycle-Client-Version": "%s-cli:%s" % ("hpc-autoscale", "0.0.0")}
                )

                return s
            except requests.exceptions.SSLError:
                retries = retries - 1
                if retries < 1:
                    raise
    except ImportError:
        raise

    raise AssertionError(
        "Could not connect to CycleCloud. Please see the log for more details."
    )