loop control for with_together

Hi team,
could you please help me how to give two loop_vars for corresponding list for with_together module

my requirement is ,i am calling a role and where looping with_togetjher

  • include_role:
    name: validatetcp_port
    when: item.0 == ‘tcp’
    with_together:
  • “{{ proto}}”
  • “{{ svc_port}}”
    loop_control:
    loop_var: svc_port

this is not working .my inner yml is only utilizing svc_port and for when condition I need item of proto list. in my inner yml already a loop so without loop control it is not working. in current loop_var for inner yml its passing whole list of svc_port as a single item.
so please suggest me how i can apply loop_vars

You declare ‘loop_var: svc_port’ but that var already exists as one of the two variables of with_together. That won’t work, you need to pick some other name.

Also, loop_var in the context of with_together will be a list of two vars (values from proto and svc_port).

I tried with the other loop_var name but didnt worked. my issues is for inner yml i wanted only port list items pass ,when using a loop_var it is passing both list items . Please suggets how i can achieve this.

Send the inner yml

Hi ,

Please find below my inner yml

  • name: Checking TCP Service objects
    uri:
    url: “https://{{hostname}}/web_api/show-objects”
    validate_certs: False
    method: POST
    headers:
    x-chkp-sid: “{{ login.json.sid }}”
    body:
    filter: “{{item}}”
    type: “service-tcp”
    body_format: json
    register: check_host_result

  • name: Checking if TCP Service Object already exists
    set_fact:
    item_tcptype_exists: true
    svc_name: “{{ item[‘name’] }}”
    with_items: “{{ check_host_result.json.objects }}”
    when:
    #- item[‘port’] == “{{svc_port}}”

  • item[‘port’] == “{{port}}”

  • item[‘type’] is defined

  • item[‘type’] == “service-tcp”

  • debug:
    msg: “Service Object exists with name [{{svc_name}}]”

and also other api call on the output of above set_facts in this inner yml