From 0636bbc87e8adf4e8faa61804f0ff222c8ef57b8 Mon Sep 17 00:00:00 2001 From: Yuxing Jiang Date: Mon, 26 Oct 2020 10:27:06 -0400 Subject: [PATCH] Parse YAML with as YAML1.1 standard Ruamel.yaml is YAML1.2 compatible by default. The YAML1.2 does not support octals starts with 0 (the octals are required to start with 0o). For example, the octal number 0755 with be transferred into 755. This commit set the ruamel.yaml load the filed as version 1.1. After this commit, the octal number will be transferred to decimal. For example, the octal 0755 will be re-write to 493. And it will be load/dump correctly in the following steps. Closes-Bug: 1896530 Change-Id: If8be9d8d4b22ccce99307b5388313ba85a71be74 Signed-off-by: Yuxing Jiang --- build-tools/build-helm-charts.sh | 2 +- build-tools/helm_chart_modify.py | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/build-tools/build-helm-charts.sh b/build-tools/build-helm-charts.sh index da22f343..2fa2ca21 100755 --- a/build-tools/build-helm-charts.sh +++ b/build-tools/build-helm-charts.sh @@ -315,7 +315,7 @@ def merge_yaml(yaml_merged, yaml_new): yaml_out = collections.OrderedDict() for yaml_file in yaml_files: print 'Merging yaml from file: %s' % yaml_file - for document in yaml.load_all(open(yaml_file), Loader=yaml.RoundTripLoader, preserve_quotes=True): + for document in yaml.load_all(open(yaml_file), Loader=yaml.RoundTripLoader, preserve_quotes=True, version=(1, 1)): document_name = (document['schema'], document['metadata']['schema'], document['metadata']['name']) if document_name in yaml_out: merge_yaml(yaml_out[document_name], document) diff --git a/build-tools/helm_chart_modify.py b/build-tools/helm_chart_modify.py index 4069347b..9b6b5b57 100755 --- a/build-tools/helm_chart_modify.py +++ b/build-tools/helm_chart_modify.py @@ -160,7 +160,10 @@ def main(argv): # Load chart into dictionary(s) and then modify any image locations/tags if required for document in yaml.load_all( - open(yaml_file), Loader=yaml.RoundTripLoader, preserve_quotes=True): + open(yaml_file), + Loader=yaml.RoundTripLoader, + preserve_quotes=True, + version=(1, 1)): document_name = (document['schema'], document['metadata']['schema'], document['metadata']['name'])