Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

retry_pattern: minutes is no working in case of multi task retry #360

Open
leralik opened this issue Aug 22, 2022 · 0 comments
Open

retry_pattern: minutes is no working in case of multi task retry #360

leralik opened this issue Aug 22, 2022 · 0 comments
Labels
bug Something isn't working

Comments

@leralik
Copy link

leralik commented Aug 22, 2022

see below my template :

name: patch
description: patch connections
long_description: patch connections
doc_link: https://en.wikipedia.org/wiki/%22Hello,_World!%22_program

title_format: patch connections

allowed_resolver_usernames: []
allow_all_resolver_usernames: true
auto_runnable: true
blocked: false
hidden: false

retry_max: 100

inputs:

  • name: tower_url
    description: tower_url
    optional: true
    default: '{{.config.towerurl}}'

  • name: tower_endpoint
    description: tower_endpoint
    optional: true
    default: '{{.config.towerendpoint}}'

  • name: hosts_list
    description: hosts_list
    optional: true

  • name: create_snapshot
    description: create_snapshot
    optional: true

  • name: erratas
    description: erratas
    optional: true

  • name: mailAddress
    description: mailAddress
    optional: true

  • name: reboot
    description: reboot
    optional: true

  • name: remove_snapshot
    description: remove_snapshot
    optional: true

  • name: kafka_url
    description: kafka url
    optional: true

  • name: kafka_message
    description: kafka message
    optional: true

  • name: kafka_key
    description: kafka key
    optional: true
    runPatch:
    description: run patch via ansible tower
    action:
    type: http
    configuration:
    method: POST
    url: '{{.config.towerurl}}{{.config.towerendpoint}}'
    auth:
    basic:
    user: '{{.config.toweruser}}'
    password: '{{.config.towerpassword}}'
    insecure_skip_verify: "true"
    headers:
    - name: Content-Type
    value: "application/json"
    - name: Accept
    value: "application/json"
    body: |-
    {
    "extra_vars":
    {
    "hosts_list": "{{.input.hosts_list}}",
    "create_snapshot": "{{.input.create_snapshot}}",
    "erratas": "{{.input.erratas}}",
    "mailAddress": "{{.input.mailAddress}}",
    "reboot": "{{.input.reboot}}",
    "remove_snapshot": "{{.input.remove_snapshot}}"
    }
    }

    getStatus:
    description: get status from tower job
    dependencies: [runPatch]
    action:
    type: http
    configuration:
    method: GET
    #timeout_seconds: "2"
    url: '{{.config.towerurl}}/api/v2/jobs/{{.step.runPatch.output.job}}/'
    insecure_skip_verify: "true"
    auth:
    basic:
    user: '{{.config.toweruser}}'
    password: '{{.config.towerpassword}}'
    conditions:
    - type: check
    if:
    - value: '{{.step.getStatus.metadata.HTTPStatus}}'
    operator: GE
    expected: '300'
    then:
    this: FATAL_ERROR
    message: 'FAILED'

    getContent:
    description: get status from tower job
    dependencies: [runPatch]
    #timeout: "5s"
    action:
    type: http
    configuration:
    method: GET
    #timeout_seconds: "2"
    url: '{{.config.towerurl}}/api/v2/jobs/{{.step.runPatch.output.job}}/stdout/?format=json'
    insecure_skip_verify: "true"
    auth:
    basic:
    user: '{{.config.toweruser}}'
    password: '{{.config.towerpassword}}'
    conditions:
    - type: skip
    if:
    - value: '{{.step.getStatus.output.status}}'
    operator: NE
    expected: 'failed'
    then:
    this: DONE

    informKafka:
    dependencies: [getContent,getStatus]
    description: post message to kafka regarding patch progress
    retry_pattern: minutes
    action:
    type: http
    configuration:
    method: POST
    #timeout_seconds: "2"
    url: '{{.config.kafkaurl}}'
    headers:
    - name: Content-Type
    value: "application/vnd.kafka.json.v2+json"
    - name: Accept
    value: "application/vnd.kafka.v2+json"
    #"records":[{"key":"{{.step.runPatch.output.job}}","value": "{{.step.getStatus.output.status}}"
    body: |-
    {
    "records":[{"key":"{{.step.runPatch.output.job}}_request_ID", "value": "[{'id': '{{.step.runPatch.output.job}}','status':'{{.step.getStatus.output.status}}','comments': '','failureReason': '{{.step.getContent.output.content}}','category': 'patch','userName': 'ansible'}]"}]
    }

    conditions:
    - type: check
    if:
    - value: 'failed,successful'
    operator: NOTIN
    expected: '{{.step.getStatus.output.status}}'
    then:
    this: TO_RETRY
    getContent: TO_RETRY
    getStatus: TO_RETRY

    - type: skip
      if:
      - value: '{{.step.getStatus.output.status}}'
        operator: EQ
        expected: '<no value>'
      then:
        this: TO_RETRY
    

Retry mechanism is running every 10 sec , doesn't matter what i put in retry_pattern

@leralik leralik added the bug Something isn't working label Aug 22, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant