From 057f2c849f491009717fa0a2a0608aee50d9e3d3 Mon Sep 17 00:00:00 2001 From: David Vallee Delisle Date: Fri, 5 Feb 2021 19:20:47 -0500 Subject: [PATCH] per_node is not parsing generated json Hieradata for individual nodes leads to json decoding error. Related: https://bugzilla.redhat.com/1924952 Change-Id: I1cea09bfd2595ce3ae6c2b39adbb40044a4e0b0b (cherry picked from commit a68149f247466a26190b99264ae659bfcd01810f) --- puppet/extraconfig/pre_deploy/per_node.yaml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/puppet/extraconfig/pre_deploy/per_node.yaml b/puppet/extraconfig/pre_deploy/per_node.yaml index 64ba9acbb8..815afc02d1 100644 --- a/puppet/extraconfig/pre_deploy/per_node.yaml +++ b/puppet/extraconfig/pre_deploy/per_node.yaml @@ -45,18 +45,26 @@ resources: # the data of the NodeDataLookup parameter that matches the # system UUID echo $node_lookup | $(get_python) -c " + import ast import json import sys input = sys.stdin.readline() or '{}' - cnt = json.loads(input) + try: + cnt = json.loads(input) + except json.decoder.JSONDecodeError: + cnt = ast.literal_eval(input) print(json.dumps(cnt.get('${node_id}', {}))) " > /etc/puppet/hieradata/${node_id}.json # handle upper case node id LP#1816652 echo $node_lookup | $(get_python) -c " + import ast import json import sys input = sys.stdin.readline() or '{}' - cnt = json.loads(input) + try: + cnt = json.loads(input) + except json.decoder.JSONDecodeError: + cnt = ast.literal_eval(input) print(json.dumps(cnt.get('${node_id_upper}', {}))) " > /etc/puppet/hieradata/${node_id_upper}.json