# With\_items over the loops with "when", can we write multiple "when" in one task?

**URL:** <https://forum.ansible.com/t/with-items-over-the-loops-with-when-can-we-write-multiple-when-in-one-task/24485>\
**Category:** Ansible Project\
**Created:** [May 15, 2017, 2:40pm UTC](https://forum.ansible.com/t/with-items-over-the-loops-with-when-can-we-write-multiple-when-in-one-task/24485 "2017-05-15T14:40:23Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Raj\_Martha](https://avatars.discourse-cdn.com/v4/letter/r/e9bcb4/32.png) [@Raj\_Martha](https://forum.ansible.com/u/Raj_Martha)\
**Post date:** [May 15, 2017, 2:40pm UTC](https://forum.ansible.com/t/with-items-over-the-loops-with-when-can-we-write-multiple-when-in-one-task/24485/1 "2017-05-15T14:40:23Z")

</div>

Hi all,

I want to write the code like this, is it possible? or is there any better way to write?

---

<div class="post-metadata">

**Author:** ![Kai\_Stian\_Olstad](https://avatars.discourse-cdn.com/v4/letter/k/e19adc/32.png) [@Kai\_Stian\_Olstad](https://forum.ansible.com/u/Kai_Stian_Olstad)\
**Post date:** [May 17, 2017, 5:21pm UTC](https://forum.ansible.com/t/with-items-over-the-loops-with-when-can-we-write-multiple-when-in-one-task/24485/2 "2017-05-17T17:21:33Z")

</div>

> Hi all,
> 
> I want to write the code like this, is it possible? or is there any better  
> way to write?

Why don't you try to see if it works?

> ---  
> - become: true  
> &nbsp;&nbsp;become\_user: wsadmin  
> &nbsp;&nbsp;hosts: ATST-ESBDMGR  
> &nbsp;&nbsp;tasks:  
> &nbsp;&nbsp;&nbsp;&nbsp;-  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ping: ~  
> &nbsp;&nbsp;&nbsp;&nbsp;-  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name: "Displaying Hostname for DMGR Profile Server"  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;register: hostnamefordmgr  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell: hostname  
> &nbsp;&nbsp;&nbsp;&nbsp;-  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;debug: var=hostnamefordmgr.stdout\_lines  
> &nbsp;&nbsp;&nbsp;&nbsp;-  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name: "All clusters status in This Server"  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell: "{{ command to execute script for clusters status }} cluster1  
> cluster2 cluster3 cluster4 cluster5 cluster6"  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;register: allcluster\_status  
> &nbsp;&nbsp;&nbsp;&nbsp;-  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;debug: var=allcluster\_status.stdout\_lines  
> &nbsp;&nbsp;&nbsp;&nbsp;-  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name: " Starting the clusters which is stopped"  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell: "{{ script to start cluster}] {{item.cluster1}}  
> {{item.cluster2}} {{item.cluster3}} {{item.cluster4}} {{item.cluster5}}  
> {{item.cluster6}} "  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when: "'cluster1 started' in allcluster\_status.stdout"  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with\_items:  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- { cluster1: 'cluster1 name' }  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when: "'cluster2 started' in allcluster\_status.stdout"  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with\_items:  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- { cluster2: 'cluster2 name' }  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when: "'cluster3 started' in allcluster\_status.stdout"  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with\_items:  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- { cluster3: 'cluster3 name' }  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when: "'cluster4 started' in allcluster\_status.stdout"  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with\_items:  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- { cluster4: 'cluster2 name' }  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;register: startclusterstatus  
> &nbsp;&nbsp;&nbsp;&nbsp;-  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;debug: var=startclusterstatus.stdout\_lines

But no, you can't, you can only have one when and one with\_items per task.

---

<div class="post-metadata">

**Author:** ![Brian\_Coca](https://avatars.discourse-cdn.com/v4/letter/b/6de8d8/32.png) [@Brian\_Coca](https://forum.ansible.com/u/Brian_Coca)\
**Post date:** [May 17, 2017, 8:54pm UTC](https://forum.ansible.com/t/with-items-over-the-loops-with-when-can-we-write-multiple-when-in-one-task/24485/3 "2017-05-17T20:54:10Z")

</div>

The 'when' is executed PER item from with\_, so you do have that, but  
written in single keyword, you cannot do multiple keywords.

when: '"%s started" % item.key in allcluster\_status.stdout'  
with\_dict:  
&nbsp;&nbsp;&nbsp;&nbsp;cluster1: cluster1 name  
&nbsp;&nbsp;&nbsp;&nbsp;cluster2: cluster2 name  
....

---

<div class="post-metadata">

**Author:** ![Werner\_Flamme](https://avatars.discourse-cdn.com/v4/letter/w/c68b51/32.png) [@Werner\_Flamme](https://forum.ansible.com/u/Werner_Flamme)\
**Post date:** [May 18, 2017, 7:51am UTC](https://forum.ansible.com/t/with-items-over-the-loops-with-when-can-we-write-multiple-when-in-one-task/24485/4 "2017-05-18T07:51:42Z")

</div>

Raj Martha [15.05.2017 16:40]:

> &nbsp;&nbsp;&nbsp;&nbsp;-  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;debug: var=allcluster\_status.stdout\_lines  
> &nbsp;&nbsp;&nbsp;&nbsp;-  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name: " Starting the clusters which is stopped"  
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell: "{{ script to start cluster}] {{item.cluster1}}

the {{ do not match the }] here!

---

<div class="post-metadata">

**Author:** ![Raj\_Martha](https://avatars.discourse-cdn.com/v4/letter/r/e9bcb4/32.png) [@Raj\_Martha](https://forum.ansible.com/u/Raj_Martha)\
**Post date:** [May 19, 2017, 2:52pm UTC](https://forum.ansible.com/t/with-items-over-the-loops-with-when-can-we-write-multiple-when-in-one-task/24485/5 "2017-05-19T14:52:51Z")

</div>

HI Coca,

some reason the play skipping even though there is a “started” word in allcluster\_status.stdout, can you please give me exact “when”  
this is what i have
