Search in sources :

Example 46 with Version

use of org.ovirt.engine.core.compat.Version in project ovirt-engine by oVirt.

the class UpdateStoragePoolCommand method validate.

@Override
protected boolean validate() {
    StoragePoolValidator spValidator = createStoragePoolValidator();
    if (!validate(spValidator.exists())) {
        return false;
    }
    // Name related validations
    if (!StringUtils.equals(getOldStoragePool().getName(), getStoragePool().getName()) && !isStoragePoolUnique(getStoragePool().getName())) {
        return failValidation(EngineMessage.ACTION_TYPE_FAILED_STORAGE_POOL_NAME_ALREADY_EXIST);
    }
    if (!checkStoragePoolNameLengthValid()) {
        return false;
    }
    List<StorageDomainStatic> poolDomains = storageDomainStaticDao.getAllForStoragePool(getStoragePool().getId());
    if (getOldStoragePool().isLocal() && !getStoragePool().isLocal() && poolDomains.stream().anyMatch(sdc -> sdc.getStorageType() == StorageType.LOCALFS)) {
        return failValidation(EngineMessage.ERROR_CANNOT_CHANGE_STORAGE_POOL_TYPE_WITH_LOCAL);
    }
    if (!getOldStoragePool().isLocal() && getStoragePool().isLocal()) {
        List<Cluster> clusters = clusterDao.getAllForStoragePool(getStoragePool().getId());
        if (clusters.size() > 1) {
            return failValidation(EngineMessage.CLUSTER_CANNOT_ADD_MORE_THEN_ONE_HOST_TO_LOCAL_STORAGE);
        }
        List<VDS> hosts = vdsDao.getAllForStoragePool(getStoragePool().getId());
        if (hosts.size() > 1) {
            return failValidation(EngineMessage.VDS_CANNOT_ADD_MORE_THEN_ONE_HOST_TO_LOCAL_STORAGE);
        }
    }
    if (!getOldStoragePool().getCompatibilityVersion().equals(getStoragePool().getCompatibilityVersion())) {
        if (!isStoragePoolVersionSupported()) {
            return failValidation(VersionSupport.getUnsupportedVersionMessage());
        } else // decreasing of compatibility version is allowed under conditions
        if (getStoragePool().getCompatibilityVersion().compareTo(getOldStoragePool().getCompatibilityVersion()) < 0) {
            if (!poolDomains.isEmpty() && !isCompatibilityVersionChangeAllowedForDomains(poolDomains)) {
                return false;
            }
            List<Network> networks = networkDao.getAllForDataCenter(getStoragePoolId());
            for (Network network : networks) {
                NetworkValidator validator = getNetworkValidator(network);
                if (!getManagementNetworkUtil().isManagementNetwork(network.getId()) || !validator.canNetworkCompatibilityBeDecreased()) {
                    return failValidation(EngineMessage.ACTION_TYPE_FAILED_CANNOT_DECREASE_DATA_CENTER_COMPATIBILITY_VERSION);
                }
            }
        } else if (!checkAllClustersLevel()) {
            // Check all clusters has at least the same compatibility version.
            return false;
        }
    }
    return validate(spValidator.isNotLocalfsWithDefaultCluster()) && validate(allMacsInEveryClusterCanBeMigratedToAnotherPool());
}
Also used : StorageDomainStatic(org.ovirt.engine.core.common.businessentities.StorageDomainStatic) ClusterDao(org.ovirt.engine.core.dao.ClusterDao) StringUtils(org.apache.commons.lang.StringUtils) NonTransactiveCommandAttribute(org.ovirt.engine.core.bll.NonTransactiveCommandAttribute) EngineException(org.ovirt.engine.core.common.errors.EngineException) SyncLunsParameters(org.ovirt.engine.core.common.action.SyncLunsParameters) DiskLunMap(org.ovirt.engine.core.common.businessentities.storage.DiskLunMap) VmStaticDao(org.ovirt.engine.core.dao.VmStaticDao) CommandContext(org.ovirt.engine.core.bll.context.CommandContext) ActionType(org.ovirt.engine.core.common.action.ActionType) VdsDao(org.ovirt.engine.core.dao.VdsDao) StoragePoolDao(org.ovirt.engine.core.dao.StoragePoolDao) Version(org.ovirt.engine.core.compat.Version) StorageFormatType(org.ovirt.engine.core.common.businessentities.StorageFormatType) StorageType(org.ovirt.engine.core.common.businessentities.storage.StorageType) EngineMessage(org.ovirt.engine.core.common.errors.EngineMessage) ManagementNetworkUtil(org.ovirt.engine.core.bll.network.cluster.ManagementNetworkUtil) NetworkDao(org.ovirt.engine.core.dao.network.NetworkDao) Collectors(java.util.stream.Collectors) VmDao(org.ovirt.engine.core.dao.VmDao) List(java.util.List) Cluster(org.ovirt.engine.core.common.businessentities.Cluster) ValidationResult(org.ovirt.engine.core.bll.ValidationResult) AuditLogType(org.ovirt.engine.core.common.AuditLogType) VdcObjectType(org.ovirt.engine.core.common.VdcObjectType) FeatureSupported(org.ovirt.engine.core.common.FeatureSupported) StoragePool(org.ovirt.engine.core.common.businessentities.StoragePool) DiskLunMapDao(org.ovirt.engine.core.dao.DiskLunMapDao) Guid(org.ovirt.engine.core.compat.Guid) ReplacementUtils(org.ovirt.engine.core.utils.ReplacementUtils) TransactionSupport(org.ovirt.engine.core.utils.transaction.TransactionSupport) ArrayList(java.util.ArrayList) StoragePoolManagementParameter(org.ovirt.engine.core.common.action.StoragePoolManagementParameter) Inject(javax.inject.Inject) StorageDomainToPoolRelationValidator(org.ovirt.engine.core.bll.validator.storage.StorageDomainToPoolRelationValidator) StorageDomainStatic(org.ovirt.engine.core.common.businessentities.StorageDomainStatic) Network(org.ovirt.engine.core.common.businessentities.network.Network) StorageDomainStaticDao(org.ovirt.engine.core.dao.StorageDomainStaticDao) VersionStorageFormatUtil(org.ovirt.engine.core.common.utils.VersionStorageFormatUtil) NetworkValidator(org.ovirt.engine.core.bll.validator.NetworkValidator) StoragePoolValidator(org.ovirt.engine.core.bll.validator.storage.StoragePoolValidator) StoragePoolStatus(org.ovirt.engine.core.common.businessentities.StoragePoolStatus) AuditLogDirector(org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector) VersionSupport(org.ovirt.engine.core.bll.utils.VersionSupport) EngineError(org.ovirt.engine.core.common.errors.EngineError) TransactionScopeOption(org.ovirt.engine.core.compat.TransactionScopeOption) AuditLogable(org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogable) MoveMacs(org.ovirt.engine.core.bll.MoveMacs) UpgradeStoragePoolVDSCommandParameters(org.ovirt.engine.core.common.vdscommands.UpgradeStoragePoolVDSCommandParameters) RenamedEntityInfoProvider(org.ovirt.engine.core.bll.RenamedEntityInfoProvider) VDSCommandType(org.ovirt.engine.core.common.vdscommands.VDSCommandType) StorageDomainType(org.ovirt.engine.core.common.businessentities.StorageDomainType) VDS(org.ovirt.engine.core.common.businessentities.VDS) StoragePoolValidator(org.ovirt.engine.core.bll.validator.storage.StoragePoolValidator) NetworkValidator(org.ovirt.engine.core.bll.validator.NetworkValidator) VDS(org.ovirt.engine.core.common.businessentities.VDS) Network(org.ovirt.engine.core.common.businessentities.network.Network) Cluster(org.ovirt.engine.core.common.businessentities.Cluster) List(java.util.List) ArrayList(java.util.ArrayList)

Example 47 with Version

use of org.ovirt.engine.core.compat.Version in project ovirt-engine by oVirt.

the class VideoDeviceSettings method getVideoDeviceSettings.

private Map<String, Integer> getVideoDeviceSettings(VmBase vmBase) {
    Version vmVersion = vmBase.getCustomCompatibilityVersion();
    Supplier<Version> clusterVersionSupplier = () -> clusterUtils.getCompatibilityVersion(vmBase);
    if (CompatibilityVersionUtils.getEffective(vmVersion, clusterVersionSupplier).greaterOrEquals(Version.v3_6)) {
        if (vmBase.getDefaultDisplayType() == DisplayType.qxl) {
            return vgamemVideoSettings.getQxlVideoDeviceSettings(vmBase);
        } else {
            return vgamemVideoSettings.getVgaVideoDeviceSettings();
        }
    } else {
        return legacyVideoSettings.getVideoDeviceSettings(vmBase);
    }
}
Also used : Version(org.ovirt.engine.core.compat.Version)

Example 48 with Version

use of org.ovirt.engine.core.compat.Version in project ovirt-engine by oVirt.

the class AddVdsCommandTest method makeTestVds.

private VDS makeTestVds(Guid vdsId) {
    VDS newVdsData = new VDS();
    newVdsData.setHostName("BUZZ");
    newVdsData.setSshPort(22);
    newVdsData.setSshUsername("root");
    newVdsData.setSshKeyFingerprint("1234");
    newVdsData.setVdsName("BAR");
    newVdsData.setClusterCompatibilityVersion(new Version("1.2.3"));
    newVdsData.setClusterId(Guid.newGuid());
    newVdsData.setId(vdsId);
    return newVdsData;
}
Also used : VDS(org.ovirt.engine.core.common.businessentities.VDS) Version(org.ovirt.engine.core.compat.Version)

Example 49 with Version

use of org.ovirt.engine.core.compat.Version in project ovirt-engine by oVirt.

the class AddVdsCommandTest method setupCommonMock.

private void setupCommonMock(boolean glusterEnabled) throws Exception {
    mockHostValidator();
    doReturn(glusterEnabled).when(command).isGlusterSupportEnabled();
    doReturn(true).when(command).validateCluster();
    doReturn(sshClient).when(command).getSSHClient();
    Version version = new Version("1.2.3");
    Cluster cluster = new Cluster();
    cluster.setCompatibilityVersion(version);
    doReturn(cluster).when(command).getCluster();
}
Also used : Version(org.ovirt.engine.core.compat.Version) Cluster(org.ovirt.engine.core.common.businessentities.Cluster)

Example 50 with Version

use of org.ovirt.engine.core.compat.Version in project ovirt-engine by oVirt.

the class NetworkFilterDaoTest method testGetAllSupportedNetworkFiltersByVersion.

@Test
public void testGetAllSupportedNetworkFiltersByVersion() {
    final Version version = new Version("4.0");
    final List<NetworkFilter> allNetworkFilter = dao.getAllSupportedNetworkFiltersByVersion(version);
    assertNotNull(allNetworkFilter);
    assertEquals(3, allNetworkFilter.size());
    NetworkFilter expectedNetworkFilter = initOvirtNoFilter();
    assertEquals(expectedNetworkFilter, allNetworkFilter.get(1));
    expectedNetworkFilter = expectedNetworkFilter();
    assertEquals(expectedNetworkFilter, allNetworkFilter.get(0));
}
Also used : Version(org.ovirt.engine.core.compat.Version) NetworkFilter(org.ovirt.engine.core.common.businessentities.network.NetworkFilter) Test(org.junit.Test)

Aggregations

Version (org.ovirt.engine.core.compat.Version)102 ArrayList (java.util.ArrayList)24 Cluster (org.ovirt.engine.core.common.businessentities.Cluster)20 Guid (org.ovirt.engine.core.compat.Guid)20 StoragePool (org.ovirt.engine.core.common.businessentities.StoragePool)17 Map (java.util.Map)16 List (java.util.List)15 HashSet (java.util.HashSet)14 VDS (org.ovirt.engine.core.common.businessentities.VDS)14 HashMap (java.util.HashMap)13 ServerCpu (org.ovirt.engine.core.common.businessentities.ServerCpu)12 VM (org.ovirt.engine.core.common.businessentities.VM)11 ConfigValues (org.ovirt.engine.core.common.config.ConfigValues)11 QueryReturnValue (org.ovirt.engine.core.common.queries.QueryReturnValue)11 Arrays (java.util.Arrays)10 MigrationPolicy (org.ovirt.engine.core.common.migration.MigrationPolicy)10 AsyncDataProvider (org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider)10 Collection (java.util.Collection)9 Collections (java.util.Collections)9 ArchitectureType (org.ovirt.engine.core.common.businessentities.ArchitectureType)9