가능한 작업에 사전 키가 정의되어 있지 않은지 확인하는 방법이 있습니까?


17

내 코드에는 작업이 있습니다.

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

내 vars는

---
me:
  stumped: yes

따라서 작업을 실행하면 다음 오류가 발생합니다.

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

답변:


24

포함 된 구문 :

when: me.cool is not defined

맞다.

당신은 또한 사용할 수 있습니다 not in:

when: "'cool' not in me"

문제는 오류 메시지입니다.

조건부 검사 'me.cool'이 실패했습니다.

귀하의 상태는 다음과 같이 정의됩니다.

when: me.cool

따라서 사용하는 버전에 버그가 있지만 어떤 버그가 있는지 공유하지 않았 거나 알려진 문제 가 있거나 오류를 일으킨 정확한 작업을 게시하지 않았습니다.


1
원래 코드를 게시하지 않으면 동일한 값을 나타내는 두 번째 when-condition을 생략하여 오류가 계속 발생할 수 있습니다. 이것은 작동 when: is_installed.rc is defined and is_installed.rc == 0하지 않습니다 :when: is_installed.rc is defined \n when is_installed.rc == 0
Aiyion.Prime

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.