in src/google/appengine/api/queueinfo.py [0:0]
def TranslateRetryParameters(retry):
"""Populates a `TaskQueueRetryParameters` from a `queueinfo.RetryParameters`.
Args:
retry: A `queueinfo.RetryParameters` that is read from `queue.yaml` that
describes the queue's retry parameters.
Returns:
A `taskqueue_service_pb2.TaskQueueRetryParameters` proto populated with the
data from `retry`.
Raises:
MalformedQueueConfiguration: If the retry parameters are invalid.
"""
params = taskqueue_service_pb2.TaskQueueRetryParameters()
if retry.task_retry_limit is not None:
params.retry_limit = int(retry.task_retry_limit)
if retry.task_age_limit is not None:
params.age_limit_sec = ParseTaskAgeLimit(retry.task_age_limit)
if retry.min_backoff_seconds is not None:
params.min_backoff_sec = float(retry.min_backoff_seconds)
if retry.max_backoff_seconds is not None:
params.max_backoff_sec = float(retry.max_backoff_seconds)
if retry.max_doublings is not None:
params.max_doublings = int(retry.max_doublings)
if params.HasField(
'min_backoff_sec') and not params.HasField('max_backoff_sec'):
if params.min_backoff_sec > params.max_backoff_sec:
params.max_backoff_sec = params.min_backoff_sec
if not params.HasField('min_backoff_sec') and params.HasField(
'max_backoff_sec'):
if params.min_backoff_sec > params.max_backoff_sec:
params.min_backoff_sec = params.max_backoff_sec
if params.HasField('retry_limit') and params.retry_limit < 0:
raise MalformedQueueConfiguration(
'Task retry limit must not be less than zero.')
if params.HasField('age_limit_sec') and not params.age_limit_sec > 0:
raise MalformedQueueConfiguration(
'Task age limit must be greater than zero.')
if params.HasField('min_backoff_sec') and params.min_backoff_sec < 0:
raise MalformedQueueConfiguration(
'Min backoff seconds must not be less than zero.')
if params.HasField('max_backoff_sec') and params.max_backoff_sec < 0:
raise MalformedQueueConfiguration(
'Max backoff seconds must not be less than zero.')
if params.HasField('max_doublings') and params.max_doublings < 0:
raise MalformedQueueConfiguration(
'Max doublings must not be less than zero.')
if params.HasField('min_backoff_sec') and params.HasField(
'max_backoff_sec') and params.min_backoff_sec > params.max_backoff_sec:
raise MalformedQueueConfiguration(
'Min backoff sec must not be greater than than max backoff sec.')
return params