Я вызываю новый объект для управления ресурсом Azure и использую пакеты Python Azure.При вызове я получаю сообщение об ошибке превышения максимальной глубины, однако, если я перебираю код в оболочке Python, я не получаю эту проблему.Ниже приведен метод init
class WindowsDeployer(object):
def __init__(self, params):
try:
print("executes class init")
self.subscription_id = '{SUBSCRIPTION-ID}'
self.vmName = params["vmName"]
self.location = params["location"]
self.resource_group = "{}-rg".format(self.vmName)
print("sets variables")
# Error is in the below snippet, while calling ServicePrincipalCredentials
self.credentials = ServicePrincipalCredentials(
client_id='{CLIENT-ID}',
secret='{SECRET}',
tenant='{TENANT-ID}'
)
# Does not reach here...
print("creates a credential")
self.client = ResourceManagementClient(self.credentials, self.subscription_id)
Вместо этого он выходит со следующим сообщением: maximum recursion depth exceeded
Я попытался увеличить предел рекурсии до 10000, и этоне решил проблему.
Замораживание пипсов: azure==4.0.0 azure-common==1.1.4 azure-mgmt==4.0.0
Трассировка:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/flask/app.py", line 1985, in wsgi_app
response = self.handle_exception(e)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/flask/app.py", line 1540, in handle_exception
reraise(exc_type, exc_value, tb)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
raise value
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/flask/app.py", line 1982, in wsgi_app
response = self.full_dispatch_request()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/flask/app.py", line 1614, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/flask/app.py", line 1517, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
raise value
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/flask/app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/flask/app.py", line 1598, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/Users/valana/Projects/wolfinterface/Code/wolfinterface/app.py", line 87, in wrap
return f(*args, **kwargs)
File "/Users/valana/Projects/wolfinterface/Code/wolfinterface/app.py", line 134, in provision
return provision_page(request, session)
File "/Users/valana/Projects/wolfinterface/Code/wolfinterface/provision.py", line 104, in provision_page
deployer = WindowsDeployer(json.loads(params))
File "/Users/valana/Projects/wolfinterface/Code/wolfinterface/AzureProvision.py", line 30, in __init__
tenant='{TENNANT-ID}'
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/msrestazure/azure_active_directory.py", line 453, in __init__
self.set_token()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/msrestazure/azure_active_directory.py", line 478, in set_token
proxies=self.proxies)
File "/Users/valana/Library/Python/3.6/lib/python/site-packages/requests_oauthlib/oauth2_session.py", line 221, in fetch_token
verify=verify, proxies=proxies)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/sessions.py", line 555, in post
return self.request('POST', url, data=data, json=json, **kwargs)
File "/Users/valana/Library/Python/3.6/lib/python/site-packages/requests_oauthlib/oauth2_session.py", line 360, in request
headers=headers, data=data, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/sessions.py", line 508, in request
resp = self.send(prep, **send_kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/sessions.py", line 618, in send
r = adapter.send(request, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/adapters.py", line 440, in send
timeout=timeout
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/urllib3/connectionpool.py", line 601, in urlopen
chunked=chunked)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/urllib3/connectionpool.py", line 346, in _make_request
self._validate_conn(conn)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/urllib3/connectionpool.py", line 850, in _validate_conn
conn.connect()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/urllib3/connection.py", line 314, in connect
cert_reqs=resolve_cert_reqs(self.cert_reqs),
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/urllib3/util/ssl_.py", line 269, in create_urllib3_context
context.options |= options
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py", line 465, in options
super(SSLContext, SSLContext).options.__set__(self, value)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py", line 465, in options
super(SSLContext, SSLContext).options.__set__(self, value)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py", line 465, in options
Последняя строка продолжается до тех пор, пока не достигнет предела рекурсии