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'