Apakah ada cara untuk memeriksa bahwa kunci kamus tidak didefinisikan dalam tugas yang memungkinkan?


17

Jadi dalam kode saya, saya punya tugas

- name: cool task
  shell: 'touch iamnotcool.txt'
  when: me.cool is not defined

dan vars saya terlihat seperti

---
me:
  stumped: yes

Jadi ketika saya menjalankan tugas itu kembali dengan kesalahan berikut

{"failed": true, "msg": "The conditional check 'me.cool' failed. The error was: error while evaluating conditional (me.cool): 'dict object' has no attribute 'cool'.

Jawaban:


24

Sintaks yang Anda masukkan:

when: me.cool is not defined

benar.

Anda juga dapat menggunakan not in:

when: "'cool' not in me"

Masalahnya adalah bahwa pesan kesalahan Anda:

Pemeriksaan bersyarat 'me.cool' gagal.

klaim kondisi Anda didefinisikan sebagai:

when: me.cool

Jadi, baik ada bug dalam versi yang Anda gunakan (tetapi Anda tidak membagikan yang mana itu) dan ada masalah yang diketahui , atau Anda tidak memposting tugas tepat yang menyebabkan kesalahan.


1
Kesalahan masih bisa terjadi, jika dia tidak memposting kode asli dan ommited kondisi ketika kedua yang mengacu pada nilai yang sama. Ini berfungsi: when: is_installed.rc is defined and is_installed.rc == 0Ini tidak:when: is_installed.rc is defined \n when is_installed.rc == 0
Aiyion.Prime

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.