diff options
Diffstat (limited to 'config/utils/generate_config.py')
-rwxr-xr-x | config/utils/generate_config.py | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/config/utils/generate_config.py b/config/utils/generate_config.py index 1387ed12..f02acf5a 100755 --- a/config/utils/generate_config.py +++ b/config/utils/generate_config.py @@ -23,6 +23,7 @@ PARSER.add_argument("--yaml", "-y", type=str, required=True) PARSER.add_argument("--jinja2", "-j", type=str, required=True) PARSER.add_argument("--includesdir", "-i", type=str, action='append') ARGS = PARSER.parse_args() +LOADER = yaml.CSafeLoader if yaml.__with_libyaml__ else yaml.SafeLoader ENV = Environment( loader=FileSystemLoader([os.path.dirname(ARGS.jinja2)] + ARGS.includesdir), @@ -34,8 +35,8 @@ gen_config_lib.load_custom_filters(ENV) # Note: eyaml return code is 0 even if keys are not available try: if os.path.isfile(ARGS.yaml) and 'ENC[PKCS7' in open(ARGS.yaml).read(): - DICT = yaml.safe_load(check_output(['eyaml', 'decrypt', - '-f', ARGS.yaml])) + DICT = yaml.load(check_output(['eyaml', 'decrypt', + '-f', ARGS.yaml]), Loader=LOADER) except CalledProcessError as ex: logging.error('eyaml decryption failed! Fallback to raw data.') except OSError as ex: @@ -44,13 +45,13 @@ try: DICT['details'] except (NameError, TypeError) as ex: with open(ARGS.yaml) as _: - DICT = yaml.safe_load(_) + DICT = yaml.load(_, Loader=LOADER) # If an installer descriptor file (IDF) exists, include it (temporary) IDF_PATH = '/idf-'.join(os.path.split(ARGS.yaml)) if os.path.exists(IDF_PATH): with open(IDF_PATH) as _: - IDF = yaml.safe_load(_) + IDF = yaml.load(_, Loader=LOADER) DICT['idf'] = IDF['idf'] # Print dictionary generated from yaml (uncomment for debug) |