কোনও কী কী কোনও অভিধান কী কী উত্তরযোগ্য কাজে সংজ্ঞায়িত হয় না তা পরীক্ষা করার উপায় আছে?


18

সুতরাং আমার কোড আমি একটি কাজ আছে

- 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'.

উত্তর:


25

আপনার অন্তর্ভুক্ত বাক্য গঠন:

when: me.cool is not defined

সঠিক.

আপনি এটি ব্যবহার করতে পারেন not in:

when: "'cool' not in me"

সমস্যাটি হ'ল আপনার ত্রুটি বার্তা:

শর্তসাপেক্ষ চেক 'me.cool' ব্যর্থ হয়েছে।

আপনার অবস্থা হিসাবে সংজ্ঞায়িত করা হয়েছে দাবি:

when: me.cool

সুতরাং, হয় আপনি যে সংস্করণটি ব্যবহার করেন তাতে কিছু ত্রুটি রয়েছে (তবে এটি কোনটি আপনি তা ভাগ করেননি) এবং জানা সমস্যাগুলি রয়েছে , বা ত্রুটির কারণ হিসাবে আপনি সঠিক কাজটি পোস্ট করেননি।


1
ত্রুটিটি তখনও ঘটতে পারে, যদি তিনি মূল কোডটি পোস্ট করেন না তবে একটি সেকেন্ড বাদ দেওয়া যখন শর্ত একই মানকে বোঝায়। এটি কাজ করে: when: is_installed.rc is defined and is_installed.rc == 0এটি করে না:when: is_installed.rc is defined \n when is_installed.rc == 0
আইয়িয়ন riপ্রিম

7

জিনজা 2 সিলেক্ট্রেটর () সিনট্যাক্সটি এখানে ব্যবহার করে আপনি 'ডিক্ট অবজেক্ট'-এর কোনও বৈশিষ্ট্য নেই:

when: me|selectattr("cool", "defined")|list|length >0

মাইকেল হোগলান থেকে https://groups.google.com/forum/#!topic/ansible-project/8XJkHQgttLA এ ধারণা পেয়েছে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.