package org.ovirt.engine.core.bll.utils; import java.io.Serializable; import java.util.Set; import org.apache.commons.lang.StringUtils; import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.common.config.Config; import org.ovirt.engine.core.common.config.ConfigValues; import org.ovirt.engine.core.common.errors.EngineMessage; import org.ovirt.engine.core.compat.Version; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class VersionSupport implements Serializable { private static final long serialVersionUID = 8368679686604395114L; private static final Logger log = LoggerFactory.getLogger(VersionSupport.class); private VersionSupport() { } public static boolean checkVersionSupported(final Version compatibility_version) { boolean result = true; if (compatibility_version == null || !Config.<Set<Version>>getValue( ConfigValues.SupportedClusterLevels).contains(compatibility_version)) { result = false; } return result; } public static EngineMessage getUnsupportedVersionMessage() { return EngineMessage.ACTION_TYPE_FAILED_GIVEN_VERSION_NOT_SUPPORTED; } /** * check that cluster version included in host supported clusters * * @return true if the version is supported, else false */ public static boolean checkClusterVersionSupported(Version clusterCompatibilityVersion, VDS vds) { boolean isVersionSupported = !StringUtils.isEmpty(vds.getSupportedClusterLevels()); if (isVersionSupported) { try { isVersionSupported = vds.getSupportedClusterVersionsSet().contains(clusterCompatibilityVersion); } catch (RuntimeException e) { log.error("{}", e.getMessage()); log.debug("Exception", e); isVersionSupported = false; } } return isVersionSupported; } }