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 <kevin.carter@rackspace.com>
This commit is contained in:
Kevin Carter 2017-08-17 00:56:12 -05:00
parent 42fad6ddd7
commit db6c7dfb73
No known key found for this signature in database
GPG Key ID: 69FEFFC5E2D9273F
2 changed files with 10 additions and 14 deletions

View File

@ -35,8 +35,6 @@
- include: nova_virt_detect.yml
static: no
when:
- nova_virt_type is not defined
tags:
- always
- nova-config

View File

@ -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