virt-manager/virtinst/devices/tpm.py
Daniel Henrique Barboza ae3e92f0f5 tpm.py: make MODEL_SPAPR the default when running in ppc64
Users are fond of using "--tpm /dev/tpm0" to create a TPM device
for their VMs. ppc64 users, however, are experiencing errors because
the default TPM model is 'tpm-tis', which does not work in ppc64, and
they need to specify 'model=tpm-spapr' to work around that.

This patch makes the default TPM model change to 'tpm-spapr' when
running virt-install on a ppc64 host. A new test was added in test_cli.py
to test this new condition. This also keeps the 100% coverage of
the tpm.py file.

Reviewed-by: Cole Robinson <crobinso@redhat.com>
CC: Satheesh Rajendran <sathnaga@linux.vnet.ibm.com>
CC: Stefan Berger <stefanb@linux.ibm.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
2020-07-04 17:56:57 -04:00

47 lines
1.2 KiB
Python

#
# Copyright 2011, 2013 Red Hat, Inc.
# Copyright 2013 IBM Corporation
#
# This work is licensed under the GNU GPLv2 or later.
# See the COPYING file in the top-level directory.
from .device import Device
from ..xmlbuilder import XMLProperty
class DeviceTpm(Device):
XML_NAME = "tpm"
VERSION_1_2 = "1.2"
VERSION_2_0 = "2.0"
VERSIONS = [VERSION_1_2, VERSION_2_0]
TYPE_PASSTHROUGH = "passthrough"
TYPE_EMULATOR = "emulator"
TYPES = [TYPE_PASSTHROUGH, TYPE_EMULATOR]
MODEL_TIS = "tpm-tis"
MODEL_CRB = "tpm-crb"
MODEL_SPAPR = "tpm-spapr"
MODELS = [MODEL_TIS, MODEL_CRB, MODEL_SPAPR]
type = XMLProperty("./backend/@type")
version = XMLProperty("./backend/@version")
model = XMLProperty("./@model")
device_path = XMLProperty("./backend/device/@path")
encryption_secret = XMLProperty("./backend/encryption/@secret")
##################
# Default config #
##################
def set_defaults(self, guest):
if not self.type:
self.type = self.TYPE_PASSTHROUGH
if not self.model:
self.model = self.MODEL_TIS
if guest.os.is_ppc64():
self.model = self.MODEL_SPAPR