Maor Lipchuk has uploaded a new change for review.

Change subject: webadmin: Add a warning when importing a Storage Domain
......................................................................

webadmin: Add a warning when importing a Storage Domain

Adding a warnning when importing a Storage Domain which is already
attached.
The warnning should be applied for File Domain and Block Domain as well

Change-Id: Ib73b42baadc1c9f01d471dbac1e94d7793d30ab5
Bug-Url: https://bugzilla.redhat.com/1138126
Signed-off-by: Maor Lipchuk <mlipc...@redhat.com>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageDataCenterListModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java
2 files changed, 66 insertions(+), 6 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/26/35226/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageDataCenterListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageDataCenterListModel.java
index 0a61164..02600ed 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageDataCenterListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageDataCenterListModel.java
@@ -426,6 +426,8 @@
 
                             
model.setTitle(ConstantsManager.getInstance().getConstants().storageDomainsAttachedToDataCenterWarningTitle());
                             
model.setMessage(ConstantsManager.getInstance().getConstants().storageDomainsAttachedToDataCenterWarningMessage());
+                            
model.setHelpTag(HelpTag.import_storage_domain_confirmation);
+                            
model.setHashName("import_storage_domain_confirmation"); //$NON-NLS-1$
                             model.getLatch().setIsAvailable(true);
                             model.getLatch().setIsChangable(true);
 
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 a816f90..7dec881 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
@@ -1903,7 +1903,9 @@
 
     private void importFileStorage(TaskContext context)
     {
-        this.context = context;
+        if (context != null) {
+            this.context = context;
+        }
 
         ArrayList<Object> data = (ArrayList<Object>) context.getState();
         StorageModel model = (StorageModel) getWindow();
@@ -1919,7 +1921,9 @@
 
     private void importSanStorage(final TaskContext context)
     {
-        this.context = context;
+        if (context != null) {
+            this.context = context;
+        }
 
         ArrayList<Object> data = (ArrayList<Object>) context.getState();
         StorageModel model = (StorageModel) getWindow();
@@ -2161,6 +2165,56 @@
             new Object[] {context, isSucceeded, model, message});
     }
 
+    private void checkDomainAttachedToDc(final TaskContext context, final 
String commandName) {
+        final StorageModel storageModel = (StorageModel) getWindow();
+        StoragePool storagePool = 
storageModel.getDataCenter().getSelectedItem();
+
+
+        if (storagePool == null) {
+            importFileStorage(context);
+            return;
+        }
+
+        
AsyncDataProvider.getInstance().getStorageDomainsWithAttachedStoragePoolGuid(
+                new AsyncQuery(this, new INewAsyncCallback() {
+                    @Override
+                    public void onSuccess(Object target, Object returnValue) {
+                        StorageListModel StorageListModel = (StorageListModel) 
target;
+                        List<StorageDomainStatic> attachedStorageDomains = 
(List<StorageDomainStatic>) returnValue;
+                        if (!attachedStorageDomains.isEmpty()) {
+                            ConfirmationModel model = new ConfirmationModel();
+                            setConfirmWindow(model);
+
+                            
model.setTitle(ConstantsManager.getInstance().getConstants().storageDomainsAttachedToDataCenterWarningTitle());
+                            
model.setMessage(ConstantsManager.getInstance().getConstants().storageDomainsAttachedToDataCenterWarningMessage());
+                            
model.setHelpTag(HelpTag.import_storage_domain_confirmation);
+                            
model.setHashName("import_storage_domain_confirmation"); //$NON-NLS-1$
+
+                            List<String> stoageDomainNames = new 
ArrayList<String>();
+                            for (StorageDomainStatic domain : 
attachedStorageDomains) {
+                                stoageDomainNames.add(domain.getStorageName());
+                            }
+                            model.setItems(stoageDomainNames);
+                            storageModel.setWindow(model);
+
+                            UICommand maintenance = new UICommand(commandName, 
StorageListModel); //$NON-NLS-1$
+                            
maintenance.setTitle(ConstantsManager.getInstance().getConstants().ok());
+                            maintenance.setIsDefault(true);
+                            model.getCommands().add(maintenance);
+
+                            UICommand cancel = new UICommand("Cancel", 
StorageListModel); //$NON-NLS-1$
+                            
cancel.setTitle(ConstantsManager.getInstance().getConstants().cancel());
+                            cancel.setIsCancel(true);
+                            model.getCommands().add(cancel);
+                        } else {
+                            ArrayList<Object> data = (ArrayList<Object>) 
context.getState();
+                            data.set(0, commandName);
+                            Task.create(StorageListModel, data).run();
+                        }
+                    }
+                }), new 
ArrayList<StorageDomain>(Arrays.asList(storageModel.getStorage())), 
storagePool);
+    }
+
 
     @Override
     public void run(TaskContext context)
@@ -2188,12 +2242,16 @@
         {
             saveSanStorage(context);
         }
-        else if ("ImportFile".equals(key)) //$NON-NLS-1$
-        {
+        else if ("ImportFile".equals(key)) { //$NON-NLS-1$
+            checkDomainAttachedToDc(context, "OnImportFile"); //$NON-NLS-1$
+        }
+        else if ("ImportSan".equals(key)) { //$NON-NLS-1$
+            checkDomainAttachedToDc(context, "OnImportSan"); //$NON-NLS-1$
+        }
+        else if ("OnImportFile".equals(key)) { //$NON-NLS-1$
             importFileStorage(context);
         }
-        else if ("ImportSan".equals(key)) //$NON-NLS-1$
-        {
+        else if ("OnImportSan".equals(key)) { //$NON-NLS-1$
             importSanStorage(context);
         }
         else if ("Finish".equals(key)) //$NON-NLS-1$


-- 
To view, visit http://gerrit.ovirt.org/35226
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib73b42baadc1c9f01d471dbac1e94d7793d30ab5
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Maor Lipchuk <mlipc...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to