OXIESEC PANEL
- Current Dir:
/
/
opt
/
gsutil
/
gslib
/
utils
Server IP: 2a02:4780:11:1594:0:ef5:22d7:a
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
02/11/2025 08:19:48 AM
rwxr-xr-x
📄
__init__.py
0 bytes
12/09/2024 05:26:03 PM
rw-r--r--
📁
__pycache__
-
02/11/2025 08:19:49 AM
rwxr-xr-x
📄
acl_helper.py
12.66 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
arg_helper.py
1.42 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
boto_util.py
26.01 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
cat_helper.py
6.22 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
cloud_api_helper.py
3.96 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
constants.py
4.83 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
copy_helper.py
181.74 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
encryption_helper.py
7 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
execution_util.py
1.8 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
hashing_helper.py
18.32 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
iam_helper.py
10.82 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
ls_helper.py
17.89 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
metadata_util.py
4.4 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
parallelism_framework_util.py
15.72 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
posix_util.py
18.66 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
retention_util.py
10.47 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
retry_util.py
3.11 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
rsync_util.py
1.84 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
shim_util.py
27.25 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
signurl_helper.py
5.34 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
stet_util.py
3.83 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
system_util.py
9.8 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
temporary_file_util.py
1.22 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
text_util.py
12.99 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
translation_helper.py
38.41 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
unit_util.py
7.73 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
update_util.py
4.88 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
user_agent_helper.py
2.41 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
version_check.py
2.21 KB
12/09/2024 05:26:03 PM
rw-r--r--
📄
wrapped_credentials.py
6.83 KB
12/09/2024 05:26:03 PM
rw-r--r--
Editing: retry_util.py
Close
# -*- coding: utf-8 -*- # Copyright 2018 Google Inc. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Shared utility structures and methods for handling request retries.""" from __future__ import absolute_import from __future__ import print_function from __future__ import division from __future__ import unicode_literals import logging import time from apitools.base.py import http_wrapper from gslib import thread_message from gslib.utils import constants from retry_decorator import retry_decorator Retry = retry_decorator.retry # pylint: disable=invalid-name def LogAndHandleRetries(is_data_transfer=False, status_queue=None): """Higher-order function allowing retry handler to access global status queue. Args: is_data_transfer: If True, disable retries in apitools. status_queue: The global status queue. Returns: A retry function for retryable errors in apitools. """ def WarnAfterManyRetriesHandler(retry_args): """Exception handler for http failures in apitools. If the user has had to wait several seconds since their first request, print a progress message to the terminal to let them know we're still retrying, then perform the default retry logic and post a gslib.thread_message.RetryableErrorMessage to the global status queue. Args: retry_args: An apitools ExceptionRetryArgs tuple. """ if (retry_args.total_wait_sec is not None and retry_args.total_wait_sec >= constants.LONG_RETRY_WARN_SEC): logging.info('Retrying request, attempt #%d...', retry_args.num_retries) if status_queue: status_queue.put( thread_message.RetryableErrorMessage( retry_args.exc, time.time(), num_retries=retry_args.num_retries, total_wait_sec=retry_args.total_wait_sec)) http_wrapper.HandleExceptionsAndRebuildHttpConnections(retry_args) def RetriesInDataTransferHandler(retry_args): """Exception handler that disables retries in apitools data transfers. Post a gslib.thread_message.RetryableErrorMessage to the global status queue. We handle the actual retries within the download and upload functions. Args: retry_args: An apitools ExceptionRetryArgs tuple. """ if status_queue: status_queue.put( thread_message.RetryableErrorMessage( retry_args.exc, time.time(), num_retries=retry_args.num_retries, total_wait_sec=retry_args.total_wait_sec)) http_wrapper.RethrowExceptionHandler(retry_args) if is_data_transfer: return RetriesInDataTransferHandler return WarnAfterManyRetriesHandler