def TranslateRetryParameters()

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