Ansible 2.0 Deprecation in "when:" conditional.

435 views
Skip to first unread message

Manuel Jiménez

unread,
Jan 13, 2016, 11:44:01 AM1/13/16
to Ansible Project
Hi!

I have a role that clean my /etc/cron.d , /etc/cron.daily, etc... and installs new crons that I have defined in the role. For this duty I've do a simple but powerfull playbook but in version 2.0 instead of skeep a steep, I see a deprecation warning.

Example:

## LOOK IF PLACEHOLDER FILE EXISTS AND REGISTER IN A VAR
  - stat:
   path=/etc/cron.d/placeholder
   register: placeholdercrond
   tags: ["cron.all", "cron.d"]
 
## IF NOT EXISTS, LIST ALL FILES AND STORE THEM IN A VAR
  - shell: ls -1 /etc/cron.d
    register: crond
    when: placeholdercrond.stat.exists == False
    tags: ["cron.all", "cron.d"]
 
## DELETE EVERY FILE IF LAST COMMAND WHERE TRUE BECAUSE crond VAR HAS VALUES
  - file:
   path=/etc/cron.d/{{ item }}
    state=absent
    with_items: crond.stdout_lines
    when: crond.changed == True
    tags: ["cron.all", "cron.d"]
 
 

- WHEN NOT PLACEHOLDER FILE: PLAYBOOK RUN OK

- WHEN THERE IS A PLACEHOLDER FILE: PLAYBOOK SHOWS A DEPRECATION, FUTURE ERROR IN FILE MODULE

 
 
PLAY ***************************************************************************
 
TASK [setup] *******************************************************************
 
TASK [cron : stat] *************************************************************
ok: [testserver]
 
TASK [cron : command] **********************************************************
ok: [testserver]
 
TASK [cron : file] *************************************************************
[DEPRECATION WARNING]: Skipping task due to undefined attribute, in the future this will be a fatal error.. This feature will be removed in a future release. Deprecation warnings can be disabled by setting
deprecation_warnings=False in ansible.cfg.

This is because {{ item }} is empty, but this steep should be skipped because the when: condition is not meeted.

Any ideas?

Manuel Jiménez

unread,
Jan 13, 2016, 12:34:56 PM1/13/16
to Ansible Project
I suggest to add an output when any task is skipped because of empy with_ loop with a message like:

[skipped]: skipped due to no items

Cheers!
Reply all
Reply to author
Forward
0 new messages