diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/vm/DeployVMCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/vm/DeployVMCmd.java index db315cca92e1..6496b84eb55e 100644 --- a/api/src/main/java/org/apache/cloudstack/api/command/user/vm/DeployVMCmd.java +++ b/api/src/main/java/org/apache/cloudstack/api/command/user/vm/DeployVMCmd.java @@ -281,10 +281,8 @@ public Map getDetails() { } } } - if(getBootType() != null){ // export to get - if(getBootType() == ApiConstants.BootType.UEFI) { - customparameterMap.put(getBootType().toString(), getBootMode().toString()); - } + if (ApiConstants.BootType.UEFI.equals(getBootType())) { + customparameterMap.put(getBootType().toString(), getBootMode().toString()); } if (rootdisksize != null && !customparameterMap.containsKey("rootdisksize")) { diff --git a/api/src/main/java/org/apache/cloudstack/api/response/HostResponse.java b/api/src/main/java/org/apache/cloudstack/api/response/HostResponse.java index 7b47f8a28caa..369e91ba02da 100644 --- a/api/src/main/java/org/apache/cloudstack/api/response/HostResponse.java +++ b/api/src/main/java/org/apache/cloudstack/api/response/HostResponse.java @@ -503,14 +503,13 @@ public void setDetails(Map details) { detailsCopy.remove("username"); detailsCopy.remove("password"); - if(detailsCopy.containsKey(Host.HOST_UEFI_ENABLE)) { + if (detailsCopy.containsKey(Host.HOST_UEFI_ENABLE)) { this.setUefiCapabilty(Boolean.parseBoolean((String) detailsCopy.get(Host.HOST_UEFI_ENABLE))); detailsCopy.remove(Host.HOST_UEFI_ENABLE); } else { this.setUefiCapabilty(new Boolean(false)); // in case of existing host which is not scanned for UEFI capability } - this.details = detailsCopy; } diff --git a/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java b/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java index 8817efbeaedc..5d295cab9f21 100755 --- a/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java +++ b/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java @@ -1064,10 +1064,7 @@ public void orchestrateStart(final String vmUuid, final Map params) { + if (params == null) { + return; + } + StringBuffer msgBuf = new StringBuffer("Uefi params "); + boolean log = false; + if (params.get(VirtualMachineProfile.Param.UefiFlag) != null) { + msgBuf.append(String.format("UefiFlag: %s ", params.get(VirtualMachineProfile.Param.UefiFlag))); + log = true; + } + if (params.get(VirtualMachineProfile.Param.BootType) != null) { + msgBuf.append(String.format("Boot Type: %s ", params.get(VirtualMachineProfile.Param.BootType))); + log = true; + } + if (params.get(VirtualMachineProfile.Param.BootMode) != null) { + msgBuf.append(String.format("Boot Mode: %s ", params.get(VirtualMachineProfile.Param.BootMode))); + log = true; + } + if (log) { + s_logger.info(msgBuf.toString()); + } + } + // Add extra config data to the vmTO as a Map private void addExtraConfig(VirtualMachineTO vmTO) { Map details = vmTO.getDetails(); diff --git a/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/guru/VMwareGuru.java b/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/guru/VMwareGuru.java index 4e8acad251b1..7f931187bd49 100644 --- a/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/guru/VMwareGuru.java +++ b/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/guru/VMwareGuru.java @@ -294,7 +294,9 @@ public VirtualMachineTO implement(VirtualMachineProfile vm) { } } - details.put(VmDetailConstants.BOOT_MODE, to.getBootType()); + details.put(VmDetailConstants.BOOT_MODE, to.getBootMode()); +// there should also be +// details.put(VmDetailConstants.BOOT_TYPE, to.getBootType()); String diskDeviceType = details.get(VmDetailConstants.ROOT_DISK_CONTROLLER); if (userVm) { if (diskDeviceType == null) { diff --git a/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java b/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java index 5a1459d37426..caaecc3f92a5 100644 --- a/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java +++ b/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java @@ -1724,10 +1724,13 @@ protected StartAnswer execute(StartCommand cmd) { String dataDiskController = vmSpec.getDetails().get(VmDetailConstants.DATA_DISK_CONTROLLER); String rootDiskController = vmSpec.getDetails().get(VmDetailConstants.ROOT_DISK_CONTROLLER); DiskTO rootDiskTO = null; - String bootMode = ApiConstants.BootType.BIOS.toString(); + String bootMode = null; if (vmSpec.getDetails().containsKey(VmDetailConstants.BOOT_MODE)) { bootMode = vmSpec.getDetails().get(VmDetailConstants.BOOT_MODE); } + if(null == bootMode) { + bootMode = ApiConstants.BootType.BIOS.toString(); + } // If root disk controller is scsi, then data disk controller would also be scsi instead of using 'osdefault' // This helps avoid mix of different scsi subtype controllers in instance.