addhardware: learn to choose a TPM model

There is only one for now, but we are adding CRB next (and SPAPR is
being added too in qemu/libvirt).

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
This commit is contained in:
Marc-André Lureau 2018-06-08 17:42:39 -04:00 committed by Cole Robinson
parent 846e2f711a
commit c04733c10d
3 changed files with 47 additions and 11 deletions

View File

@ -1402,6 +1402,20 @@
<property name="can_focus">False</property>
<property name="row_spacing">6</property>
<property name="column_spacing">6</property>
<child>
<object class="GtkLabel" id="tpm-device-path-label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes">Device _Path:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">tpm-device-path</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">2</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="tpm-device-path">
<property name="visible">True</property>
@ -1411,17 +1425,17 @@
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">1</property>
<property name="top_attach">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="tpm-device-path-label">
<object class="GtkLabel" id="label35">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes">Device _Path:</property>
<property name="halign">end</property>
<property name="label" translatable="yes">_Backend:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">tpm-device-path</property>
<property name="mnemonic_widget">tpm-type</property>
</object>
<packing>
<property name="left_attach">0</property>
@ -1436,20 +1450,30 @@
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">end</property>
<property name="label" translatable="yes">_Model:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">tpm-model</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label35">
<object class="GtkComboBox" id="tpm-model">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">end</property>
<property name="label" translatable="yes">_Backend:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">tpm-type</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
</packing>
</child>

View File

@ -680,6 +680,10 @@ class vmmAddHardware(vmmGObjectUI):
for t in DeviceTpm.TYPES:
values.append([t, DeviceTpm.get_pretty_type(t)])
_build_combo(self.widget("tpm-type"), values)
values = []
for t in DeviceTpm.MODELS:
values.append([t, DeviceTpm.get_pretty_model(t)])
_build_combo(self.widget("tpm-model"), values)
def _build_panic_model_combo(self):
@ -1440,9 +1444,11 @@ class vmmAddHardware(vmmGObjectUI):
def _validate_page_tpm(self):
typ = uiutil.get_list_selection(self.widget("tpm-type"))
model = uiutil.get_list_selection(self.widget("tpm-model"))
device_path = self.widget("tpm-device-path").get_text()
self._dev = DeviceTpm(self.conn.get_backend())
self._dev.type = typ
self._dev.model = model
self._dev.device_path = device_path
def _validate_page_panic(self):

View File

@ -30,6 +30,12 @@ class DeviceTpm(Device):
return _("Passthrough device")
return tpm_type
@staticmethod
def get_pretty_model(tpm_model):
if tpm_model == DeviceTpm.MODEL_TIS:
return _("TIS")
return tpm_model
def supports_property(self, propname):
"""
Whether the TPM dev type supports the passed property name