Modifying the HTTP Session

Pynautobot uses a requests.Session object to make HTTP requests to Nautobot. This is stored as http_response, and can be updated as supported by requests. A few examples are provided below:

Headers

Adding or updating headers is done by updating the headers dictionary on the http_response object. The example below shows how to update a Token if it has been cycled.

import os
from pynautobot import api

nautobot = api(
    url='http://localhost:8000',
    token=os.environ["NAUTOBOT_TOKEN"]
)
new_token = f"Token {os.environ['NEW_NAUTOBOT_TOKEN']}"

# Update Session object with new header
nautobot.http_session.headers["Authorization"] = new_token

SSL Verification

Handling SSL Verification is documented here. The below example shows how to disable SSL verification.

import os
from pynautobot import api
nautobot = api(
    url='https://localhost:8000',
    token=os.environ["NAUTOBOT_TOKEN"]
)
nautobot.http_session.verify = False

Timeouts

Changing the timeout behavior is done with Transport Adapters.

import os
from requests.adapters import HTTPAdapter
from pynautobot import api

class TimeoutHTTPAdapter(HTTPAdapter):
    def __init__(self, *args, **kwargs):
        self.timeout = kwargs.get("timeout", 5)
        super().__init__(*args, **kwargs)

    def send(self, request, **kwargs):
        kwargs['timeout'] = self.timeout
        return super().send(request, **kwargs)

nautobot = api(
    url='http://localhost:8000',
    token='d6f4e314a5b5fefd164995169f28ae32d987704f'
)
nautobot.http_session.mount(nautobot.base_url, TimeoutHTTPAdapter())