def requests_helper_imds()

in src/deep_learning_container.py [0:0]


def requests_helper_imds(url, token=None):
    """
    Requests to get instance metadata using imdsv1 and imdsv2
    :param url: str, url to get the request
    :param token: str, token is needed to use imdsv2
    """
    response_text = None
    response = None
    headers = None
    if token:
        headers = {"X-aws-ec2-metadata-token": token}
    timeout = 1
    try:
        while timeout <= 3:
            if headers:
                response = requests.get(url, headers=headers, timeout=timeout)
            else:
                response = requests.get(url, timeout=timeout)
            if response:
                break
            timeout += 1

    except requests.exceptions.RequestException as e:
        logging.error("Request exception: {}".format(e))

    if response is not None and not (400 <= response.status_code < 600):
        response_text = response.text

    return response_text