diff --git a/awxkit/awxkit/api/mixins/has_variables.py b/awxkit/awxkit/api/mixins/has_variables.py index fabc840563..f69b9b38e9 100644 --- a/awxkit/awxkit/api/mixins/has_variables.py +++ b/awxkit/awxkit/api/mixins/has_variables.py @@ -7,4 +7,4 @@ class HasVariables(object): @property def variables(self): - return PseudoNamespace(yaml.load(self.json.variables, Loader=yaml.FullLoader)) + return PseudoNamespace(yaml.safe_load(self.json.variables)) diff --git a/awxkit/awxkit/api/pages/unified_jobs.py b/awxkit/awxkit/api/pages/unified_jobs.py index d168c86a2b..b2f72d9447 100644 --- a/awxkit/awxkit/api/pages/unified_jobs.py +++ b/awxkit/awxkit/api/pages/unified_jobs.py @@ -114,16 +114,16 @@ class UnifiedJob(HasStatus, base.Base): """ def attempt_yaml_load(arg): try: - return yaml.load(arg, Loader=yaml.FullLoader) + return yaml.safe_load(arg) except (yaml.parser.ParserError, yaml.scanner.ScannerError): return str(arg) args = [] if not self.json.job_args: return "" - for arg in yaml.load(self.json.job_args, Loader=yaml.FullLoader): + for arg in yaml.safe_load(self.json.job_args): try: - args.append(yaml.load(arg, Loader=yaml.FullLoader)) + args.append(yaml.safe_load(arg)) except (yaml.parser.ParserError, yaml.scanner.ScannerError): if arg[0] == '@': # extra var file reference args.append(attempt_yaml_load(arg)) diff --git a/awxkit/awxkit/utils/__init__.py b/awxkit/awxkit/utils/__init__.py index f612c92452..2750115685 100644 --- a/awxkit/awxkit/utils/__init__.py +++ b/awxkit/awxkit/utils/__init__.py @@ -184,8 +184,7 @@ def load_credentials(filename=None): if os.path.isfile(path): with open(path) as credentials_fh: - credentials_dict = yaml.load( - credentials_fh, Loader=yaml.FullLoader) + credentials_dict = yaml.safe_load(credentials_fh) return credentials_dict else: msg = 'Unable to load credentials file at %s' % path @@ -200,7 +199,7 @@ def load_projects(filename=None): if os.path.isfile(path): with open(path) as projects_fh: - projects_dict = yaml.load(projects_fh, Loader=yaml.FullLoader) + projects_dict = yaml.safe_load(projects_fh) return projects_dict else: msg = 'Unable to load projects file at %s' % path @@ -329,7 +328,7 @@ def to_bool(obj): def load_json_or_yaml(obj): try: - return yaml.load(obj, Loader=yaml.FullLoader) + return yaml.safe_load(obj) except AttributeError: raise TypeError("Provide valid YAML/JSON.") diff --git a/awxkit/awxkit/yaml_file.py b/awxkit/awxkit/yaml_file.py index aee30ea2c5..34f186f4a0 100644 --- a/awxkit/awxkit/yaml_file.py +++ b/awxkit/awxkit/yaml_file.py @@ -12,7 +12,7 @@ file_pattern_cache = {} file_path_cache = {} -class Loader(yaml.FullLoader): +class Loader(yaml.SafeLoader): def __init__(self, stream): self._root = os.path.split(stream.name)[0] diff --git a/awxkit/requirements.txt b/awxkit/requirements.txt index fb3d8fa102..6c9fdba970 100644 --- a/awxkit/requirements.txt +++ b/awxkit/requirements.txt @@ -1,2 +1,2 @@ -PyYAML>=5.1 +PyYAML requests