From 6005878b4fbc8621082cfa40035f4ae05fbb52bd Mon Sep 17 00:00:00 2001 From: "Gael Chamoulaud (Strider)" Date: Mon, 19 Oct 2020 11:27:51 +0200 Subject: [PATCH] [Validator Run] Don't rely on parameter file extension This patch safely loads extra vars file using YAML method by default and don't rely anymore on a probable existence of a file extension. Change-Id: Ia09ca1de9502cd6c99910a6f18ee775c613c10dc Signed-off-by: Gael Chamoulaud (Strider) (cherry picked from commit cd0e24bbe3a4e9cf5779a6f1d12a9509ce72fd78) --- tripleoclient/v1/tripleo_validator.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/tripleoclient/v1/tripleo_validator.py b/tripleoclient/v1/tripleo_validator.py index 3c5c110c0..8e9cc0a52 100644 --- a/tripleoclient/v1/tripleo_validator.py +++ b/tripleoclient/v1/tripleo_validator.py @@ -319,11 +319,14 @@ class TripleOValidatorRun(command.Command): limit = parsed_args.limit extra_vars = parsed_args.extra_vars if parsed_args.extra_vars_file: - with open(parsed_args.extra_vars_file, 'r') as env_file: - if '.json' in parsed_args.extra_vars_file: - extra_vars.update(json.load(env_file)) - else: - extra_vars.update(yaml.load(env_file)) + try: + with open(parsed_args.extra_vars_file, 'r') as env_file: + extra_vars.update(yaml.safe_load(env_file.read())) + except yaml.YAMLError as e: + error_msg = ( + "The request body must be properly formatted YAML/JSON. " + "Details: %s." % e) + raise exceptions.CommandError(error_msg) # We don't check if the file exists in order to support # passing a string such as "localhost,", like we can do with