Search in sources :

Example 1 with FilteredListModel

use of org.ovirt.engine.ui.uicommonweb.models.FilteredListModel in project ovirt-engine by oVirt.

the class ClusterModel method init.

public void init(final boolean isEdit) {
    setIsEdit(isEdit);
    setName(new EntityModel<>());
    setDescription(new EntityModel<>());
    setComment(new EntityModel<>());
    setEnableTrustedService(new EntityModel<>(false));
    setEnableHaReservation(new EntityModel<>(false));
    setEnableOptionalReason(new EntityModel<>(false));
    setMigrationPolicies(new ListModel<>());
    getMigrationPolicies().getSelectedItemChangedEvent().addListener(this);
    getEnableOptionalReason().setIsAvailable(ApplicationModeHelper.isModeSupported(ApplicationMode.VirtOnly));
    setEnableHostMaintenanceReason(new EntityModel<>(false));
    setAllowClusterWithVirtGlusterEnabled(true);
    setGlusterTunedProfile(new ListModel<>());
    AsyncDataProvider.getInstance().getAllowClusterWithVirtGlusterEnabled(new AsyncQuery<>(this::setAllowClusterWithVirtGlusterEnabled));
    setEnableOvirtService(new EntityModel<>());
    setEnableGlusterService(new EntityModel<>());
    setAdditionalClusterFeatures(new ListModel<>());
    List<List<AdditionalFeature>> additionalFeatures = new ArrayList<>();
    additionalFeatures.add(Collections.emptyList());
    getAdditionalClusterFeatures().setItems(additionalFeatures, null);
    setSpiceProxyEnabled(new EntityModel<>());
    getSpiceProxyEnabled().setEntity(false);
    getSpiceProxyEnabled().getEntityChangedEvent().addListener(this);
    setSpiceProxy(new EntityModel<>());
    getSpiceProxy().setIsChangeable(false);
    setFencingEnabledModel(new EntityModel<>());
    getFencingEnabledModel().setEntity(true);
    getFencingEnabledModel().getEntityChangedEvent().addListener((ev, sender, args) -> updateFencingPolicyContent(getVersion() == null ? null : getVersion().getSelectedItem()));
    setSkipFencingIfSDActiveEnabled(new EntityModel<>());
    getSkipFencingIfSDActiveEnabled().setEntity(true);
    setSkipFencingIfGlusterBricksUp(new EntityModel<>());
    getSkipFencingIfGlusterBricksUp().setEntity(false);
    getSkipFencingIfGlusterBricksUp().setIsAvailable(false);
    setSkipFencingIfGlusterQuorumNotMet(new EntityModel<>());
    getSkipFencingIfGlusterQuorumNotMet().setEntity(false);
    getSkipFencingIfGlusterQuorumNotMet().setIsAvailable(false);
    setSkipFencingIfConnectivityBrokenEnabled(new EntityModel<>());
    getSkipFencingIfConnectivityBrokenEnabled().setEntity(true);
    setEnableOvirtService(new EntityModel<>());
    setEnableGlusterService(new EntityModel<>());
    setSerialNumberPolicy(new SerialNumberPolicyModel());
    setAutoConverge(new ListModel<>());
    getAutoConverge().setItems(Arrays.asList(null, true, false));
    setMigrateCompressed(new ListModel<>());
    getMigrateCompressed().setItems(Arrays.asList(null, true, false));
    getEnableOvirtService().getEntityChangedEvent().addListener((ev, sender, args) -> {
        refreshAdditionalClusterFeaturesList();
        if (!getAllowClusterWithVirtGlusterEnabled() && getEnableOvirtService().getEntity()) {
            getEnableGlusterService().setEntity(Boolean.FALSE);
        }
        updateGlusterFencingPolicyAvailability();
        getEnableGlusterService().setIsChangeable(true);
        getEnableTrustedService().setEntity(false);
        if (getEnableOvirtService().getEntity() != null && getEnableOvirtService().getEntity()) {
            if (getEnableGlusterService().getEntity() != null && !getEnableGlusterService().getEntity()) {
                getEnableTrustedService().setIsChangeable(true);
            } else {
                getEnableTrustedService().setIsChangeable(false);
            }
        } else {
            getEnableTrustedService().setIsChangeable(false);
        }
    });
    getEnableOvirtService().setEntity(ApplicationModeHelper.isModeSupported(ApplicationMode.VirtOnly));
    getEnableOvirtService().setIsAvailable(ApplicationModeHelper.getUiMode() != ApplicationMode.VirtOnly && ApplicationModeHelper.isModeSupported(ApplicationMode.VirtOnly));
    setRngHwrngSourceRequired(new EntityModel<>());
    getRngHwrngSourceRequired().setIsAvailable(ApplicationModeHelper.isModeSupported(ApplicationMode.VirtOnly));
    initImportCluster();
    getEnableGlusterService().getEntityChangedEvent().addListener((ev, sender, args) -> {
        refreshAdditionalClusterFeaturesList();
        if (!getAllowClusterWithVirtGlusterEnabled() && getEnableGlusterService().getEntity()) {
            getEnableOvirtService().setEntity(Boolean.FALSE);
        }
        if (!isEdit && getEnableGlusterService().getEntity() != null && getEnableGlusterService().getEntity()) {
            getIsImportGlusterConfiguration().setIsAvailable(true);
            getGlusterHostAddress().setIsAvailable(true);
            getGlusterHostFingerprint().setIsAvailable(true);
            getGlusterHostPassword().setIsAvailable(true);
        } else {
            getIsImportGlusterConfiguration().setIsAvailable(false);
            getIsImportGlusterConfiguration().setEntity(false);
            getGlusterHostAddress().setIsAvailable(false);
            getGlusterHostFingerprint().setIsAvailable(false);
            getGlusterHostPassword().setIsAvailable(false);
        }
        if (getEnableGlusterService().getEntity() != null && getEnableGlusterService().getEntity()) {
            getEnableTrustedService().setEntity(false);
            getEnableTrustedService().setIsChangeable(false);
        } else {
            if (getEnableOvirtService().getEntity() != null && getEnableOvirtService().getEntity()) {
                getEnableTrustedService().setIsChangeable(true);
            } else {
                getEnableTrustedService().setIsChangeable(false);
            }
        }
        getGlusterTunedProfile().setIsAvailable(getEnableGlusterService().getEntity());
        updateGlusterFencingPolicyAvailability();
        if (getEnableGlusterService().getEntity()) {
            initTunedProfiles();
        }
    });
    getEnableTrustedService().getEntityChangedEvent().addListener((ev, sender, args) -> {
        if (getEnableTrustedService().getEntity() != null && getEnableTrustedService().getEntity()) {
            getEnableGlusterService().setEntity(false);
            getEnableGlusterService().setIsChangeable(false);
        } else {
            getEnableGlusterService().setIsChangeable(true);
        }
    });
    getEnableGlusterService().setEntity(ApplicationModeHelper.getUiMode() == ApplicationMode.GlusterOnly);
    getEnableGlusterService().setIsAvailable(ApplicationModeHelper.getUiMode() != ApplicationMode.GlusterOnly && ApplicationModeHelper.isModeSupported(ApplicationMode.GlusterOnly));
    getGlusterTunedProfile().setIsAvailable(getEnableGlusterService().getEntity());
    setOptimizationNone(new EntityModel<>());
    setOptimizationForServer(new EntityModel<>());
    setOptimizationForDesktop(new EntityModel<>());
    setOptimizationCustom(new EntityModel<>());
    EntityModel<Boolean> tempVar = new EntityModel<>();
    tempVar.setEntity(false);
    setOptimizationNone_IsSelected(tempVar);
    getOptimizationNone_IsSelected().getEntityChangedEvent().addListener(this);
    EntityModel<Boolean> tempVar2 = new EntityModel<>();
    tempVar2.setEntity(false);
    setOptimizationForServer_IsSelected(tempVar2);
    getOptimizationForServer_IsSelected().getEntityChangedEvent().addListener(this);
    EntityModel<Boolean> tempVar3 = new EntityModel<>();
    tempVar3.setEntity(false);
    setOptimizationForDesktop_IsSelected(tempVar3);
    getOptimizationForDesktop_IsSelected().getEntityChangedEvent().addListener(this);
    EntityModel<Boolean> tempVar4 = new EntityModel<>();
    tempVar4.setEntity(false);
    tempVar4.setIsAvailable(false);
    setOptimizationCustom_IsSelected(tempVar4);
    getOptimizationCustom_IsSelected().getEntityChangedEvent().addListener(this);
    EntityModel<Boolean> tempVar5 = new EntityModel<>();
    tempVar5.setEntity(false);
    setMigrateOnErrorOption_YES(tempVar5);
    getMigrateOnErrorOption_YES().getEntityChangedEvent().addListener(this);
    EntityModel<Boolean> tempVar6 = new EntityModel<>();
    tempVar6.setEntity(false);
    setMigrateOnErrorOption_NO(tempVar6);
    getMigrateOnErrorOption_NO().getEntityChangedEvent().addListener(this);
    EntityModel<Boolean> tempVar7 = new EntityModel<>();
    tempVar7.setEntity(false);
    setMigrateOnErrorOption_HA_ONLY(tempVar7);
    getMigrateOnErrorOption_HA_ONLY().getEntityChangedEvent().addListener(this);
    // KSM feature
    setEnableKsm(new EntityModel<>());
    getEnableKsm().setEntity(false);
    getKsmPolicyForNumaSelection().setIsChangeable(false);
    getEnableKsm().getEntityChangedEvent().addListener((ev, sender, args) -> {
        if (getEnableKsm().getEntity() == null) {
            return;
        }
        if (getEnableKsm().getEntity()) {
            getKsmPolicyForNumaSelection().setIsChangeable(true);
        }
        if (!getEnableKsm().getEntity()) {
            getKsmPolicyForNumaSelection().setIsChangeable(false);
        }
    });
    setEnableBallooning(new EntityModel<>());
    getEnableBallooning().setEntity(false);
    // Optimization methods:
    // default value =100;
    setDefaultMemoryOvercommit(AsyncDataProvider.getInstance().getClusterDefaultMemoryOverCommit());
    setCountThreadsAsCores(new EntityModel<>(AsyncDataProvider.getInstance().getClusterDefaultCountThreadsAsCores()));
    setVersionSupportsCpuThreads(new EntityModel<>(true));
    setOptimizeForUtilization(new EntityModel<>());
    setOptimizeForSpeed(new EntityModel<>());
    getOptimizeForUtilization().setEntity(true);
    getOptimizeForSpeed().setEntity(false);
    getOptimizeForUtilization().getEntityChangedEvent().addListener(this);
    getOptimizeForSpeed().getEntityChangedEvent().addListener(this);
    setGuarantyResources(new EntityModel<>());
    setAllowOverbooking(new EntityModel<>());
    getGuarantyResources().setEntity(true);
    getAllowOverbooking().setEntity(false);
    getAllowOverbooking().getEntityChangedEvent().addListener(this);
    getGuarantyResources().getEntityChangedEvent().addListener(this);
    boolean overbookingSupported = AsyncDataProvider.getInstance().getScheudulingAllowOverbookingSupported();
    getAllowOverbooking().setIsAvailable(overbookingSupported);
    if (overbookingSupported) {
        getOptimizeForSpeed().getEntityChangedEvent().addListener((ev, sender, args) -> {
            Boolean entity = getOptimizeForSpeed().getEntity();
            if (entity) {
                getGuarantyResources().setEntity(true);
            }
            getAllowOverbooking().setIsChangeable(!entity);
        });
        getAllowOverbooking().getEntityChangedEvent().addListener((ev, sender, args) -> {
            Boolean entity = getAllowOverbooking().getEntity();
            if (entity) {
                getOptimizeForUtilization().setEntity(true);
            }
            getOptimizeForSpeed().setIsChangeable(!entity);
        });
    }
    setHostsWithBrokenConnectivityThreshold(new ListModel<>());
    getHostsWithBrokenConnectivityThreshold().setIsAvailable(true);
    getHostsWithBrokenConnectivityThreshold().getSelectedItemChangedEvent().addListener(this);
    initHostsWithBrokenConnectivityThreshold();
    AsyncDataProvider.getInstance().getClusterDesktopMemoryOverCommit(new AsyncQuery<>(result -> {
        setDesktopOverCommit(result);
        AsyncDataProvider.getInstance().getClusterServerMemoryOverCommit(new AsyncQuery<>(r -> {
            setServerOverCommit(r);
            // temp is used for conversion purposes
            EntityModel temp;
            temp = getOptimizationNone();
            temp.setEntity(getDefaultMemoryOvercommit());
            // res1, res2 is used for conversion purposes.
            boolean res1 = getDesktopOverCommit() != getDefaultMemoryOvercommit();
            boolean res2 = getServerOverCommit() != getDefaultMemoryOvercommit();
            temp = getOptimizationNone_IsSelected();
            setIsSelected(res1 && res2);
            temp.setEntity(getIsSelected());
            temp = getOptimizationForServer();
            temp.setEntity(getServerOverCommit());
            temp = getOptimizationForServer_IsSelected();
            temp.setEntity(getServerOverCommit() == getDefaultMemoryOvercommit());
            temp = getOptimizationForDesktop();
            temp.setEntity(getDesktopOverCommit());
            temp = getOptimizationForDesktop_IsSelected();
            temp.setEntity(getDesktopOverCommit() == getDefaultMemoryOvercommit());
            temp = getOptimizationCustom();
            temp.setIsAvailable(false);
            temp.setIsChangeable(false);
            if (getIsEdit()) {
                postInit();
            }
        }));
    }));
    setDataCenter(new ListModel<>());
    getDataCenter().getSelectedItemChangedEvent().addListener(this);
    getDataCenter().setIsAvailable(ApplicationModeHelper.getUiMode() != ApplicationMode.GlusterOnly);
    setArchitecture(new ListModel<>());
    getArchitecture().setIsAvailable(ApplicationModeHelper.isModeSupported(ApplicationMode.VirtOnly));
    setManagementNetwork(new ListModel<>());
    if (isEdit && !isClusterDetached()) {
        getManagementNetwork().setChangeProhibitionReason(ConstantsManager.getInstance().getConstants().prohibitManagementNetworkChangeInEditClusterInfoMessage());
        getManagementNetwork().setIsChangeable(false);
    }
    setCPU(new FilteredListModel<>());
    getCPU().setIsAvailable(ApplicationModeHelper.getUiMode() != ApplicationMode.GlusterOnly);
    getCPU().getSelectedItemChangedEvent().addListener(this);
    setVersion(new ListModel<>());
    getVersion().getSelectedItemChangedEvent().addListener(this);
    setMigrateOnErrorOption(MigrateOnErrorOptions.YES);
    setFirewallType(new ListModel<>());
    initFirewallType();
    setDefaultNetworkProvider(new ListModel<>());
    initDefaultNetworkProvider();
    setSwitchType(new ListModel<>());
    initSwitchType();
    getRngHwrngSourceRequired().setEntity(false);
    setValidTab(TabName.GENERAL_TAB, true);
    setMigrationTabAvailable(true);
    setClusterPolicy(new ListModel<>());
    setCustomPropertySheet(new KeyValueModel());
    getClusterPolicy().getSelectedItemChangedEvent().addListener(this);
    Frontend.getInstance().runQuery(QueryType.GetAllPolicyUnits, new QueryParametersBase(), new AsyncQuery<QueryReturnValue>(returnValue -> {
        ArrayList<PolicyUnit> policyUnits = returnValue.getReturnValue();
        policyUnitMap = new LinkedHashMap<>();
        for (PolicyUnit policyUnit : policyUnits) {
            policyUnitMap.put(policyUnit.getId(), policyUnit);
        }
        Frontend.getInstance().runQuery(QueryType.GetClusterPolicies, new QueryParametersBase(), new AsyncQuery<QueryReturnValue>(retVal -> {
            ArrayList<ClusterPolicy> list = retVal.getReturnValue();
            getClusterPolicy().setItems(list);
            ClusterPolicy defaultClusterPolicy = null;
            ClusterPolicy selectedClusterPolicy = null;
            for (ClusterPolicy clusterPolicy : list) {
                if (getIsEdit() && getEntity() != null && clusterPolicy.getId().equals(getEntity().getClusterPolicyId())) {
                    selectedClusterPolicy = clusterPolicy;
                }
                if (clusterPolicy.isDefaultPolicy()) {
                    defaultClusterPolicy = clusterPolicy;
                }
            }
            if (selectedClusterPolicy != null) {
                getClusterPolicy().setSelectedItem(selectedClusterPolicy);
            } else {
                getClusterPolicy().setSelectedItem(defaultClusterPolicy);
            }
            clusterPolicyChanged();
        }));
    }));
    setCustomMigrationNetworkBandwidth(new EntityModel<>());
    setMigrationBandwidthLimitType(new ListModel<>());
}
Also used : MacPoolModel(org.ovirt.engine.ui.uicommonweb.models.macpool.MacPoolModel) Arrays(java.util.Arrays) Provider(org.ovirt.engine.core.common.businessentities.Provider) Event(org.ovirt.engine.ui.uicompat.Event) ApplicationMode(org.ovirt.engine.core.common.mode.ApplicationMode) EntityModel(org.ovirt.engine.ui.uicommonweb.models.EntityModel) SwitchType(org.ovirt.engine.core.common.network.SwitchType) Map(java.util.Map) ConstantsManager(org.ovirt.engine.ui.uicompat.ConstantsManager) HasEntity(org.ovirt.engine.ui.uicommonweb.models.HasEntity) Version(org.ovirt.engine.core.compat.Version) EventArgs(org.ovirt.engine.ui.uicompat.EventArgs) AsyncDataProvider(org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider) SortedListModel(org.ovirt.engine.ui.uicommonweb.models.SortedListModel) ClusterPolicy(org.ovirt.engine.core.common.scheduling.ClusterPolicy) AdditionalFeature(org.ovirt.engine.core.common.businessentities.AdditionalFeature) QueryReturnValue(org.ovirt.engine.core.common.queries.QueryReturnValue) Collection(java.util.Collection) UICommand(org.ovirt.engine.ui.uicommonweb.UICommand) ListModel(org.ovirt.engine.ui.uicommonweb.models.ListModel) Set(java.util.Set) MigrationBandwidthLimitType(org.ovirt.engine.core.common.businessentities.MigrationBandwidthLimitType) HasValidatedTabs(org.ovirt.engine.ui.uicommonweb.models.HasValidatedTabs) I18NNameValidation(org.ovirt.engine.ui.uicommonweb.validation.I18NNameValidation) StringHelper(org.ovirt.engine.core.compat.StringHelper) SerialNumberPolicyModel(org.ovirt.engine.ui.uicommonweb.models.vms.SerialNumberPolicyModel) Objects(java.util.Objects) ApplicationModeHelper(org.ovirt.engine.ui.uicommonweb.models.ApplicationModeHelper) List(java.util.List) MigrateOnErrorOptions(org.ovirt.engine.core.common.businessentities.MigrateOnErrorOptions) VmRngDevice(org.ovirt.engine.core.common.businessentities.VmRngDevice) ValidationCompleteEvent(org.ovirt.engine.ui.uicommonweb.models.ValidationCompleteEvent) KeyValueModel(org.ovirt.engine.ui.uicommonweb.models.vms.key_value.KeyValueModel) Cluster(org.ovirt.engine.core.common.businessentities.Cluster) ProviderType(org.ovirt.engine.core.common.businessentities.ProviderType) FilteredListModel(org.ovirt.engine.ui.uicommonweb.models.FilteredListModel) LengthValidation(org.ovirt.engine.ui.uicommonweb.validation.LengthValidation) NotEmptyValidation(org.ovirt.engine.ui.uicommonweb.validation.NotEmptyValidation) StoragePool(org.ovirt.engine.core.common.businessentities.StoragePool) QueryType(org.ovirt.engine.core.common.queries.QueryType) VdsStatic(org.ovirt.engine.core.common.businessentities.VdsStatic) ArchitectureType(org.ovirt.engine.core.common.businessentities.ArchitectureType) HostWithProtocolAndPortAddressValidation(org.ovirt.engine.ui.uicommonweb.validation.HostWithProtocolAndPortAddressValidation) Guid(org.ovirt.engine.core.compat.Guid) ServerCpu(org.ovirt.engine.core.common.businessentities.ServerCpu) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) AsyncCallback(org.ovirt.engine.ui.frontend.AsyncCallback) HashSet(java.util.HashSet) LinkedHashMap(java.util.LinkedHashMap) NoMigrationPolicy(org.ovirt.engine.core.common.migration.NoMigrationPolicy) Frontend(org.ovirt.engine.ui.frontend.Frontend) NotNullIntegerValidation(org.ovirt.engine.ui.uicommonweb.validation.NotNullIntegerValidation) Network(org.ovirt.engine.core.common.businessentities.network.Network) MigrationPolicy(org.ovirt.engine.core.common.migration.MigrationPolicy) Pair(org.ovirt.engine.core.common.utils.Pair) QueryParametersBase(org.ovirt.engine.core.common.queries.QueryParametersBase) Linq(org.ovirt.engine.ui.uicommonweb.Linq) IValidation(org.ovirt.engine.ui.uicommonweb.validation.IValidation) SerialNumberPolicy(org.ovirt.engine.core.common.businessentities.SerialNumberPolicy) ConfigValues(org.ovirt.engine.core.common.config.ConfigValues) SupportedAdditionalClusterFeature(org.ovirt.engine.core.common.businessentities.SupportedAdditionalClusterFeature) MacPool(org.ovirt.engine.core.common.businessentities.MacPool) TabName(org.ovirt.engine.ui.uicommonweb.models.TabName) PolicyUnit(org.ovirt.engine.core.common.scheduling.PolicyUnit) UIConstants(org.ovirt.engine.ui.uicompat.UIConstants) FirewallType(org.ovirt.engine.core.common.network.FirewallType) Comparator(java.util.Comparator) Collections(java.util.Collections) PropertyChangedEventArgs(org.ovirt.engine.ui.uicompat.PropertyChangedEventArgs) IdAndNameQueryParameters(org.ovirt.engine.core.common.queries.IdAndNameQueryParameters) SerialNumberPolicyModel(org.ovirt.engine.ui.uicommonweb.models.vms.SerialNumberPolicyModel) ArrayList(java.util.ArrayList) EntityModel(org.ovirt.engine.ui.uicommonweb.models.EntityModel) LinkedHashMap(java.util.LinkedHashMap) QueryReturnValue(org.ovirt.engine.core.common.queries.QueryReturnValue) KeyValueModel(org.ovirt.engine.ui.uicommonweb.models.vms.key_value.KeyValueModel) QueryParametersBase(org.ovirt.engine.core.common.queries.QueryParametersBase) List(java.util.List) ArrayList(java.util.ArrayList) PolicyUnit(org.ovirt.engine.core.common.scheduling.PolicyUnit) ClusterPolicy(org.ovirt.engine.core.common.scheduling.ClusterPolicy)

Aggregations

ArrayList (java.util.ArrayList)1 Arrays (java.util.Arrays)1 Collection (java.util.Collection)1 Collections (java.util.Collections)1 Comparator (java.util.Comparator)1 HashMap (java.util.HashMap)1 HashSet (java.util.HashSet)1 LinkedHashMap (java.util.LinkedHashMap)1 List (java.util.List)1 Map (java.util.Map)1 Objects (java.util.Objects)1 Set (java.util.Set)1 AdditionalFeature (org.ovirt.engine.core.common.businessentities.AdditionalFeature)1 ArchitectureType (org.ovirt.engine.core.common.businessentities.ArchitectureType)1 Cluster (org.ovirt.engine.core.common.businessentities.Cluster)1 MacPool (org.ovirt.engine.core.common.businessentities.MacPool)1 MigrateOnErrorOptions (org.ovirt.engine.core.common.businessentities.MigrateOnErrorOptions)1 MigrationBandwidthLimitType (org.ovirt.engine.core.common.businessentities.MigrationBandwidthLimitType)1 Provider (org.ovirt.engine.core.common.businessentities.Provider)1 ProviderType (org.ovirt.engine.core.common.businessentities.ProviderType)1