Django Не удалось установить новое соединение <urllib3.connection.HTTPSConnection>

Я использую Django 2.2 и у меня есть api, который подключен к двум серверам Esx.

  • a = 10.131.171.80
  • b = 10.131.171.90

все работает отлично, за исключением того, что во время тестирования, когда я добавляю третий фальшивый сервер, он сообщает мне, что сервер не отвечает, потому что истекло время соединения. Таким образом, ошибка обрабатывается, и у меня нет желтой страницы от Django.

За исключением того, что при входе на четвертый сервер, на этот раз частный ip, например 172.16.15.15, у меня возникает ошибка Max retries exceeded NewConnectionError(<urllib3.connection.HTTPSConnection'>

Но когда я использую публичный IP, например 1.1.1.1, я не получаю никакой ошибки.

Хотелось бы лучше обрабатывать ошибку, когда кто-то вводит частный IP.

Мой полный traceback

Вот мой файл api.py, который подключается к серверам Esx.

import requests
import os
import json
from requests.packages.urllib3.exceptions import InsecureRequestWarning


requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
os.environ['REQUESTS_CA_BUNDLE'] = os.path.join('/etc/ssl/certs/')
req = requests.Session()
req.verify = False


class VmwareApi:
    def __init__(self):
        self.ip = ""
        self.user = ""
        self.password = ""
        self.arg1 = ""
        self.ses = ""
        self.params = ""

    def session(self):
        try:
            a = req.post('https://' + self.ip + '/api/session',
                         auth=(self.user, self.password),
                         timeout=1, verify=False)
            self.ses = str(a.json())
        except requests.exceptions.Timeout:
            return 'ConnectTimeoutError'
        return req

    def param_loader(self):
        if self.params:
            self.params = json.loads(self.params)

    def vapirequestget(self):
        try:
            VmwareApi.param_loader(self)
            myreq = req.get('https://' + self.ip + self.arg1,
                            params=self.params, verify=False,
                            headers={"vmware-api-session-id": self.ses},
                            timeout=1)
            return myreq
        except requests.exceptions.Timeout:
            return 'ConnectTimeoutError'
Вернуться на верх