Search in sources :

Example 86 with StorageDomain

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

the class NewDiskModel method store.

@Override
public void store(IFrontendActionAsyncCallback callback) {
    if (getProgress() != null || !validate()) {
        return;
    }
    startProgress();
    AddDiskParameters parameters = new AddDiskParameters(getDiskVmElement(), getDisk());
    parameters.setPlugDiskToVm(getIsPlugged().getEntity());
    if (getDiskStorageType().getEntity() == DiskStorageType.IMAGE || getDiskStorageType().getEntity() == DiskStorageType.CINDER) {
        StorageDomain storageDomain = getStorageDomain().getSelectedItem();
        parameters.setStorageDomainId(storageDomain.getId());
    }
    IFrontendActionAsyncCallback onFinished = callback != null ? callback : result -> {
        NewDiskModel diskModel = (NewDiskModel) result.getState();
        diskModel.stopProgress();
        diskModel.cancel();
        postSave();
    };
    Frontend.getInstance().runAction(ActionType.AddDisk, parameters, onFinished, this);
}
Also used : StorageDomain(org.ovirt.engine.core.common.businessentities.StorageDomain) IFrontendActionAsyncCallback(org.ovirt.engine.ui.uicompat.IFrontendActionAsyncCallback) AddDiskParameters(org.ovirt.engine.core.common.action.AddDiskParameters)

Example 87 with StorageDomain

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

the class ExistingPoolModelBehavior method postInitStorageDomains.

@Override
protected void postInitStorageDomains() {
    ArrayList<DiskModel> disks = (ArrayList<DiskModel>) getModel().getDisks();
    if (disks == null) {
        return;
    }
    ActionGroup actionGroup = getModel().isCreateInstanceOnly() ? ActionGroup.CREATE_INSTANCE : ActionGroup.CREATE_VM;
    StoragePool dataCenter = getModel().getSelectedDataCenter();
    AsyncDataProvider.getInstance().getPermittedStorageDomainsByStoragePoolId(asyncQuery(storageDomains -> {
        ArrayList<DiskModel> disks1 = (ArrayList<DiskModel>) getModel().getDisks();
        ArrayList<StorageDomain> activeStorageDomains = filterStorageDomains(storageDomains);
        DisksAllocationModel disksAllocationModel = getModel().getDisksAllocationModel();
        disksAllocationModel.setActiveStorageDomains(activeStorageDomains);
        getModel().getStorageDomain().setItems(activeStorageDomains);
        for (DiskModel diskModel : disks1) {
            // Setting Quota
            diskModel.getQuota().setItems(getModel().getQuota().getItems());
            diskModel.getQuota().setIsChangeable(false);
            List<Guid> storageIds = ((DiskImage) diskModel.getDisk()).getStorageIds();
            for (DiskImage disk : pool.getDiskList()) {
                if (diskModel.getDisk() instanceof DiskImage && ((DiskImage) diskModel.getDisk()).getImageId().equals(disk.getImageTemplateId())) {
                    storageIds = new ArrayList<>(disk.getStorageIds());
                    break;
                }
            }
            if (storageIds == null || storageIds.size() == 0) {
                continue;
            }
            Guid storageId = storageIds.get(0);
            StorageDomain storageDomain = activeStorageDomains.stream().filter(new Linq.IdPredicate<>(storageId)).findFirst().orElse(null);
            List<StorageDomain> diskStorageDomains = new ArrayList<>();
            diskStorageDomains.add(storageDomain);
            diskModel.getStorageDomain().setItems(diskStorageDomains);
            diskModel.getStorageDomain().setIsChangeable(false);
        }
    }), dataCenter.getId(), actionGroup);
    getModel().getDisksAllocationModel().initializeAutoSelectTarget(false, actualPool.isAutoStorageSelect());
}
Also used : VmPool(org.ovirt.engine.core.common.businessentities.VmPool) StoragePool(org.ovirt.engine.core.common.businessentities.StoragePool) VmBase(org.ovirt.engine.core.common.businessentities.VmBase) Linq(org.ovirt.engine.ui.uicommonweb.Linq) Guid(org.ovirt.engine.core.compat.Guid) IValidation(org.ovirt.engine.ui.uicommonweb.validation.IValidation) Collection(java.util.Collection) VmTemplate(org.ovirt.engine.core.common.businessentities.VmTemplate) StorageDomain(org.ovirt.engine.core.common.businessentities.StorageDomain) StringHelper(org.ovirt.engine.core.compat.StringHelper) DiskImage(org.ovirt.engine.core.common.businessentities.storage.DiskImage) ArrayList(java.util.ArrayList) List(java.util.List) VM(org.ovirt.engine.core.common.businessentities.VM) ExistingPoolInstanceTypeManager(org.ovirt.engine.ui.uicommonweb.models.vms.instancetypes.ExistingPoolInstanceTypeManager) Cluster(org.ovirt.engine.core.common.businessentities.Cluster) ActionGroup(org.ovirt.engine.core.common.businessentities.ActionGroup) ExistingPoolNameLengthValidation(org.ovirt.engine.ui.uicommonweb.validation.ExistingPoolNameLengthValidation) LatestVmTemplate(org.ovirt.engine.ui.uicommonweb.models.templates.LatestVmTemplate) InstanceTypeManager(org.ovirt.engine.ui.uicommonweb.models.vms.instancetypes.InstanceTypeManager) AsyncDataProvider(org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider) DisksAllocationModel(org.ovirt.engine.ui.uicommonweb.models.storage.DisksAllocationModel) StoragePool(org.ovirt.engine.core.common.businessentities.StoragePool) ArrayList(java.util.ArrayList) Guid(org.ovirt.engine.core.compat.Guid) DisksAllocationModel(org.ovirt.engine.ui.uicommonweb.models.storage.DisksAllocationModel) StorageDomain(org.ovirt.engine.core.common.businessentities.StorageDomain) ActionGroup(org.ovirt.engine.core.common.businessentities.ActionGroup) ArrayList(java.util.ArrayList) List(java.util.List) DiskImage(org.ovirt.engine.core.common.businessentities.storage.DiskImage)

Example 88 with StorageDomain

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

the class DataCenterModule method getDataCenterStorageListProvider.

// Search-able Detail Models
@Provides
@Singleton
public SearchableDetailModelProvider<StorageDomain, DataCenterListModel, DataCenterStorageListModel> getDataCenterStorageListProvider(EventBus eventBus, Provider<DefaultConfirmationPopupPresenterWidget> defaultConfirmPopupProvider, final Provider<FindSingleStoragePopupPresenterWidget> singlePopupProvider, final Provider<FindMultiStoragePopupPresenterWidget> multiPopupProvider, final Provider<RemoveConfirmationPopupPresenterWidget> removeConfirmPopupProvider, final Provider<DataCenterListModel> mainModelProvider, final Provider<DataCenterStorageListModel> modelProvider) {
    SearchableDetailTabModelProvider<StorageDomain, DataCenterListModel, DataCenterStorageListModel> result = new SearchableDetailTabModelProvider<StorageDomain, DataCenterListModel, DataCenterStorageListModel>(eventBus, defaultConfirmPopupProvider) {

        @Override
        public AbstractModelBoundPopupPresenterWidget<? extends Model, ?> getModelPopup(DataCenterStorageListModel source, UICommand lastExecutedCommand, Model windowModel) {
            DataCenterStorageListModel model = getModel();
            if (lastExecutedCommand == model.getAttachStorageCommand()) {
                return multiPopupProvider.get();
            } else if (lastExecutedCommand == model.getAttachISOCommand() || lastExecutedCommand == model.getAttachBackupCommand()) {
                return singlePopupProvider.get();
            } else {
                return super.getModelPopup(source, lastExecutedCommand, windowModel);
            }
        }

        @Override
        public AbstractModelBoundPopupPresenterWidget<? extends ConfirmationModel, ?> getConfirmModelPopup(DataCenterStorageListModel source, UICommand lastExecutedCommand) {
            if (lastExecutedCommand == getModel().getDetachCommand() || lastExecutedCommand.getName().equals("OnAttach")) {
                // $NON-NLS-1$ ) {
                return removeConfirmPopupProvider.get();
            } else if (lastExecutedCommand == getModel().getMaintenanceCommand() || lastExecutedCommand.getName().equals("OnMaintenance")) {
                // $NON-NLS-1$) {
                return removeConfirmPopupProvider.get();
            } else {
                return super.getConfirmModelPopup(source, lastExecutedCommand);
            }
        }
    };
    result.setMainModelProvider(mainModelProvider);
    result.setModelProvider(modelProvider);
    return result;
}
Also used : StorageDomain(org.ovirt.engine.core.common.businessentities.StorageDomain) DataCenterListModel(org.ovirt.engine.ui.uicommonweb.models.datacenters.DataCenterListModel) DataCenterIscsiBondListModel(org.ovirt.engine.ui.uicommonweb.models.datacenters.DataCenterIscsiBondListModel) DataCenterQuotaListModel(org.ovirt.engine.ui.uicommonweb.models.datacenters.DataCenterQuotaListModel) DataCenterListModel(org.ovirt.engine.ui.uicommonweb.models.datacenters.DataCenterListModel) DataCenterNetworkListModel(org.ovirt.engine.ui.uicommonweb.models.datacenters.DataCenterNetworkListModel) DataCenterStorageListModel(org.ovirt.engine.ui.uicommonweb.models.datacenters.DataCenterStorageListModel) DataCenterCpuQosListModel(org.ovirt.engine.ui.uicommonweb.models.datacenters.qos.DataCenterCpuQosListModel) NewHostNetworkQosModel(org.ovirt.engine.ui.uicommonweb.models.datacenters.qos.NewHostNetworkQosModel) PermissionListModel(org.ovirt.engine.ui.uicommonweb.models.configure.PermissionListModel) ConfirmationModel(org.ovirt.engine.ui.uicommonweb.models.ConfirmationModel) DataCenterClusterListModel(org.ovirt.engine.ui.uicommonweb.models.datacenters.DataCenterClusterListModel) DataCenterHostNetworkQosListModel(org.ovirt.engine.ui.uicommonweb.models.datacenters.qos.DataCenterHostNetworkQosListModel) DataCenterStorageQosListModel(org.ovirt.engine.ui.uicommonweb.models.datacenters.qos.DataCenterStorageQosListModel) Model(org.ovirt.engine.ui.uicommonweb.models.Model) DataCenterNetworkQoSListModel(org.ovirt.engine.ui.uicommonweb.models.datacenters.DataCenterNetworkQoSListModel) DataCenterEventListModel(org.ovirt.engine.ui.uicommonweb.models.datacenters.DataCenterEventListModel) DataCenterStorageListModel(org.ovirt.engine.ui.uicommonweb.models.datacenters.DataCenterStorageListModel) UICommand(org.ovirt.engine.ui.uicommonweb.UICommand) SearchableDetailTabModelProvider(org.ovirt.engine.ui.common.uicommon.model.SearchableDetailTabModelProvider) Singleton(com.google.inject.Singleton) Provides(com.google.inject.Provides)

Example 89 with StorageDomain

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

the class SubTabStorageDataCenterView method initTable.

void initTable() {
    getTable().enableColumnResizing();
    StorageDomainStatusColumn statusColumn = new StorageDomainStatusColumn();
    statusColumn.setContextMenuTitle(constants.statusStorageDc());
    // $NON-NLS-1$
    getTable().addColumn(statusColumn, constants.empty(), "30px");
    AbstractTextColumn<StorageDomain> nameColumn = new AbstractLinkColumn<StorageDomain>(new FieldUpdater<StorageDomain, String>() {

        @Override
        public void update(int index, StorageDomain storageDomain, String value) {
            Map<String, String> parameters = new HashMap<>();
            parameters.put(FragmentParams.NAME.getName(), storageDomain.getStoragePoolName());
            getPlaceTransitionHandler().handlePlaceTransition(WebAdminApplicationPlaces.dataCenterStorageSubTabPlace, parameters);
        }
    }) {

        @Override
        public String getValue(StorageDomain object) {
            return object.getStoragePoolName();
        }
    };
    nameColumn.makeSortable();
    // $NON-NLS-1$
    getTable().addColumn(nameColumn, constants.nameDc(), "600px");
    AbstractTextColumn<StorageDomain> domainStatusColumn = new AbstractEnumColumn<StorageDomain, StorageDomainStatus>() {

        @Override
        protected StorageDomainStatus getRawValue(StorageDomain object) {
            return object.getStatus();
        }
    };
    domainStatusColumn.makeSortable();
    // $NON-NLS-1$
    getTable().addColumn(domainStatusColumn, constants.domainStatusInDcStorageDc(), "300px");
}
Also used : AbstractEnumColumn(org.ovirt.engine.ui.common.widget.table.column.AbstractEnumColumn) StorageDomain(org.ovirt.engine.core.common.businessentities.StorageDomain) AbstractLinkColumn(org.ovirt.engine.ui.common.widget.table.column.AbstractLinkColumn) StorageDomainStatusColumn(org.ovirt.engine.ui.webadmin.widget.table.column.StorageDomainStatusColumn) HashMap(java.util.HashMap) Map(java.util.Map)

Example 90 with StorageDomain

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

the class DiskValidator method isSparsifySupported.

public ValidationResult isSparsifySupported() {
    if (disk.getDiskStorageType() != DiskStorageType.IMAGE) {
        return new ValidationResult(EngineMessage.ACTION_TYPE_FAILED_DISK_SPARSIFY_NOT_SUPPORTED_BY_DISK_STORAGE_TYPE, getDiskAliasVarReplacement(), ReplacementUtils.createSetVariableString("diskStorageType", disk.getDiskStorageType()));
    }
    if (((DiskImage) disk).getImage().getVolumeType() == VolumeType.Preallocated) {
        return new ValidationResult(EngineMessage.ACTION_TYPE_FAILED_DISK_SPARSIFY_NOT_SUPPORTED_FOR_PREALLOCATED, getDiskAliasVarReplacement());
    }
    StorageDomain diskStorageDomain = Injector.get(StorageDomainDao.class).get(((DiskImage) disk).getStorageIds().get(0));
    StorageType domainStorageType = diskStorageDomain.getStorageType();
    if (!domainStorageType.isFileDomain() && !domainStorageType.isBlockDomain()) {
        return new ValidationResult(EngineMessage.ACTION_TYPE_FAILED_DISK_SPARSIFY_NOT_SUPPORTED_BY_STORAGE_TYPE, getDiskAliasVarReplacement(), getStorageDomainNameVarReplacement(diskStorageDomain), ReplacementUtils.createSetVariableString("storageType", domainStorageType));
    }
    if (domainStorageType.isBlockDomain() && disk.isWipeAfterDelete()) {
        return new ValidationResult(EngineMessage.ACTION_TYPE_FAILED_DISK_SPARSIFY_NOT_SUPPORTED_BY_UNDERLYING_STORAGE_WHEN_WAD_IS_ENABLED, getStorageDomainNameVarReplacement(diskStorageDomain), getDiskAliasVarReplacement());
    }
    return ValidationResult.VALID;
}
Also used : StorageDomain(org.ovirt.engine.core.common.businessentities.StorageDomain) StorageType(org.ovirt.engine.core.common.businessentities.storage.StorageType) DiskStorageType(org.ovirt.engine.core.common.businessentities.storage.DiskStorageType) ValidationResult(org.ovirt.engine.core.bll.ValidationResult) StorageDomainDao(org.ovirt.engine.core.dao.StorageDomainDao) DiskImage(org.ovirt.engine.core.common.businessentities.storage.DiskImage)

Aggregations

StorageDomain (org.ovirt.engine.core.common.businessentities.StorageDomain)345 ArrayList (java.util.ArrayList)108 Guid (org.ovirt.engine.core.compat.Guid)103 Test (org.junit.Test)91 StoragePool (org.ovirt.engine.core.common.businessentities.StoragePool)75 List (java.util.List)58 DiskImage (org.ovirt.engine.core.common.businessentities.storage.DiskImage)58 StorageDomainStatic (org.ovirt.engine.core.common.businessentities.StorageDomainStatic)49 UICommand (org.ovirt.engine.ui.uicommonweb.UICommand)47 QueryReturnValue (org.ovirt.engine.core.common.queries.QueryReturnValue)46 QueryType (org.ovirt.engine.core.common.queries.QueryType)43 StorageServerConnections (org.ovirt.engine.core.common.businessentities.StorageServerConnections)42 AsyncDataProvider (org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider)41 ConstantsManager (org.ovirt.engine.ui.uicompat.ConstantsManager)41 ConfirmationModel (org.ovirt.engine.ui.uicommonweb.models.ConfirmationModel)40 VDS (org.ovirt.engine.core.common.businessentities.VDS)39 Frontend (org.ovirt.engine.ui.frontend.Frontend)39 HelpTag (org.ovirt.engine.ui.uicommonweb.help.HelpTag)36 EntityModel (org.ovirt.engine.ui.uicommonweb.models.EntityModel)36 StorageType (org.ovirt.engine.core.common.businessentities.storage.StorageType)35