diff --git a/library/setup b/library/setup index 24a0985a1be..480964e9c61 100755 --- a/library/setup +++ b/library/setup @@ -711,11 +711,12 @@ class LinuxVirtual(Virtual): def get_virtual_facts(self): if os.path.exists("/proc/xen"): self.facts['virtualization_type'] = 'xen' + self.facts['virtualization_role'] = 'guest' if os.path.exists('/proc/xen/capabilities'): - self.facts['virtualization_role'] = 'host' - else: - self.facts['virtualization_role'] = 'guest' - + for line in open('/proc/xen/capabilities'): + if "control_d" in line: + self.facts['virtualization_role'] = 'host' + elif os.path.exists('/proc/vz'): self.facts['virtualization_type'] = 'openvz' if os.path.exists('/proc/vz/version'):