我有一個宏,用於使用debmirror
來構建本地存儲庫。如何在Jinja2宏中引發異常?
這裏的代碼片段:
{%- set gnupghome = kwargs.pop('gnupghome', '/root/.gnupg') %}
{%- set env = { 'GNUPGHOME': gnupghome } %}
keyring_import:
cmd:
- run
{%- if 'keyid' in kwargs and 'keyserver' in kwargs %}
{%- set keyid = kwargs.pop('keyid') %}
{%- set keyserver = kwargs.pop('keyserver') %}
- name: 'gpg --no-default-keyring --keyring {{ gnupghome }}/trustedkeys.gpg --keyserver {{ keyserver }} --recv-keys {{ keyid }}'
{%- elif 'key_url' in kwargs %}
{%- set key_url = kwargs.pop('key_url') %}
- name: 'wget -q -O- "{{ key_url }}" | gpg --no-default-keyring --keyring {{ gnupghome }}/trustedkeys.gpg --import'
{%- endif %}
- require:
- pkg: wget
- pkg: gnupg
在endif
關鍵詞,我想用else
引發異常,對於如:
無論key_url或兩個密鑰服務器和keyid的需要。
可能嗎?
沒有,Jinja2的不支持引發異常。你可以使用python函數或過濾器,它可以引發異常,但不能在純Jinja中使用。 –