Amit Aviram has uploaded a new change for review.

Change subject: webadmin: StorageListModel: refactorig storage prepare for edit.
......................................................................

webadmin: StorageListModel: refactorig storage prepare for edit.

As preparing storage for editing in StorageListModel has similiar logic
through File and Block storage and all of their types, and currently
there is a "prepare" method for each of those types- it is now
consolidated into each model, with the proper differences devided
between the models.

prepareStorageForEdit will replace all of these "prepareXstorageForEdit"
and let the proper model to do the rest of the work, devided through SAN and
FILE storage types.

Change-Id: I2bb2a4c142eb1fe2870dc00d0d8764a6c866f8a2
Signed-off-by: Amit Aviram <[email protected]>
---
A 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/FileStorageModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/IStorageModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/LocalStorageModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/NfsStorageModel.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/SanStorageModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java
7 files changed, 176 insertions(+), 195 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/28/38128/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/FileStorageModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/FileStorageModel.java
new file mode 100644
index 0000000..ff20e40
--- /dev/null
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/FileStorageModel.java
@@ -0,0 +1,55 @@
+package org.ovirt.engine.ui.uicommonweb.models.storage;
+
+import org.ovirt.engine.core.common.businessentities.StorageDomain;
+import org.ovirt.engine.core.common.businessentities.StorageDomainSharedStatus;
+import org.ovirt.engine.core.common.businessentities.StorageDomainStatus;
+import org.ovirt.engine.core.common.businessentities.StorageDomainType;
+import org.ovirt.engine.core.common.businessentities.StorageServerConnections;
+import org.ovirt.engine.ui.frontend.AsyncQuery;
+import org.ovirt.engine.ui.frontend.INewAsyncCallback;
+import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
+import org.ovirt.engine.ui.uicommonweb.models.EntityModel;
+import org.ovirt.engine.ui.uicommonweb.models.Model;
+
+@SuppressWarnings("unused")
+public abstract class FileStorageModel extends Model implements IStorageModel{
+    private EntityModel<String> path;
+
+    public EntityModel<String> getPath() {
+        return path;
+    }
+
+    public boolean isEditable(StorageDomain storage) {
+        StorageDomainType storageDomainType = storage.getStorageDomainType();
+        return storageDomainType.isInternalDomain() && 
isStorageStatusValidForPathEditing(storage);
+    }
+
+    private boolean isStorageStatusValidForPathEditing(StorageDomain storage) {
+        return (storage.getStatus() == StorageDomainStatus.Maintenance
+                || storage.getStorageDomainSharedStatus() == 
StorageDomainSharedStatus.Unattached);
+    }
+
+    protected abstract void prepareConnectionForEditing 
(StorageServerConnections connection);
+
+    public void prepareForEdit(StorageDomain storage) {
+        boolean isEditable = isEditable(storage);
+        getPath().setIsChangable(isEditable);
+
+        AsyncDataProvider.getInstance().getStorageConnectionById(new 
AsyncQuery(null, new INewAsyncCallback() {
+            @Override
+            public void onSuccess(Object target, Object returnValue) {
+                StorageServerConnections connection = 
(StorageServerConnections) returnValue;
+                getPath().setEntity(connection.getconnection());
+                prepareConnectionForEditing(connection);
+            }
+        }), storage.getStorage(), true);
+
+        setHostChangeability(isEditable);
+    }
+
+    protected void setHostChangeability(boolean isPathEditable) {
+        //when storage is active, only SPM can perform actions on it, thus it 
is set above that host is not changeable.
+        //If storage is editable but not active (maintenance) - any host can 
perform the edit so the changeable here is set based on that
+        getContainer().getHost().setIsChangable(isPathEditable);
+    }
+}
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/IStorageModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/IStorageModel.java
index 77ef310..bfd9598 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/IStorageModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/IStorageModel.java
@@ -1,5 +1,6 @@
 package org.ovirt.engine.ui.uicommonweb.models.storage;
 
+import org.ovirt.engine.core.common.businessentities.StorageDomain;
 import org.ovirt.engine.core.common.businessentities.StorageDomainType;
 import org.ovirt.engine.core.common.businessentities.StorageType;
 import org.ovirt.engine.ui.uicommonweb.UICommand;
@@ -20,4 +21,8 @@
     UICommand getUpdateCommand();
 
     boolean validate();
+
+    void prepareForEdit(StorageDomain storage);
+
+    boolean isEditable(StorageDomain storage);
 }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/LocalStorageModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/LocalStorageModel.java
index 7145b9a..7fb8463 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/LocalStorageModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/LocalStorageModel.java
@@ -1,17 +1,17 @@
 package org.ovirt.engine.ui.uicommonweb.models.storage;
 
 import org.ovirt.engine.core.common.businessentities.StorageDomainType;
+import org.ovirt.engine.core.common.businessentities.StorageServerConnections;
 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.LocalfsLinuxMountPointValidation;
 import org.ovirt.engine.ui.uicommonweb.validation.NonUtfValidation;
 import org.ovirt.engine.ui.uicommonweb.validation.NotEmptyValidation;
 
 @SuppressWarnings("unused")
-public class LocalStorageModel extends Model implements IStorageModel {
+public class LocalStorageModel extends FileStorageModel {
 
     private UICommand updateCommand;
 
@@ -54,12 +54,13 @@
         return path;
     }
 
+    @Override protected void 
prepareConnectionForEditing(StorageServerConnections connection) {}
+
     public void setPath(EntityModel<String> value) {
         path = value;
     }
 
     public LocalStorageModel() {
-
         setUpdateCommand(new UICommand("Update", this)); //$NON-NLS-1$
         setPath(new EntityModel<String>());
     }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/NfsStorageModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/NfsStorageModel.java
index 38efdf0..3aa9b06 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/NfsStorageModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/NfsStorageModel.java
@@ -4,15 +4,16 @@
 import java.util.List;
 
 import org.ovirt.engine.core.common.businessentities.NfsVersion;
+import org.ovirt.engine.core.common.businessentities.StorageDomain;
 import org.ovirt.engine.core.common.businessentities.StorageDomainType;
 import org.ovirt.engine.core.common.businessentities.StoragePool;
+import org.ovirt.engine.core.common.businessentities.StorageServerConnections;
 import org.ovirt.engine.core.common.businessentities.StorageType;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.compat.Version;
 import org.ovirt.engine.ui.uicommonweb.UICommand;
 import org.ovirt.engine.ui.uicommonweb.models.EntityModel;
 import org.ovirt.engine.ui.uicommonweb.models.ListModel;
-import org.ovirt.engine.ui.uicommonweb.models.Model;
 import org.ovirt.engine.ui.uicommonweb.validation.IValidation;
 import org.ovirt.engine.ui.uicommonweb.validation.IntegerValidation;
 import org.ovirt.engine.ui.uicommonweb.validation.LinuxMountPointValidation;
@@ -26,7 +27,7 @@
 import org.ovirt.engine.ui.uicompat.UIConstants;
 
 @SuppressWarnings("unused")
-public class NfsStorageModel extends Model implements IStorageModel {
+public class NfsStorageModel extends FileStorageModel {
 
     //retrans nfs option max value
     private final static short RETRANS_MAX = 32767;
@@ -98,6 +99,30 @@
         return override;
     }
 
+    @Override protected void 
prepareConnectionForEditing(StorageServerConnections connection) {
+        getRetransmissions().setEntity(connection.getNfsRetrans());
+        getTimeout().setEntity(connection.getNfsTimeo());
+        getMountOptions().setEntity(connection.getMountOptions());
+        for (EntityModel<NfsVersion> item : getVersion().getItems()) {
+            EntityModel itemModel = item;
+            boolean noNfsVersion = itemModel.getEntity() == null && 
connection.getNfsVersion() == null;
+            boolean foundNfsVersion = itemModel.getEntity() != null &&
+                    itemModel.getEntity().equals(connection.getNfsVersion());
+
+            if (noNfsVersion || foundNfsVersion) {
+                getVersion().setSelectedItem(item);
+                break;
+            }
+        }
+
+        // If any settings were overridden, reflect this in the override 
checkbox
+        getOverride().setEntity(
+                connection.getNfsVersion() != null ||
+                        connection.getNfsRetrans() != null ||
+                        connection.getNfsTimeo() != null ||
+                        connection.getMountOptions() != null);
+    }
+
     private void setOverride(EntityModel<Boolean> value) {
         override = value;
     }
@@ -148,7 +173,6 @@
     }
 
     public NfsStorageModel() {
-
         setPathChangedEvent(new Event<EventArgs>(pathChangedEventDefinition));
 
         setUpdateCommand(new UICommand("Update", this)); //$NON-NLS-1$
@@ -266,4 +290,10 @@
         getTimeout().setIsAvailable(available);
         getMountOptions().setIsAvailable(available);
     }
+
+    @Override
+    public void prepareForEdit(StorageDomain storage) {
+        getOverride().setIsChangable(isEditable(storage));
+        super.prepareForEdit(storage);
+    }
 }
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 0b10a1e..2461e95 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,18 +1,19 @@
 package org.ovirt.engine.ui.uicommonweb.models.storage;
 
 import org.ovirt.engine.core.common.action.VdcActionType;
+import org.ovirt.engine.core.common.businessentities.StorageDomain;
 import org.ovirt.engine.core.common.businessentities.StorageDomainType;
+import org.ovirt.engine.core.common.businessentities.StorageServerConnections;
 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.AsciiNameValidation;
 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 PosixStorageModel extends Model implements IStorageModel {
+public class PosixStorageModel extends FileStorageModel {
 
     private UICommand updateCommand;
 
@@ -118,7 +119,20 @@
         return VdcActionType.AddPosixFsStorageDomain;
     }
 
+
     public void setVfsChangeability(boolean isPathEditable) {
         getVfsType().setIsChangable(isPathEditable);
     }
+
+    protected void prepareConnectionForEditing(StorageServerConnections 
connection) {
+        getMountOptions().setEntity(connection.getMountOptions());
+        getVfsType().setEntity(connection.getVfsType());
+    }
+
+    @Override public void prepareForEdit(StorageDomain storage) {
+        super.prepareForEdit(storage);
+        boolean isEditable = isEditable(storage);
+        setVfsChangeability(isEditable);
+        getMountOptions().setIsChangable(isEditable);
+    }
 }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/SanStorageModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/SanStorageModel.java
index 0ae6c57..018ec3f 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/SanStorageModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/SanStorageModel.java
@@ -13,14 +13,17 @@
 import org.ovirt.engine.core.common.queries.VdcQueryReturnValue;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
 import org.ovirt.engine.core.common.utils.ObjectUtils;
+import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.ui.frontend.AsyncQuery;
 import org.ovirt.engine.ui.frontend.Frontend;
 import org.ovirt.engine.ui.frontend.INewAsyncCallback;
 import org.ovirt.engine.ui.uicommonweb.Linq;
+import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
 import org.ovirt.engine.ui.uicommonweb.models.Model;
 import org.ovirt.engine.ui.uicommonweb.models.hosts.ValueEventArgs;
 import org.ovirt.engine.ui.uicompat.ConstantsManager;
 import org.ovirt.engine.ui.uicompat.Event;
+import org.ovirt.engine.ui.uicompat.EventArgs;
 import org.ovirt.engine.ui.uicompat.EventDefinition;
 import org.ovirt.engine.ui.uicompat.IEventListener;
 import org.ovirt.engine.ui.uicompat.ObservableCollection;
@@ -664,4 +667,40 @@
 
         return super.validate() && getIsValid();
     }
+
+    public boolean isEditable(StorageDomain storage) {
+        return getContainer().isStorageActive() || 
getContainer().isNewStorage();
+    }
+
+    public void prepareForEdit(final StorageDomain storage)
+    {
+        if (isEditable(storage)) {
+            final SanStorageModel thisModel = this;
+            
getContainer().getHost().getSelectedItemChangedEvent().addListener(new 
IEventListener<EventArgs>() {
+                @Override
+                public void eventRaised(Event<? extends EventArgs> ev, Object 
sender, EventArgs args) {
+                    postPrepareSanStorageForEdit(thisModel, true, storage);
+                }
+            });
+        }
+        else {
+            postPrepareSanStorageForEdit(this, false, storage);
+        }
+    }
+
+    private void postPrepareSanStorageForEdit(final SanStorageModel model, 
boolean isStorageActive, StorageDomain storage)
+    {
+        model.setStorageDomain(storage);
+
+        VDS host = getContainer().getHost().getSelectedItem();
+        Guid hostId = host != null && isStorageActive ? host.getId() : null;
+
+        AsyncDataProvider.getInstance().getLunsByVgId(new 
AsyncQuery(getContainer(), new INewAsyncCallback() {
+            @Override
+            public void onSuccess(Object target, Object returnValue) {
+                ArrayList<LUNs> lunList = (ArrayList<LUNs>) returnValue;
+                model.applyData(lunList, true);
+            }
+        }), storage.getStorage(), hostId);
+    }
 }
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 cf13321..6202c89 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
@@ -15,7 +15,6 @@
 import org.ovirt.engine.core.common.action.VdcActionParametersBase;
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.action.VdcReturnValueBase;
-import org.ovirt.engine.core.common.businessentities.LUNs;
 import org.ovirt.engine.core.common.businessentities.NfsVersion;
 import org.ovirt.engine.core.common.businessentities.StorageDomain;
 import org.ovirt.engine.core.common.businessentities.StorageDomainSharedStatus;
@@ -55,11 +54,8 @@
 import org.ovirt.engine.ui.uicommonweb.validation.NotEmptyValidation;
 import org.ovirt.engine.ui.uicommonweb.validation.RegexValidation;
 import org.ovirt.engine.ui.uicompat.ConstantsManager;
-import org.ovirt.engine.ui.uicompat.Event;
-import org.ovirt.engine.ui.uicompat.EventArgs;
 import org.ovirt.engine.ui.uicompat.FrontendActionAsyncResult;
 import org.ovirt.engine.ui.uicompat.FrontendMultipleActionAsyncResult;
-import org.ovirt.engine.ui.uicompat.IEventListener;
 import org.ovirt.engine.ui.uicompat.IFrontendActionAsyncCallback;
 import org.ovirt.engine.ui.uicompat.IFrontendMultipleActionAsyncCallback;
 import org.ovirt.engine.ui.uicompat.ITaskTarget;
@@ -347,39 +343,7 @@
         boolean isPathEditable = isPathEditable(storage);
         isStorageNameEditable = isStorageNameEditable || isPathEditable;
 
-        IStorageModel item = null;
-        switch (storage.getStorageType()) {
-            case NFS:
-                item = prepareNfsStorageForEdit(storage);
-                //when storage is active, only SPM can perform actions on it, 
thus it is set above that host is not changeable.
-                //If storage is editable but not active (maintenance) - any 
host can perform the edit so the changeable here is set based on that
-                model.getHost().setIsChangable(isPathEditable);
-                break;
-
-            case FCP:
-                item = prepareFcpStorageForEdit(storage);
-                break;
-
-            case ISCSI:
-                item = prepareIscsiStorageForEdit(storage);
-                break;
-
-            case LOCALFS:
-                item = prepareLocalStorageForEdit(storage);
-                model.getHost().setIsChangable(isPathEditable);
-                break;
-
-            case POSIXFS:
-                item = preparePosixStorageForEdit(storage);
-                //when storage is active, only SPM can perform actions on it, 
thus it is set above that host is not changeable.
-                //If storage is editable but not active (maintenance) - any 
host can perform the edit so the changeable here is set based on that
-                model.getHost().setIsChangable(isPathEditable);
-                break;
-
-            case GLUSTERFS:
-                item = preparePosixStorageForEdit(storage);
-                break;
-        }
+        IStorageModel item = prepareStorageForEdit(storage, model);
 
         model.setItems(new ArrayList<IStorageModel>(Arrays.asList(new 
IStorageModel[] {item})));
         model.setSelectedItem(item);
@@ -410,48 +374,31 @@
         }
     }
 
-    private IStorageModel prepareNfsStorageForEdit(StorageDomain storage)
-    {
-        final NfsStorageModel model = new NfsStorageModel();
-        model.setRole(storage.getStorageDomainType());
+    private IStorageModel prepareStorageForEdit(StorageDomain storage, 
StorageModel model) {
+        final IStorageModel storageTypeModel = 
getStorageModelByStorage(storage);
+        storageTypeModel.setContainer(model);
+        storageTypeModel.setRole(storage.getStorageDomainType());
+        storageTypeModel.prepareForEdit(storage);
 
-        boolean isNfsPathEditable = isPathEditable(storage);
+        return storageTypeModel;
+    }
 
-        model.getPath().setIsChangable(isNfsPathEditable);
-        model.getOverride().setIsChangable(isNfsPathEditable);
-
-        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.getRetransmissions().setEntity(connection.getNfsRetrans());
-                model.getTimeout().setEntity(connection.getNfsTimeo());
-                
model.getMountOptions().setEntity(connection.getMountOptions());
-                for (EntityModel<NfsVersion> item : 
model.getVersion().getItems()) {
-                    EntityModel itemModel = item;
-                    boolean noNfsVersion = itemModel.getEntity() == null && 
connection.getNfsVersion() == null;
-                    boolean foundNfsVersion = itemModel.getEntity() != null &&
-                            
itemModel.getEntity().equals(connection.getNfsVersion());
-
-                    if (noNfsVersion || foundNfsVersion) {
-                        model.getVersion().setSelectedItem(item);
-                        break;
-                    }
-                }
-
-                // If any settings were overridden, reflect this in the 
override checkbox
-                model.getOverride().setEntity(
-                        connection.getNfsVersion() != null ||
-                        connection.getNfsRetrans() != null ||
-                        connection.getNfsTimeo() != null ||
-                        connection.getMountOptions() != null);
-
-            }
-        }), storage.getStorage(), true);
-
-        return model;
+    private IStorageModel getStorageModelByStorage(StorageDomain storage) {
+        switch (storage.getStorageType()) {
+        case NFS:
+            return new NfsStorageModel();
+        case FCP:
+            return new FcpStorageModel();
+        case ISCSI:
+            return new IscsiStorageModel();
+        case LOCALFS:
+            return new LocalStorageModel();
+        case POSIXFS:
+            return new PosixStorageModel();
+        case GLUSTERFS:
+            return new GlusterStorageModel();
+        }
+        return null;
     }
 
     private boolean isPathEditable(StorageDomain storage) {
@@ -465,116 +412,6 @@
     private boolean isStorageStatusValidForPathEditing(StorageDomain storage) {
         return (storage.getStatus() == StorageDomainStatus.Maintenance
                 || storage.getStorageDomainSharedStatus() == 
StorageDomainSharedStatus.Unattached);
-    }
-
-    private IStorageModel prepareLocalStorageForEdit(StorageDomain storage)
-    {
-        LocalStorageModel model = new LocalStorageModel();
-        model.setRole(storage.getStorageDomainType());
-        boolean isPathEditable = isPathEditable(storage);
-        model.getPath().setIsChangable(isPathEditable);
-
-        AsyncDataProvider.getInstance().getStorageConnectionById(new 
AsyncQuery(model, new INewAsyncCallback() {
-            @Override
-            public void onSuccess(Object target, Object returnValue) {
-                LocalStorageModel localStorageModel = (LocalStorageModel) 
target;
-                StorageServerConnections connection = 
(StorageServerConnections) returnValue;
-                
localStorageModel.getPath().setEntity(connection.getconnection());
-
-            }
-        }), storage.getStorage(), true);
-
-        return model;
-    }
-
-    private IStorageModel preparePosixStorageForEdit(StorageDomain storage) {
-
-        final PosixStorageModel model = getPosixModelByStorage(storage);
-        model.setRole(storage.getStorageDomainType());
-
-        boolean isPathEditable = isPathEditable(storage);
-        model.getPath().setIsChangable(isPathEditable);
-        model.setVfsChangeability(isPathEditable);
-        model.getMountOptions().setIsChangable(isPathEditable);
-
-        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;
-    }
-
-    private PosixStorageModel getPosixModelByStorage(StorageDomain storage) {
-        switch (storage.getStorageType()) {
-        case GLUSTERFS:
-            return new GlusterStorageModel();
-        default:
-            return new PosixStorageModel();
-        }
-    }
-
-    private IStorageModel prepareIscsiStorageForEdit(StorageDomain storage)
-    {
-        IscsiStorageModel model = new IscsiStorageModel();
-        model.setRole(storage.getStorageDomainType());
-
-        prepareSanStorageForEdit(model);
-
-        return model;
-    }
-
-    private IStorageModel prepareFcpStorageForEdit(StorageDomain storage)
-    {
-        FcpStorageModel model = new FcpStorageModel();
-        model.setRole(storage.getStorageDomainType());
-
-        prepareSanStorageForEdit(model);
-
-        return model;
-    }
-
-    private void prepareSanStorageForEdit(final SanStorageModel model)
-    {
-        StorageModel storageModel = (StorageModel) getWindow();
-        boolean isStorageEditable = storageModel.isStorageActive() || 
storageModel.isNewStorage();
-
-        if (isStorageEditable) {
-            
storageModel.getHost().getSelectedItemChangedEvent().addListener(new 
IEventListener<EventArgs>() {
-                @Override
-                public void eventRaised(Event<? extends EventArgs> ev, Object 
sender, EventArgs args) {
-                    postPrepareSanStorageForEdit(model, true);
-                }
-            });
-        }
-        else {
-            postPrepareSanStorageForEdit(model, false);
-        }
-    }
-
-    private void postPrepareSanStorageForEdit(final SanStorageModel model, 
boolean isStorageActive)
-    {
-        StorageModel storageModel = (StorageModel) getWindow();
-        StorageDomain storage = (StorageDomain) getSelectedItem();
-        model.setStorageDomain(storage);
-
-        VDS host = storageModel.getHost().getSelectedItem();
-        Guid hostId = host != null && isStorageActive ? host.getId() : null;
-
-        AsyncDataProvider.getInstance().getLunsByVgId(new 
AsyncQuery(storageModel, new INewAsyncCallback() {
-            @Override
-            public void onSuccess(Object target, Object returnValue) {
-                ArrayList<LUNs> lunList = (ArrayList<LUNs>) returnValue;
-                model.applyData(lunList, true);
-            }
-        }), storage.getStorage(), hostId);
     }
 
     private void importDomain()


-- 
To view, visit https://gerrit.ovirt.org/38128
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I2bb2a4c142eb1fe2870dc00d0d8764a6c866f8a2
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Amit Aviram <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to