server: set VirtualMachineTO arch from template if present (#11530)
* server: set VirtualMachineTO arch from template if present
Fixes #11529
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
* refactor
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
---------
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
diff --git a/server/src/main/java/com/cloud/hypervisor/HypervisorGuruBase.java b/server/src/main/java/com/cloud/hypervisor/HypervisorGuruBase.java
index c510502..4f14fe2 100644
--- a/server/src/main/java/com/cloud/hypervisor/HypervisorGuruBase.java
+++ b/server/src/main/java/com/cloud/hypervisor/HypervisorGuruBase.java
@@ -23,6 +23,7 @@
import javax.inject.Inject;
+import com.cloud.cpu.CPU;
import com.cloud.dc.DataCenter;
import com.cloud.dc.dao.DataCenterDao;
import com.cloud.domain.Domain;
@@ -307,10 +308,15 @@
to.setNics(nics);
to.setDisks(vmProfile.getDisks().toArray(new DiskTO[vmProfile.getDisks().size()]));
- if (vmProfile.getTemplate().getBits() == 32) {
- to.setArch("i686");
+ CPU.CPUArch templateArch = vmProfile.getTemplate().getArch();
+ if (templateArch != null) {
+ to.setArch(templateArch.getType());
} else {
- to.setArch("x86_64");
+ if (vmProfile.getTemplate().getBits() == 32) {
+ to.setArch(CPU.CPUArch.x86.getType());
+ } else {
+ to.setArch(CPU.CPUArch.amd64.getType());
+ }
}
Map<String, String> detailsInVm = _userVmDetailsDao.listDetailsKeyPairs(vm.getId());