Merge pull request #11079 from amegianeg/fix_broad_except_in_inventory

Avoid too broad except in Inventory
This commit is contained in:
James Cammarata 2015-07-23 13:36:02 -04:00
commit 65ae9780fa

View file

@ -113,19 +113,18 @@ class Inventory(object):
# class we can show a more apropos error
shebang_present = False
try:
inv_file = open(host_list)
first_line = inv_file.readlines()[0]
inv_file.close()
if first_line.startswith('#!'):
with open(host_list, "r") as inv_file:
first_line = inv_file.readline()
if first_line.startswith("#!"):
shebang_present = True
except:
except IOError:
pass
if is_executable(host_list):
try:
self.parser = InventoryScript(loader=self._loader, filename=host_list)
self.groups = self.parser.groups.values()
except:
except errors.AnsibleError:
if not shebang_present:
raise errors.AnsibleError("The file %s is marked as executable, but failed to execute correctly. " % host_list + \
"If this is not supposed to be an executable script, correct this with `chmod -x %s`." % host_list)
@ -135,7 +134,7 @@ class Inventory(object):
try:
self.parser = InventoryParser(filename=host_list)
self.groups = self.parser.groups.values()
except:
except errors.AnsibleError:
if shebang_present:
raise errors.AnsibleError("The file %s looks like it should be an executable inventory script, but is not marked executable. " % host_list + \
"Perhaps you want to correct this with `chmod +x %s`?" % host_list)