diff --git a/server/src/com/cloud/agent/manager/AgentManagerImpl.java b/server/src/com/cloud/agent/manager/AgentManagerImpl.java index e8a5606e3d3..cb579947bd6 100755 --- a/server/src/com/cloud/agent/manager/AgentManagerImpl.java +++ b/server/src/com/cloud/agent/manager/AgentManagerImpl.java @@ -728,6 +728,7 @@ public class AgentManagerImpl implements AgentManager, HandlerFactory, ResourceS if (clusterName != null) { ClusterVO cluster = new ClusterVO(dcId, podId, clusterName); + cluster.setHypervisorType(hypervisorType); try { cluster = _clusterDao.persist(cluster); } catch (Exception e) { @@ -2209,7 +2210,12 @@ public class AgentManagerImpl implements AgentManager, HandlerFactory, ResourceS HypervisorType hypervisorType = scc.getHypervisorType(); boolean doCidrCheck = true; - + + ClusterVO clusterVO = _clusterDao.findById(clusterId); + if (clusterVO.getHypervisorType() != scc.getHypervisorType()) { + throw new IllegalArgumentException("Can't add host whose hypervisor type is: " + scc.getHypervisorType() + " into cluster: " + clusterId + " whose hypervisor type is: " + clusterVO.getHypervisorType()); + } + /*KVM:Enforcement that all the hosts in the cluster have the same os type, for migration*/ if (scc.getHypervisorType() == HypervisorType.KVM) { diff --git a/server/src/com/cloud/hypervisor/kvm/discoverer/KvmServerDiscoverer.java b/server/src/com/cloud/hypervisor/kvm/discoverer/KvmServerDiscoverer.java index ac6710cbd8a..8de92d6bf19 100644 --- a/server/src/com/cloud/hypervisor/kvm/discoverer/KvmServerDiscoverer.java +++ b/server/src/com/cloud/hypervisor/kvm/discoverer/KvmServerDiscoverer.java @@ -251,10 +251,6 @@ public class KvmServerDiscoverer extends DiscovererBase implements Discoverer, return null; details.put("guid", guidWithTail); - /*set cluster hypervisor type to xenserver*/ - ClusterVO clu = _clusterDao.findById(clusterId); - clu.setHypervisorType(HypervisorType.KVM.toString()); - _clusterDao.update(clusterId, clu); return resources; } catch (Exception e) { String msg = " can't setup agent, due to " + e.toString() + " - " + e.getMessage(); diff --git a/server/src/com/cloud/hypervisor/xen/discoverer/XcpServerDiscoverer.java b/server/src/com/cloud/hypervisor/xen/discoverer/XcpServerDiscoverer.java index 2e15bded5f0..afbdaeaaa56 100644 --- a/server/src/com/cloud/hypervisor/xen/discoverer/XcpServerDiscoverer.java +++ b/server/src/com/cloud/hypervisor/xen/discoverer/XcpServerDiscoverer.java @@ -164,9 +164,6 @@ public class XcpServerDiscoverer extends DiscovererBase implements Discoverer, L } } poolUuid = clu.getGuid(); - if ( HypervisorType.None == clu.getHypervisorType() ) { - clu.setHypervisorType(HypervisorType.XenServer.toString()); - } _clusterDao.update(clusterId, clu); LinkedHashMap hosts = new LinkedHashMap(20);