@@ -3229,30 +3229,36 @@ protected void configureVirtualTPM(VirtualMachineMO vmMo, VirtualMachineTO vmSpe
32293229 return ;
32303230 }
32313231 }
3232- Description description = new Description ();
3233- description .setSummary ("Trusted Platform Module" );
3234- description .setLabel ("Trusted Platform Module" );
3235- VirtualTPM virtualTPM = new VirtualTPM ();
3236- virtualTPM .setDeviceInfo (description );
3237- VirtualDeviceConfigSpec deviceConfigSpec = new VirtualDeviceConfigSpec ();
3238- deviceConfigSpec .setDevice (virtualTPM );
3239- deviceConfigSpec .setOperation (VirtualDeviceConfigSpecOperation .ADD );
3240- vmConfigSpec .getDeviceChange ().add (deviceConfigSpec );
3232+ addVirtualTPMDevice (vmConfigSpec );
32413233 } else {
32423234 logger .debug (String .format ("Virtual TPM device is not enabled. It is only enabled when boot type is SECURE (actually %s) and vTPM is enabled (actually %s)" , bootType , virtualTPMEnabled ));
32433235 for (VirtualDevice device : vmMo .getAllDeviceList ()) {
32443236 if (device instanceof VirtualTPM ) {
3245- VirtualTPM virtualTPM = (VirtualTPM ) device ;
3246- VirtualDeviceConfigSpec virtualDeviceConfigSpec = new VirtualDeviceConfigSpec ();
3247- virtualDeviceConfigSpec .setDevice (virtualTPM );
3248- virtualDeviceConfigSpec .setOperation (VirtualDeviceConfigSpecOperation .REMOVE );
3249- vmConfigSpec .getDeviceChange ().add (virtualDeviceConfigSpec );
3237+ removeVirtualTPMDevice (vmConfigSpec , (VirtualTPM ) device );
32503238 }
32513239 }
3252-
32533240 }
32543241 }
32553242
3243+ private void addVirtualTPMDevice (VirtualMachineConfigSpec vmConfigSpec ) {
3244+ Description description = new Description ();
3245+ description .setSummary ("Trusted Platform Module" );
3246+ description .setLabel ("Trusted Platform Module" );
3247+ VirtualTPM virtualTPM = new VirtualTPM ();
3248+ virtualTPM .setDeviceInfo (description );
3249+ VirtualDeviceConfigSpec deviceConfigSpec = new VirtualDeviceConfigSpec ();
3250+ deviceConfigSpec .setDevice (virtualTPM );
3251+ deviceConfigSpec .setOperation (VirtualDeviceConfigSpecOperation .ADD );
3252+ vmConfigSpec .getDeviceChange ().add (deviceConfigSpec );
3253+ }
3254+
3255+ private void removeVirtualTPMDevice (VirtualMachineConfigSpec vmConfigSpec , VirtualTPM virtualTPM ) {
3256+ VirtualDeviceConfigSpec virtualDeviceConfigSpec = new VirtualDeviceConfigSpec ();
3257+ virtualDeviceConfigSpec .setDevice (virtualTPM );
3258+ virtualDeviceConfigSpec .setOperation (VirtualDeviceConfigSpecOperation .REMOVE );
3259+ vmConfigSpec .getDeviceChange ().add (virtualDeviceConfigSpec );
3260+ }
3261+
32563262 private void tearDownVm (VirtualMachineMO vmMo ) throws Exception {
32573263
32583264 if (vmMo == null )
0 commit comments