Пример #1
0
    def _get_available_host_retry(self):
        def notify_retry(exc_type, exc_val, exc_tb):
            if self._on_retry:
                self._on_retry(self, exc_type, exc_val, exc_tb,
                               dict(config=self._configuration_input))

        return retry(
            self._get_available_host, self.max_attempts, self.min_retry_secs,
            self.max_retry_secs, on_retry=notify_retry)
Пример #2
0
    def _get_available_host_retry(self):
        def notify_retry(exc_type, exc_val, exc_tb):
            if self._on_retry:
                self._on_retry(self, exc_type, exc_val, exc_tb,
                               dict(config=self._configuration_input))

        return retry(self._get_available_host,
                     self.max_attempts,
                     self.min_retry_secs,
                     self.max_retry_secs,
                     on_retry=notify_retry)
Пример #3
0
    def _rest_retry(self,
                    method,
                    resource,
                    query_id=None,
                    subcategory=None,
                    second_query_id=None,
                    data=None,
                    dont_retry=None,
                    **options):
        """Invokes the specified HTTP method, with retries if they are specified in the configuration
        :return: an instance of OpenCGAResponseList"""

        query_ids_str = self._get_query_id_str(query_id)

        def exec_retry():
            return execute(host=self._cfg.host,
                           version=self._cfg.version,
                           sid=self.session_id,
                           category=self._category,
                           subcategory=subcategory,
                           method=method,
                           query_id=query_ids_str,
                           second_query_id=second_query_id,
                           resource=resource,
                           data=data,
                           options=options)

        def notify_retry(exc_type, exc_val, exc_tb):
            if self.on_retry:
                self.on_retry(
                    self, exc_type, exc_val, exc_tb,
                    dict(method=method,
                         resource=resource,
                         query_id=query_id,
                         category=self._category,
                         subcategory=subcategory,
                         second_query_id=second_query_id,
                         data=data,
                         options=options))

        response = retry(exec_retry,
                         self._cfg.max_attempts,
                         self._cfg.min_retry_secs,
                         self._cfg.max_retry_secs,
                         login_handler=self._client_login_handler
                         if self.login_handler else None,
                         on_retry=notify_retry,
                         dont_retry=dont_retry)

        if self.auto_refresh:
            self._refresh_token_client()
        return OpenCGAResponseList(response, query_ids_str)
    def _rest_retry(self, method, resource, query_id=None, subcategory=None,
                    second_query_id=None, data=None, dont_retry=None, **options):
        """Invokes the specified HTTP method, with retries if they are specified in the configuration
        :return: an instance of OpenCGAResponseList"""

        query_ids_str = self._get_query_id_str(query_id)

        def exec_retry():
            return execute(host=self._cfg.host,
                           version=self._cfg.version,
                           sid=self.session_id,
                           category=self._category,
                           subcategory=subcategory,
                           method=method,
                           query_id=query_ids_str,
                           second_query_id=second_query_id,
                           resource=resource,
                           data=data,
                           options=options)

        def notify_retry(exc_type, exc_val, exc_tb):
            if self.on_retry:
                self.on_retry(self, exc_type, exc_val, exc_tb, dict(
                    method=method, resource=resource, query_id=query_id,
                    category=self._category, subcategory=subcategory,
                    second_query_id=second_query_id, data=data,
                    options=options
                ))

        response = retry(
            exec_retry, self._cfg.max_attempts, self._cfg.min_retry_secs, self._cfg.max_retry_secs,
            login_handler=self._client_login_handler if self.login_handler else None,
            on_retry=notify_retry, dont_retry=dont_retry)

        if self.auto_refresh:
            self._refresh_token_client()
        return OpenCGAResponseList(response, query_ids_str)