Пример #1
0
    def testAuthentication(self):
        """
        Tests the parameters the user has provided in the ui to see if they are correct
        """
        try:
            self.response = self.session.get(self.url,
                                             timeout=120,
                                             verify=False)
        except Exception:
            pass

        try:
            self._get_auth()
            if not self.response:
                raise HTTPError(404, 'Not Found')

            self.response.raise_for_status()
            if self.auth:
                return True, 'Success: Connected and Authenticated'
            else:
                return False, 'Failed to authenticate with {0}'.format(
                    self.name)
        except Exception as error:
            helpers.handle_requests_exception(error)
            return False, '{0}'.format(error)
Пример #2
0
    def _get_auth(self):
        client = PutioClient(self.password)
        try:
            client.Account.info()
        except ClientError as error:
            helpers.handle_requests_exception(error)
            self.auth = None
        else:
            self.auth = client

        return self.auth
Пример #3
0
    def _get_auth(self):
        """
        Makes a request to the token url to get a CSRF token
        """
        try:
            self.response = self.session.get(urljoin(self.url, 'token.html'), verify=False)
            self.response.raise_for_status()
            self.auth = re.findall("<div.*?>(.*?)</", self.response.text)[0]
        except Exception as error:
            helpers.handle_requests_exception(error)
            self.auth = None

        return self.auth
Пример #4
0
    def _request(self,
                 method='get',
                 params=None,
                 data=None,
                 files=None,
                 cookies=None):
        """
        Makes the actual request for the client, for everything except auth
        """

        if time.time() > self.last_time + 1800 or not self.auth:
            self.last_time = time.time()
            self._get_auth()

        log_string = '{0}: Requested a {1} connection to url {2}'.format(
            self.name, method.upper(), self.url)

        if params:
            log_string += '?{0}'.format(urlencode(params))

        if data:
            log_string += ' and data: {0}{1}'.format(
                str(data)[0:99], '...' if len(str(data)) > 100 else '')

        logger.debug(log_string)

        if not (self.auth or self._get_auth()):
            logger.warning('{0}: Authentication Failed'.format(self.name))
            return False

        try:
            self.response = self.session.request(method.upper(),
                                                 self.url,
                                                 params=params,
                                                 data=data,
                                                 files=files,
                                                 cookies=cookies,
                                                 timeout=120,
                                                 verify=False)

            self.response.raise_for_status()
        except Exception as error:
            helpers.handle_requests_exception(error)
            return False

        logger.debug('{0}: Response to the {1} request is {2}'.format(
            self.name, method.upper(), self.response.text))

        return True