Search in sources :

Example 86 with Network

use of org.ovirt.engine.core.common.businessentities.network.Network in project ovirt-engine by oVirt.

the class HostSetupNetworksValidator method validateQosNotPartiallyConfigured.

/**
 * Ensure that either none or all of the networks on a single interface have QoS configured on them.
 */
ValidationResult validateQosNotPartiallyConfigured(Collection<NetworkAttachment> attachmentsToConfigure) {
    Set<String> someSubInterfacesHaveQos = new HashSet<>();
    Set<String> notAllSubInterfacesHaveQos = new HashSet<>();
    // first map which interfaces have some QoS configured on them, and which interfaces lack some QoS configuration
    for (NetworkAttachment networkAttachment : attachmentsToConfigure) {
        Network network = getNetworkRelatedToAttachment(networkAttachment);
        if (NetworkUtils.qosConfiguredOnInterface(networkAttachment, network)) {
            someSubInterfacesHaveQos.add(networkAttachment.getNicName());
        } else {
            notAllSubInterfacesHaveQos.add(networkAttachment.getNicName());
        }
    }
    // if any base interface has some sub-interfaces with QoS and some without - this is a partial configuration
    for (String ifaceName : someSubInterfacesHaveQos) {
        if (notAllSubInterfacesHaveQos.contains(ifaceName)) {
            return new ValidationResult(EngineMessage.ACTION_TYPE_FAILED_HOST_NETWORK_QOS_INTERFACES_WITHOUT_QOS, ReplacementUtils.createSetVariableString("ACTION_TYPE_FAILED_HOST_NETWORK_QOS_INTERFACES_WITHOUT_QOS_LIST", ifaceName));
        }
    }
    return ValidationResult.VALID;
}
Also used : FindActiveVmsUsingNetwork(org.ovirt.engine.core.bll.network.FindActiveVmsUsingNetwork) Network(org.ovirt.engine.core.common.businessentities.network.Network) ValidationResult(org.ovirt.engine.core.bll.ValidationResult) HashSet(java.util.HashSet) NetworkAttachment(org.ovirt.engine.core.common.businessentities.network.NetworkAttachment)

Example 87 with Network

use of org.ovirt.engine.core.common.businessentities.network.Network in project ovirt-engine by oVirt.

the class AutodefineExternalNetworkCommand method getPermissionCheckSubjects.

@Override
public List<PermissionSubject> getPermissionCheckSubjects() {
    Network network = getNetwork();
    Guid networkId = network == null ? null : network.getId();
    return Collections.singletonList(new PermissionSubject(networkId, VdcObjectType.Network, getActionType().getActionGroup()));
}
Also used : PermissionSubject(org.ovirt.engine.core.bll.utils.PermissionSubject) ProviderNetwork(org.ovirt.engine.core.common.businessentities.network.ProviderNetwork) Network(org.ovirt.engine.core.common.businessentities.network.Network) Guid(org.ovirt.engine.core.compat.Guid)

Example 88 with Network

use of org.ovirt.engine.core.common.businessentities.network.Network in project ovirt-engine by oVirt.

the class GetInterfacesByLabelForNetworkQuery method executeQueryCommand.

@Override
protected void executeQueryCommand() {
    Network network = networkDao.get(getParameters().getId());
    Set<VdsNetworkInterface> interfacesByLabelForNetwork = new HashSet<>();
    if (network == null) {
        getQueryReturnValue().setReturnValue(interfacesByLabelForNetwork);
        return;
    }
    List<NetworkCluster> clusters = networkClusterDao.getAllForNetwork(network.getId());
    if (clusters.isEmpty()) {
        getQueryReturnValue().setReturnValue(interfacesByLabelForNetwork);
        return;
    }
    List<VdsNetworkInterface> labeledNics = new ArrayList<>();
    for (NetworkCluster networkCluster : clusters) {
        labeledNics.addAll(interfaceDao.getAllInterfacesByLabelForCluster(networkCluster.getClusterId(), network.getLabel()));
    }
    if (labeledNics.isEmpty()) {
        getQueryReturnValue().setReturnValue(interfacesByLabelForNetwork);
        return;
    }
    List<VdsNetworkInterface> networkNics = interfaceDao.getVdsInterfacesByNetworkId(network.getId());
    Map<String, VdsNetworkInterface> labeledNicsByName = Entities.entitiesByName(labeledNics);
    for (VdsNetworkInterface networkNic : networkNics) {
        if (labeledNicsByName.containsKey(NetworkCommonUtils.stripVlan(networkNic))) {
            interfacesByLabelForNetwork.add(networkNic);
        }
    }
    getQueryReturnValue().setReturnValue(interfacesByLabelForNetwork);
}
Also used : Network(org.ovirt.engine.core.common.businessentities.network.Network) ArrayList(java.util.ArrayList) VdsNetworkInterface(org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface) NetworkCluster(org.ovirt.engine.core.common.businessentities.network.NetworkCluster) HashSet(java.util.HashSet)

Example 89 with Network

use of org.ovirt.engine.core.common.businessentities.network.Network 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 90 with Network

use of org.ovirt.engine.core.common.businessentities.network.Network in project ovirt-engine by oVirt.

the class ReportedConfigurationsFillerTest method createNetwork.

private Network createNetwork(String name) {
    Network network = new Network();
    network.setVmNetwork(false);
    network.setId(Guid.newGuid());
    network.setName(name);
    network.setQosId(Guid.newGuid());
    return network;
}
Also used : Network(org.ovirt.engine.core.common.businessentities.network.Network)

Aggregations

Network (org.ovirt.engine.core.common.businessentities.network.Network)292 Test (org.junit.Test)105 NetworkAttachment (org.ovirt.engine.core.common.businessentities.network.NetworkAttachment)63 FindActiveVmsUsingNetwork (org.ovirt.engine.core.bll.network.FindActiveVmsUsingNetwork)47 VdsNetworkInterface (org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface)46 ArrayList (java.util.ArrayList)44 Guid (org.ovirt.engine.core.compat.Guid)44 ProviderNetwork (org.ovirt.engine.core.common.businessentities.network.ProviderNetwork)39 ValidationResult (org.ovirt.engine.core.bll.ValidationResult)23 List (java.util.List)21 EngineMessage (org.ovirt.engine.core.common.errors.EngineMessage)21 HashMap (java.util.HashMap)19 NetworkCluster (org.ovirt.engine.core.common.businessentities.network.NetworkCluster)19 Map (java.util.Map)13 ArgumentMatchers.anyString (org.mockito.ArgumentMatchers.anyString)13 VnicProfile (org.ovirt.engine.core.common.businessentities.network.VnicProfile)13 HashSet (java.util.HashSet)9 Set (java.util.Set)9 BusinessEntityMap (org.ovirt.engine.core.common.businessentities.BusinessEntityMap)9 Cluster (org.ovirt.engine.core.common.businessentities.Cluster)9