From d0c003ab0f7fb98877d049b82899030bb2751723 Mon Sep 17 00:00:00 2001 From: Abhishek Shukla Date: Tue, 3 Oct 2017 09:30:51 +0530 Subject: [PATCH] BugFix code breaks, if include_vars dir is file instead of directory (#31157) --- lib/ansible/plugins/action/include_vars.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/ansible/plugins/action/include_vars.py b/lib/ansible/plugins/action/include_vars.py index 386115a344..5f89b1e703 100644 --- a/lib/ansible/plugins/action/include_vars.py +++ b/lib/ansible/plugins/action/include_vars.py @@ -109,15 +109,18 @@ class ActionModule(ActionBase): if self.source_dir: self._set_dir_defaults() self._set_root_dir() - if path.exists(self.source_dir): + if not path.exists(self.source_dir): + failed = True + err_msg = ('{0} directory does not exist'.format(self.source_dir)) + elif not path.isdir(self.source_dir): + failed = True + err_msg = ('{0} is not a directory'.format(self.source_dir)) + else: for root_dir, filenames in self._traverse_dir_depth(): failed, err_msg, updated_results = (self._load_files_in_dir(root_dir, filenames)) if failed: break results.update(updated_results) - else: - failed = True - err_msg = ('{0} directory does not exist'.format(self.source_dir)) else: try: self.source_file = self._find_needle('vars', self.source_file)