in footmark/connection.py [0:0]
def make_request(self, action, params=None):
conn = client.AcsClient(self.acs_access_key_id, self.acs_secret_access_key, self.region, user_agent=self.user_agent)
if self.security_token:
sts_token_credential = StsTokenCredential(self.access_key, self.secret_key, self.security_token)
conn = client.AcsClient(region_id=self.region, user_agent=self.user_agent, credential=sts_token_credential)
if not conn:
footmark.log.error('%s %s' % ('Null AcsClient ', conn))
raise self.FootmarkClientError('Null AcsClient ', conn)
timeout = 200
delay = 3
while timeout > 0:
try:
request = self.import_request(action)
request.set_accept_format('json')
if params and isinstance(params, dict):
for k, v in list(params.items()):
if hasattr(request, k):
getattr(request, k)(v)
else:
request.add_query_param(k[4:], v)
return conn.do_action_with_exception(request)
except Exception as e:
if str(e.error_code) == "SDK.ServerUnreachable" \
or str(e.message).__contains__("SDK.ServerUnreachable") \
or str(e.message).__contains__("Unable to connect server: timed out"):
time.sleep(delay)
timeout -= delay
continue
raise e
return None