Amit Aviram has uploaded a new change for review. Change subject: webadmin: Refactoring GlusterModel to inherit from PosixModel. ......................................................................
webadmin: Refactoring GlusterModel to inherit from PosixModel. Since GlusterStorageModel duplicates most of PosixStorageModel's content, and Gluster domain is actually a Posix storage domain, it is now inherits from PosixStorageModel. Change-Id: I7a355956f0f30a79f13d0bd72ec7a4d65cc29d1a Signed-off-by: Amit Aviram <aavi...@redhat.com> --- M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/GlusterStorageModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/PosixStorageModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java 3 files changed, 33 insertions(+), 273 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/93/37893/1 diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/GlusterStorageModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/GlusterStorageModel.java index 19e8d88..7963679 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/GlusterStorageModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/GlusterStorageModel.java @@ -1,121 +1,29 @@ package org.ovirt.engine.ui.uicommonweb.models.storage; -import org.ovirt.engine.core.common.businessentities.StorageDomainType; +import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.businessentities.StorageType; -import org.ovirt.engine.ui.uicommonweb.UICommand; -import org.ovirt.engine.ui.uicommonweb.models.EntityModel; -import org.ovirt.engine.ui.uicommonweb.models.Model; -import org.ovirt.engine.ui.uicommonweb.validation.IValidation; -import org.ovirt.engine.ui.uicommonweb.validation.NotEmptyValidation; import org.ovirt.engine.ui.uicompat.ConstantsManager; @SuppressWarnings("unused") -public class GlusterStorageModel extends Model implements IStorageModel { - - private UICommand updateCommand; - - @Override - public UICommand getUpdateCommand() { - return updateCommand; - } - - private void setUpdateCommand(UICommand value) { - updateCommand = value; - } - - private StorageModel container; - - @Override - public StorageModel getContainer() { - return container; - } - - @Override - public void setContainer(StorageModel value) { - container = value; - } - - private StorageDomainType privateRole = StorageDomainType.values()[0]; - - @Override - public StorageDomainType getRole() { - return privateRole; - } - - @Override - public void setRole(StorageDomainType value) { - privateRole = value; - } - - private EntityModel<String> path; - - public EntityModel<String> getPath() { - return path; - } - - private void setPath(EntityModel<String> value) { - path = value; - } - - private EntityModel<String> vfsType; - - public EntityModel<String> getVfsType() { - return vfsType; - } - - private void setVfsType(EntityModel<String> value) { - vfsType = value; - } - - private EntityModel<String> mountOptions; - - public EntityModel<String> getMountOptions() { - return mountOptions; - } - - private void setMountOptions(EntityModel<String> value) { - mountOptions = value; - } +public class GlusterStorageModel extends PosixStorageModel { public String getConfigurationMessage() { return ConstantsManager.getInstance().getConstants().glusterDomainConfigurationMessage(); } - public GlusterStorageModel() { - - setUpdateCommand(new UICommand("Update", this)); //$NON-NLS-1$ - - setPath(new EntityModel<String>()); - setVfsType(new EntityModel<String>()); - setMountOptions(new EntityModel<String>()); - + getVfsType().setTitle(""); //$NON-NLS-1$ getVfsType().setEntity("glusterfs"); //$NON-NLS-1$ getVfsType().setIsChangable(false); } @Override - public boolean validate() { - - getPath().validateEntity( - new IValidation[] { - new NotEmptyValidation(), - } - ); - - getVfsType().validateEntity( - new IValidation[] { - new NotEmptyValidation(), - } - ); - - - return getPath().getIsValid() - && getVfsType().getIsValid(); + public StorageType getType() { + return StorageType.GLUSTERFS; } @Override - public StorageType getType() { - return StorageType.GLUSTERFS; + public VdcActionType getAddStorageDomainVdcAction() { + return VdcActionType.AddGlusterFsStorageDomain; } } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/PosixStorageModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/PosixStorageModel.java index 5fcda5b..b6962ec 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/PosixStorageModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/PosixStorageModel.java @@ -1,5 +1,6 @@ package org.ovirt.engine.ui.uicommonweb.models.storage; +import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.businessentities.StorageDomainType; import org.ovirt.engine.core.common.businessentities.StorageType; import org.ovirt.engine.ui.uicommonweb.UICommand; @@ -112,4 +113,8 @@ public StorageType getType() { return StorageType.POSIXFS; } + + public VdcActionType getAddStorageDomainVdcAction() { + return VdcActionType.AddPosixFsStorageDomain; + } } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java index 3a39275..e4c0fcf 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java @@ -377,7 +377,7 @@ break; case GLUSTERFS: - item = prepareGlusterStorageForEdit(storage); + item = preparePosixStorageForEdit(storage); break; } @@ -489,12 +489,19 @@ private IStorageModel preparePosixStorageForEdit(StorageDomain storage) { - final PosixStorageModel model = new PosixStorageModel(); + final PosixStorageModel model = getPosixModelByStorage(storage); model.setRole(storage.getStorageDomainType()); boolean isPathEditable = isPathEditable(storage); model.getPath().setIsChangable(isPathEditable); - model.getVfsType().setIsChangable(isPathEditable); + + // vfs type is changeable only for general posix storage. + if (model.getType().equals(StorageType.POSIXFS)) { + model.getVfsType().setIsChangable(isPathEditable); + } else { + model.getVfsType().setIsChangable(false); + } + model.getMountOptions().setIsChangable(isPathEditable); AsyncDataProvider.getInstance().getStorageConnectionById(new AsyncQuery(null, new INewAsyncCallback() { @@ -510,6 +517,15 @@ }), storage.getStorage(), true); return model; + } + + private PosixStorageModel getPosixModelByStorage(StorageDomain storage) { + switch (storage.getStorageType()) { + case GLUSTERFS: + return new GlusterStorageModel(); + default: + return new PosixStorageModel(); + } } private IStorageModel prepareIscsiStorageForEdit(StorageDomain storage) @@ -528,29 +544,6 @@ model.setRole(storage.getStorageDomainType()); prepareSanStorageForEdit(model); - - return model; - } - - private IStorageModel prepareGlusterStorageForEdit(StorageDomain storage) { - - final GlusterStorageModel model = new GlusterStorageModel(); - model.setRole(storage.getStorageDomainType()); - model.getPath().setIsChangable(true); - model.getVfsType().setIsChangable(false); - model.getMountOptions().setIsChangable(false); - - AsyncDataProvider.getInstance().getStorageConnectionById(new AsyncQuery(null, new INewAsyncCallback() { - @Override - public void onSuccess(Object target, Object returnValue) { - - StorageServerConnections connection = (StorageServerConnections) returnValue; - model.getPath().setEntity(connection.getconnection()); - model.getVfsType().setEntity(connection.getVfsType()); - model.getMountOptions().setEntity(connection.getMountOptions()); - - } - }), storage.getStorage(), true); return model; } @@ -653,16 +646,8 @@ Task.create(this, new ArrayList<Object>(Arrays.asList(new Object[] { "ImportFile", //$NON-NLS-1$ - host.getId(), posixModel.getPath().getEntity(), posixModel.getRole(), StorageType.POSIXFS, + host.getId(), posixModel.getPath().getEntity(), posixModel.getRole(), posixModel.getType(), model.getActivateDomain().getEntity() }))).run(); - } else if (model.getSelectedItem() instanceof GlusterStorageModel) { - GlusterStorageModel glusterModel = (GlusterStorageModel) model.getSelectedItem(); - glusterModel.setMessage(null); - - Task.create(this, - new ArrayList<Object>(Arrays.asList(new Object[] { "ImportFile", //$NON-NLS-1$ - host.getId(), glusterModel.getPath().getEntity(), glusterModel.getRole(), - StorageType.GLUSTERFS, model.getActivateDomain().getEntity() }))).run(); } else if (model.getSelectedItem() instanceof ImportSanStorageModel) { Task.create(this, new ArrayList<Object>(Arrays.asList(new Object[] { "ImportSan", //$NON-NLS-1$ @@ -891,10 +876,6 @@ { savePosixStorage(); } - else if (model.getSelectedItem() instanceof GlusterStorageModel) - { - saveGlusterStorage(); - } else { saveSanStorage(); @@ -934,17 +915,6 @@ getWindow().startProgress(null); Task.create(this, new ArrayList<Object>(Arrays.asList(new Object[] {"SavePosix"}))).run(); //$NON-NLS-1$ - } - - private void saveGlusterStorage() { - - if (getWindow().getProgress() != null) { - return; - } - - getWindow().startProgress(null); - - Task.create(this, new ArrayList<Object>(Arrays.asList(new Object[] {"SaveGluster"}))).run(); //$NON-NLS-1$ } private void saveSanStorage() @@ -1298,7 +1268,7 @@ ArrayList<VdcActionParametersBase> parameters = new ArrayList<VdcActionParametersBase>(); actionTypes.add(VdcActionType.AddStorageServerConnection); - actionTypes.add(VdcActionType.AddPosixFsStorageDomain); + actionTypes.add(posixModel.getAddStorageDomainVdcAction()); parameters.add(new StorageServerConnectionParametersBase(this.connection, host.getId())); StorageDomainManagementParameter parameter = new StorageDomainManagementParameter(storageDomain); @@ -1353,120 +1323,6 @@ failureCallback, this); } - - private void saveGlusterStorage(TaskContext context) { - - this.context = context; - - StorageDomain selectedItem = (StorageDomain) getSelectedItem(); - StorageModel model = (StorageModel) getWindow(); - boolean isNew = model.getStorage() == null; - storageModel = model.getSelectedItem(); - GlusterStorageModel glusterModel = (GlusterStorageModel) storageModel; - path = glusterModel.getPath().getEntity(); - - storageDomain = isNew ? new StorageDomainStatic() : (StorageDomainStatic) Cloner.clone(selectedItem.getStorageStaticData()); - storageDomain.setStorageType(isNew ? storageModel.getType() : storageDomain.getStorageType()); - storageDomain.setStorageDomainType(isNew ? storageModel.getRole() : storageDomain.getStorageDomainType()); - storageDomain.setStorageName(model.getName().getEntity()); - storageDomain.setStorageFormat(model.getFormat().getSelectedItem()); - storageDomain.setWipeAfterDelete(model.getWipeAfterDelete().getEntity()); - - if (isNew) { - AsyncDataProvider.getInstance().getStorageDomainsByConnection(new AsyncQuery(this, new INewAsyncCallback() { - @Override - public void onSuccess(Object target, Object returnValue) { - - StorageListModel storageListModel = (StorageListModel) target; - ArrayList<StorageDomain> storages = (ArrayList<StorageDomain>) returnValue; - - if (storages != null && storages.size() > 0) { - handleDomainAlreadyExists(storageListModel, storages); - } else { - storageListModel.saveNewGlusterStorage(); - } - } - }), null, path); - } else { - - updateStorageDomain(); - } - } - - public void saveNewGlusterStorage() { - - StorageModel model = (StorageModel) getWindow(); - GlusterStorageModel glusterModel = (GlusterStorageModel) model.getSelectedItem(); - VDS host = model.getHost().getSelectedItem(); - hostId = host.getId(); - - // Create storage connection. - StorageServerConnections connection = new StorageServerConnections(); - connection.setconnection(path); - connection.setstorage_type(glusterModel.getType()); - connection.setVfsType(glusterModel.getVfsType().getEntity()); - connection.setMountOptions(glusterModel.getMountOptions().getEntity()); - this.connection = connection; - - ArrayList<VdcActionType> actionTypes = new ArrayList<VdcActionType>(); - ArrayList<VdcActionParametersBase> parameters = new ArrayList<VdcActionParametersBase>(); - - actionTypes.add(VdcActionType.AddStorageServerConnection); - actionTypes.add(VdcActionType.AddGlusterFsStorageDomain); - - parameters.add(new StorageServerConnectionParametersBase(this.connection, host.getId())); - StorageDomainManagementParameter parameter = new StorageDomainManagementParameter(storageDomain); - parameter.setVdsId(host.getId()); - parameters.add(parameter); - - IFrontendActionAsyncCallback callback1 = new IFrontendActionAsyncCallback() { - @Override - public void executed(FrontendActionAsyncResult result) { - - StorageListModel storageListModel = (StorageListModel) result.getState(); - VdcReturnValueBase vdcReturnValueBase = result.getReturnValue(); - storageListModel.storageDomain.setStorage((String) vdcReturnValueBase.getActionReturnValue()); - storageListModel.connection.setid((String) vdcReturnValueBase.getActionReturnValue()); - } - }; - - IFrontendActionAsyncCallback callback2 = new IFrontendActionAsyncCallback() { - @Override - public void executed(FrontendActionAsyncResult result) { - - StorageListModel storageListModel = (StorageListModel) result.getState(); - VdcReturnValueBase vdcReturnValueBase = result.getReturnValue(); - storageListModel.storageId = (Guid) vdcReturnValueBase.getActionReturnValue(); - - // Attach storage to data center as necessary. - StorageModel storageModel = (StorageModel) storageListModel.getWindow(); - StoragePool dataCenter = storageModel.getDataCenter().getSelectedItem(); - if (!dataCenter.getId().equals(StorageModel.UnassignedDataCenterId)) { - storageListModel.attachStorageToDataCenter(storageListModel.storageId, dataCenter.getId(), storageModel.getActivateDomain().getEntity()); - } - - storageListModel.onFinish(storageListModel.context, true, storageListModel.storageModel); - } - }; - - IFrontendActionAsyncCallback failureCallback = new IFrontendActionAsyncCallback() { - @Override - public void executed(FrontendActionAsyncResult result) { - - StorageListModel storageListModel = (StorageListModel) result.getState(); - storageListModel.cleanConnection(storageListModel.connection, storageListModel.hostId); - storageListModel.onFinish(storageListModel.context, false, storageListModel.storageModel); - } - }; - - Frontend.getInstance().runMultipleActions(actionTypes, - parameters, - new ArrayList<IFrontendActionAsyncCallback>(Arrays.asList(new IFrontendActionAsyncCallback[] { - callback1, callback2 })), - failureCallback, - this); - } - private void saveNfsStorage(TaskContext context) { @@ -2050,11 +1906,6 @@ tempVar.setVfsType(posixModel.getVfsType().getEntity()); tempVar.setMountOptions(posixModel.getMountOptions().getEntity()); } - if (storageModel instanceof GlusterStorageModel) { - GlusterStorageModel glusterModel = (GlusterStorageModel) storageModel; - tempVar.setVfsType(glusterModel.getVfsType().getEntity()); - tempVar.setMountOptions(glusterModel.getMountOptions().getEntity()); - } storageListModel.fileConnection = tempVar; importFileStorageConnect(); } @@ -2253,10 +2104,6 @@ else if ("SavePosix".equals(key)) //$NON-NLS-1$ { savePosixStorage(context); - } - else if ("SaveGluster".equals(key)) //$NON-NLS-1$ - { - saveGlusterStorage(context); } else if ("SaveSan".equals(key)) //$NON-NLS-1$ { -- To view, visit http://gerrit.ovirt.org/37893 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I7a355956f0f30a79f13d0bd72ec7a4d65cc29d1a Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Amit Aviram <aavi...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches