From 9b29951875b4251bf0de578186ab6248daa3afac Mon Sep 17 00:00:00 2001 From: Giulio Fidente Date: Fri, 15 Dec 2017 15:24:55 +0100 Subject: [PATCH] Add json_parse and yaml_parse mistral expression functions This change adds parsing of JSON and YAML as a mistral functions. Change-Id: I9970abae47ca355861e37cdb5db0ab24d564b57a Related-Bug: #1736707 --- setup.cfg | 3 +++ .../utils/mistral_expression_utils.py | 24 +++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 tripleo_common/utils/mistral_expression_utils.py diff --git a/setup.cfg b/setup.cfg index 3070fdebf..99d9e4e84 100644 --- a/setup.cfg +++ b/setup.cfg @@ -137,3 +137,6 @@ mistral.actions = tripleo.ansible-playbook = tripleo_common.actions.ansible:AnsiblePlaybookAction tripleo.templates.upload_default = tripleo_common.actions.templates:UploadTemplatesAction tripleo.plan.migrate = tripleo_common.actions.plan:MigratePlanAction +mistral.expression.functions = + json_parse = tripleo_common.utils.mistral_expression_utils:json_parse_ + yaml_parse = tripleo_common.utils.mistral_expression_utils:yaml_parse_ diff --git a/tripleo_common/utils/mistral_expression_utils.py b/tripleo_common/utils/mistral_expression_utils.py new file mode 100644 index 000000000..757546ce3 --- /dev/null +++ b/tripleo_common/utils/mistral_expression_utils.py @@ -0,0 +1,24 @@ +# Copyright 2015 Red Hat, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from oslo_serialization import jsonutils +import yaml + + +def json_parse_(context, data): + return jsonutils.loads(data) + + +def yaml_parse_(context, data): + return yaml.safe_load(data)