Skip to content

Commit c74f339

Browse files
committed
vTPM: use the default TPM version if an invalid version is passed
1 parent 580b1cb commit c74f339

File tree

2 files changed

+18
-4
lines changed

2 files changed

+18
-4
lines changed

plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtVMDef.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2411,7 +2411,7 @@ public TpmDef(String model, String version) {
24112411
this.version = Arrays.stream(TpmVersion.values())
24122412
.filter(tpmVersion -> tpmVersion.toString().equals(version))
24132413
.findFirst()
2414-
.orElse(null);;
2414+
.orElse(this.version);;
24152415
}
24162416
}
24172417

@@ -2426,9 +2426,11 @@ public TpmVersion getVersion() {
24262426
@Override
24272427
public String toString() {
24282428
StringBuilder tpmBuidler = new StringBuilder();
2429-
tpmBuidler.append("<tpm model='").append(model).append("'>\n");
2430-
tpmBuidler.append("<backend type='emulator' version='").append(version).append("'/>\n");
2431-
tpmBuidler.append("</tpm>\n");
2429+
if (model != null) {
2430+
tpmBuidler.append("<tpm model='").append(model).append("'>\n");
2431+
tpmBuidler.append("<backend type='emulator' version='").append(version).append("'/>\n");
2432+
tpmBuidler.append("</tpm>\n");
2433+
}
24322434
return tpmBuidler.toString();
24332435
}
24342436
}

plugins/hypervisors/kvm/src/test/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResourceTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6553,4 +6553,16 @@ public void testCreateTpmDef() {
65536553
assertEquals(LibvirtVMDef.TpmDef.TpmModel.TIS, tpmDef.getModel());
65546554
assertEquals(LibvirtVMDef.TpmDef.TpmVersion.V2_0, tpmDef.getVersion());
65556555
}
6556+
6557+
@Test
6558+
public void testCreateTpmDefWithInvalidVersion() {
6559+
VirtualMachineTO virtualMachineTO = Mockito.mock(VirtualMachineTO.class);
6560+
Map<String, String> details = new HashMap<>();
6561+
details.put(VmDetailConstants.VIRTUAL_TPM_MODEL, "tpm-crb");
6562+
details.put(VmDetailConstants.VIRTUAL_TPM_VERSION, "3.0");
6563+
Mockito.when(virtualMachineTO.getDetails()).thenReturn(details);
6564+
LibvirtVMDef.TpmDef tpmDef = libvirtComputingResourceSpy.createTpmDef(virtualMachineTO);
6565+
assertEquals(LibvirtVMDef.TpmDef.TpmModel.CRB, tpmDef.getModel());
6566+
assertEquals(LibvirtVMDef.TpmDef.TpmVersion.V2_0, tpmDef.getVersion());
6567+
}
65566568
}

0 commit comments

Comments
 (0)