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

Reply via email to