def make_request()

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