예제 #1
0
    def _request(self, method, params=None, use_login_repeat=None):
        if not isinstance(method, unicode_string):
            method = method.decode('ascii')

        if use_login_repeat is None:
            use_login_repeat = (method not in ('logout', 'authenticate'))
        attempts_left = self.config['login_repeat'] if use_login_repeat else 0

        data = None

        while data is None:
            try:
                data = rpc_request(self.config, method, params or {})
            except errors.NotLoggedInError:
                if attempts_left > 0:
                    self.logout(suppress_errors=True)
                    self.login()
                else:
                    raise errors.NotLoggedInError(
                        'Tried to login several times, failed. Original method'
                        ' was ' + method)
            else:
                return data

            attempts_left -= 1  # new round!
예제 #2
0
    def _request(self, method, params=None, use_login_repeat=None):
        if not isinstance(method, unicode_string):
            method = method.decode("ascii")

        if use_login_repeat is None:
            use_login_repeat = method not in ("logout", "authenticate")
        attempts_left = self.config["login_repeat"] if use_login_repeat else 0

        data = None

        while data is None:
            try:
                data = rpc_request(self.config, method, params or {})
            except errors.NotLoggedInError:
                if attempts_left > 0:
                    self.logout(suppress_errors=True)
                    self.login()
                else:
                    raise errors.NotLoggedInError(
                        "Tried to login several times, failed. Original method" " was " + method
                    )
            else:
                log("debug", "RETURN:" + str(data))
                return data

            attempts_left -= 1  # new round!
예제 #3
0
    def _request(self, method, params=None, use_login_repeat=None):
        if not isinstance(method, unicode_string):
            method = method.decode('ascii')

        if use_login_repeat is None:
            use_login_repeat = (method not in ('logout', 'authenticate'))
        attempts_left = self.config['login_repeat'] if use_login_repeat else 0

        data = None

        while data is None:
            try:
                data = rpc_request(self.config, method, params or {})
            except errors.NotLoggedInError:
                if attempts_left > 0:
                    self.logout(suppress_errors=True)
                    self.login()
                else:
                    raise errors.NotLoggedInError(
                        'Tried to login several times, failed. Original method'
                        ' was ' + method)
            else:
                return data

            attempts_left -= 1  # new round!