# When conditional does not work with ios\_config module. Why is it so?

**URL:** <https://forum.ansible.com/t/when-conditional-does-not-work-with-ios-config-module-why-is-it-so/34625>\
**Category:** Ansible Project\
**Created:** [February 16, 2021, 8:04am UTC](https://forum.ansible.com/t/when-conditional-does-not-work-with-ios-config-module-why-is-it-so/34625 "2021-02-16T08:04:25Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Vikram\_S](https://avatars.discourse-cdn.com/v4/letter/v/90db22/32.png) [@Vikram\_S](https://forum.ansible.com/u/Vikram_S)\
**Post date:** [February 16, 2021, 8:04am UTC](https://forum.ansible.com/t/when-conditional-does-not-work-with-ios-config-module-why-is-it-so/34625/1 "2021-02-16T08:04:25Z")

</div>

1st playbook uses ios\_command module and gets executed as intended (to display the output when hostname of device contains router1).

However 2nd playbook uses ios\_config module and fails when i use the ‘when’ conditional. Am i do something wrong or is it that ‘when’ conditional is not supposed to work with ios\_config module? (please ignore the formatting)

---

<div class="post-metadata">

**Author:** ![racke](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/racke/32/4767_2.png) [@racke](https://forum.ansible.com/u/racke)\
**Post date:** [February 16, 2021, 8:13am UTC](https://forum.ansible.com/t/when-conditional-does-not-work-with-ios-config-module-why-is-it-so/34625/2 "2021-02-16T08:13:32Z")

</div>

> 1st playbook uses ios\_command module and gets executed as intended (to display the output when hostname of device  
> contains router1).
> 
> However 2nd playbook uses ios\_config module and fails when i use the 'when' conditional. Am i do something wrong or is  
> it that 'when' conditional is not supposed to work with ios\_config module? (please ignore the formatting)

First of all output.stdout is not a list but a string.

Can you provide sample output?

Regards  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Racke

---

<div class="post-metadata">

**Author:** ![Vikram\_S](https://avatars.discourse-cdn.com/v4/letter/v/90db22/32.png) [@Vikram\_S](https://forum.ansible.com/u/Vikram_S)\
**Post date:** [February 16, 2021, 8:42am UTC](https://forum.ansible.com/t/when-conditional-does-not-work-with-ios-config-module-why-is-it-so/34625/3 "2021-02-16T08:42:00Z")

</div>

Hi,

Thanks for your assistance. Please find output for both the playbooks as you requrested:

**OUTPUT FOR 1ST PLAYBOOK (WORKING ONE):**

TASK [debug] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
ok: [R1] =\> {  
“output”: {  
“ansible\_facts”: {  
“discovered\_interpreter\_python”: “/usr/bin/python”  
},  
“changed”: false,  
“deprecations”: [  
{  
“msg”: “Distribution Ubuntu 18.04 on host R1 should use /usr/bin/python3, but is using /usr/bin/python for backward compatibility with prior Ansible releases. A future Ansible release will default to using the discovered platform python for this host. See [https://docs.ansible.com/ansible/2.9/reference\_appendices/interpreter\_discovery.html](https://docs.ansible.com/ansible/2.9/reference_appendices/interpreter_discovery.html) for more information”,  
“version”: “2.12”  
}  
],  
**“failed”: false,**  
**“stdout”: [**  
**“hostname router28”**  
**],**  
**“stdout\_lines”: [**  
**[**  
**“hostname router28”**

---

<div class="post-metadata">

**Author:** ![racke](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/racke/32/4767_2.png) [@racke](https://forum.ansible.com/u/racke)\
**Post date:** [February 16, 2021, 8:10pm UTC](https://forum.ansible.com/t/when-conditional-does-not-work-with-ios-config-module-why-is-it-so/34625/4 "2021-02-16T20:10:40Z")

</div>

> Hi,
> 
> Thanks for your assistance. Please find output for both the playbooks as you requrested:

So if you have "hostname router28" in output.stdout, you can use the following when condition:

when: output.stdout is search('router28$')

This condition is true when the string "router28" is at the end of output.stdout.

Regards  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Racke

---

<div class="post-metadata">

**Author:** ![Vikram\_S](https://avatars.discourse-cdn.com/v4/letter/v/90db22/32.png) [@Vikram\_S](https://forum.ansible.com/u/Vikram_S)\
**Post date:** [February 20, 2021, 2:49pm UTC](https://forum.ansible.com/t/when-conditional-does-not-work-with-ios-config-module-why-is-it-so/34625/5 "2021-02-20T14:49:26Z")

</div>

Hi Racke,

Thanks for the tip. But iam wondering if there is any restriction in ios\_config module that my config line wouldn’t work and your config is compatable with this module?

Regards,  
Vikram
