diff --git a/server/src/com/cloud/hypervisor/HypervisorGuruBase.java b/server/src/com/cloud/hypervisor/HypervisorGuruBase.java index 798b25e067e..5e2f4dd2d27 100644 --- a/server/src/com/cloud/hypervisor/HypervisorGuruBase.java +++ b/server/src/com/cloud/hypervisor/HypervisorGuruBase.java @@ -18,18 +18,24 @@ package com.cloud.hypervisor; import java.util.List; +import java.util.Map; import com.cloud.agent.api.Command; import com.cloud.agent.api.to.NicTO; import com.cloud.agent.api.to.VirtualMachineTO; import com.cloud.agent.api.to.VolumeTO; import com.cloud.offering.ServiceOffering; +import com.cloud.storage.dao.VMTemplateDetailsDao; import com.cloud.utils.component.AdapterBase; +import com.cloud.utils.component.Inject; import com.cloud.vm.NicProfile; import com.cloud.vm.VirtualMachine; import com.cloud.vm.VirtualMachineProfile; public abstract class HypervisorGuruBase extends AdapterBase implements HypervisorGuru { + + @Inject VMTemplateDetailsDao _templateDetailsDao; + protected HypervisorGuruBase() { super(); } @@ -80,8 +86,14 @@ public abstract class HypervisorGuruBase extends AdapterBase implements Hypervis to.setArch("x86_64"); } - to.setDetails(vm.getDetails()); - + long templateId = vm.getTemplateId(); + Map details = _templateDetailsDao.findDetails(templateId); + assert(details != null); + Map detailsInVm = vm.getDetails(); + if(detailsInVm != null) { + details.putAll(detailsInVm); + } + to.setDetails(details); return to; }