diff --git a/library/system/setup b/library/system/setup index 4fae1485f08..5b78aae02e8 100644 --- a/library/system/setup +++ b/library/system/setup @@ -626,28 +626,27 @@ class LinuxHardware(Hardware): if line.startswith('/'): fields = line.rstrip('\n').split() if(fields[2] != 'none'): + size_total = None + size_available = None try: statvfs_result = os.statvfs(fields[1]) - self.facts['mounts'].append( - {'mount': fields[1], - 'device':fields[0], - 'fstype': fields[2], - 'options': fields[3], - # statvfs data - 'size_total': statvfs_result.f_bsize * statvfs_result.f_blocks, - 'size_available': statvfs_result.f_bsize * (statvfs_result.f_bavail), - }) + size_total = statvfs_result.f_bsize * statvfs_result.f_blocks + size_available = statvfs_result.f_bsize * (statvfs_result.f_bavail) except OSError, e: - # don't have access to stat so we'll set to None - self.facts['mounts'].append( - {'mount': fields[1], - 'device':fields[0], - 'fstype': fields[2], - 'options': fields[3], - # statvfs data - 'size_total': None, - 'size_available': None, - }) + if e.errno == errno.ENOENT: + pass + else: + self.fail_json(msg=e.strerror) + + self.facts['mounts'].append( + {'mount': fields[1], + 'device':fields[0], + 'fstype': fields[2], + 'options': fields[3], + # statvfs data + 'size_total': size_total, + 'size_available': size_available, + }) def get_device_facts(self): self.facts['devices'] = {}