diff --git a/kolla_ansible/filters.py b/kolla_ansible/filters.py index 94c4ae58a5..466b993d5c 100644 --- a/kolla_ansible/filters.py +++ b/kolla_ansible/filters.py @@ -12,13 +12,17 @@ # License for the specific language governing permissions and limitations # under the License. -import jinja2 +# NOTE: jinja2 3.1.0 dropped contextfilter in favour of pass_context. +try: + from jinja2 import pass_context +except ImportError: + from jinja2 import contextfilter as pass_context from kolla_ansible import exception from kolla_ansible.helpers import _call_bool_filter -@jinja2.contextfilter +@pass_context def service_enabled(context, service): """Return whether a service is enabled. @@ -34,7 +38,7 @@ def service_enabled(context, service): return _call_bool_filter(context, enabled) -@jinja2.contextfilter +@pass_context def service_mapped_to_host(context, service): """Return whether a service is mapped to this host. @@ -62,7 +66,7 @@ def service_mapped_to_host(context, service): service.get("container_name", "")) -@jinja2.contextfilter +@pass_context def service_enabled_and_mapped_to_host(context, service): """Return whether a service is enabled and mapped to this host. @@ -74,7 +78,7 @@ def service_enabled_and_mapped_to_host(context, service): service_mapped_to_host(context, service)) -@jinja2.contextfilter +@pass_context def select_services_enabled_and_mapped_to_host(context, services): """Select services that are enabled and mapped to this host. diff --git a/kolla_ansible/kolla_address.py b/kolla_ansible/kolla_address.py index 888ee734c2..3d8d4ef085 100644 --- a/kolla_ansible/kolla_address.py +++ b/kolla_ansible/kolla_address.py @@ -14,14 +14,18 @@ # See the License for the specific language governing permissions and # limitations under the License. -from jinja2.filters import contextfilter +# NOTE: jinja2 3.1.0 dropped contextfilter in favour of pass_context. +try: + from jinja2 import pass_context +except ImportError: + from jinja2 import contextfilter as pass_context from jinja2.runtime import Undefined from kolla_ansible.exception import FilterError from kolla_ansible.helpers import _call_bool_filter -@contextfilter +@pass_context def kolla_address(context, network_name, hostname=None): """returns IP address on the requested network diff --git a/releasenotes/notes/jinja2-pass-context-2afc328ade8c407b.yaml b/releasenotes/notes/jinja2-pass-context-2afc328ade8c407b.yaml new file mode 100644 index 0000000000..3a7ecc729c --- /dev/null +++ b/releasenotes/notes/jinja2-pass-context-2afc328ade8c407b.yaml @@ -0,0 +1,4 @@ +--- +fixes: + - | + Fixes an issue seen when using Jinja2 3.1.0.