From db6c7dfb7310959c902c75ae3fe5c0e8c46a6572 Mon Sep 17 00:00:00 2001 From: Kevin Carter Date: Thu, 17 Aug 2017 00:56:12 -0500 Subject: [PATCH] Correct nova virt type detection The nova role was attempting to detect the virt type if one was not already pre-set however the tasks would only ever set the virt type to "qemu" which forces all workloads to run in software instead of hardware virt which has massive impacts in terms of workload performance. This change corrects the virt type detection logic so that it will run fall back to qemu should another virt type not be detected. Change-Id: I78093808f03238c3c019797a06bba3ceca821239 Signed-off-by: Kevin Carter --- tasks/main.yml | 2 -- tasks/nova_virt_detect.yml | 22 ++++++++++------------ 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/tasks/main.yml b/tasks/main.yml index deb73617..db84efb2 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -35,8 +35,6 @@ - include: nova_virt_detect.yml static: no - when: - - nova_virt_type is not defined tags: - always - nova-config diff --git a/tasks/nova_virt_detect.yml b/tasks/nova_virt_detect.yml index 2859f88c..81d29d90 100644 --- a/tasks/nova_virt_detect.yml +++ b/tasks/nova_virt_detect.yml @@ -17,34 +17,32 @@ command: cat /proc/cpuinfo register: cpuinfo_contents changed_when: false - tags: - - always - -- name: Register a fact for the nova qemu virt type - set_fact: - nova_virt_type: "qemu" - tags: - - always + when: + - nova_virt_type is not defined - name: Register a fact for the nova kvm virt type set_fact: nova_virt_type: "kvm" when: + - nova_virt_type is not defined - cpuinfo_contents.stdout.find('vmx') != -1 or cpuinfo_contents.stdout.find('svm') != -1 or cpuinfo_contents.stdout.find('PowerNV') != -1 or (cpuinfo_contents.stdout.find('pSeries') != -1 and cpuinfo_contents.stdout.find('qemu') != -1 and ansible_architecture == 'ppc64le') - tags: - - nova-virt-type-set - name: Register a fact for the nova powervm virt type set_fact: nova_virt_type: "powervm" when: + - nova_virt_type is not defined - cpuinfo_contents.stdout.find('pSeries') != -1 - ansible_architecture == 'ppc64le' - cpuinfo_contents.stdout.find('qemu') == -1 - tags: - - nova-virt-type-set + +- name: Register a fact for the nova qemu virt type + set_fact: + nova_virt_type: "qemu" + when: + - nova_virt_type is not defined