package org.ovirt.engine.core.bll.utils;
import org.ovirt.engine.core.common.businessentities.VM;
import org.ovirt.engine.core.common.businessentities.VmBase;
import org.ovirt.engine.core.compat.Guid;
import org.ovirt.engine.core.compat.Version;
import org.ovirt.engine.core.dal.dbbroker.DbFacade;
import org.ovirt.engine.core.dao.ClusterDao;
import org.ovirt.engine.core.dao.VdsDao;
public class ClusterUtils {
private static ClusterUtils instance = new ClusterUtils();
public static ClusterUtils getInstance() {
return instance;
}
public boolean hasMultipleServers(Guid clusterId) {
return getServerCount(clusterId) > 1;
}
public boolean hasServers(Guid clusterId) {
return getServerCount(clusterId) > 0;
}
public int getServerCount(Guid clusterId) {
return getVdsDao().getAllForCluster(clusterId).size();
}
public VdsDao getVdsDao() {
return DbFacade.getInstance()
.getVdsDao();
}
public static Version getCompatibilityVersion(VM vm) {
return getCompatibilityVersion(vm.getStaticData());
}
public static Version getCompatibilityVersion(VmBase vmBase) {
return vmBase.getClusterId() != null ?
getInstance().getClusterDao().get(vmBase.getClusterId()).getCompatibilityVersion()
: Version.ALL.get(0);
}
public ClusterDao getClusterDao() {
return DbFacade.getInstance().getClusterDao();
}
}