From 6886683e16f962313d243a851ec3076a8d1d30e7 Mon Sep 17 00:00:00 2001 From: Brian Coca Date: Fri, 12 Oct 2012 15:18:19 -0400 Subject: [PATCH] small patch to fact gathering for when no dmesg.boot exists on freebsd, mainly happens in jails Signed-off-by: Brian Coca --- library/setup | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/library/setup b/library/setup index eea5d2e18c9..fee9bad03ab 100755 --- a/library/setup +++ b/library/setup @@ -438,13 +438,22 @@ class FreeBSDHardware(Hardware): stdout=subprocess.PIPE, stderr=subprocess.PIPE) out, err = cmd.communicate() self.facts['processor_count'] = out.strip() - for line in open(FreeBSDHardware.DMESG_BOOT).readlines(): + + try: + dmesg_boot = open(FreeBSDHardware.DMESG_BOOT) + except IOError: + dmesg_cmd = subprocess.Popen("/sbin/dmesg", shell=True, + stdout=subprocess.PIPE, stderr=subprocess.PIPE) + dmesg_boot,dmesg_err = dmesg_cmd.communicate() + + for line in dmesg_boot.readlines(): if 'CPU:' in line: cpu = re.sub(r'CPU:\s+', r"", line) self.facts['processor'].append(cpu.strip()) if 'Logical CPUs per core' in line: self.facts['processor_cores'] = line.split()[4] + def get_memory_facts(self): cmd = subprocess.Popen("/sbin/sysctl vm.stats", shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)