Libor Spevak has uploaded a new change for review.

Change subject: webadmin: Show warning, if VM provides no disk for export, 
snapshot, template
......................................................................

webadmin: Show warning, if VM provides no disk for export, snapshot, template

New check similar to the warning when non-exportable disks are detected added.

Change-Id: I339da4bcab18799603caeafb0171fdcea262ec29
Bug-Url: https://bugzilla.redhat.com/855625
Signed-off-by: Libor Spevak <lspe...@redhat.com>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewTemplateVmModelBehavior.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SnapshotModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java
M 
frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Messages.java
4 files changed, 32 insertions(+), 15 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/86/12286/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewTemplateVmModelBehavior.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewTemplateVmModelBehavior.java
index a0cdcc3..4c307cf 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewTemplateVmModelBehavior.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewTemplateVmModelBehavior.java
@@ -3,7 +3,6 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
-import java.util.Iterator;
 import java.util.List;
 
 import org.ovirt.engine.core.common.businessentities.ActionGroup;
@@ -12,13 +11,13 @@
 import org.ovirt.engine.core.common.businessentities.DiskImage;
 import org.ovirt.engine.core.common.businessentities.DisplayType;
 import org.ovirt.engine.core.common.businessentities.QuotaEnforcementTypeEnum;
+import org.ovirt.engine.core.common.businessentities.StorageDomain;
 import org.ovirt.engine.core.common.businessentities.StorageDomainStatus;
 import org.ovirt.engine.core.common.businessentities.StorageDomainType;
 import org.ovirt.engine.core.common.businessentities.StorageType;
 import org.ovirt.engine.core.common.businessentities.VDSGroup;
 import org.ovirt.engine.core.common.businessentities.VM;
 import org.ovirt.engine.core.common.businessentities.VolumeType;
-import org.ovirt.engine.core.common.businessentities.StorageDomain;
 import org.ovirt.engine.core.common.businessentities.storage_pool;
 import org.ovirt.engine.core.compat.StringHelper;
 import org.ovirt.engine.ui.frontend.AsyncQuery;
@@ -108,25 +107,26 @@
                     public void OnSuccess(Object target, Object returnValue) {
 
                         NewTemplateVmModelBehavior behavior = 
(NewTemplateVmModelBehavior) target;
-                        ArrayList<Disk> disks = new ArrayList<Disk>();
+                        ArrayList<Disk> imageDisks = new ArrayList<Disk>();
                         List<Disk> nonExportableDisks = new ArrayList<Disk>();
-                        Iterable disksEnumerable = (Iterable) returnValue;
-                        Iterator disksIterator = disksEnumerable.iterator();
+                        ArrayList<Disk> vmDisks = (ArrayList<Disk>) 
returnValue;
 
-                        while (disksIterator.hasNext())
-                        {
-                            Disk disk = (Disk) disksIterator.next();
-
+                        for (Disk disk : vmDisks) {
                             if (disk.getDiskStorageType() == 
DiskStorageType.IMAGE && !disk.isShareable()) {
-                                disks.add(disk);
+                                imageDisks.add(disk);
                             } else if (!disk.isAllowSnapshot()) {
                                 nonExportableDisks.add(disk);
                             }
                         }
 
                         behavior.InitStorageDomains();
-                        InitDisks(disks);
+                        InitDisks(imageDisks);
                         sendWarningForNonExportableDisks(nonExportableDisks);
+
+                        // check if VM provides any disk
+                        if (vmDisks.size() - nonExportableDisks.size() == 0) {
+                            
getModel().setMessage(ConstantsManager.getInstance().getMessages().noDiskWillBePartOfTheExportedTemplate());
+                        }
                     }
                 }, getModel().getHash()),
                 vm.getId(),
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SnapshotModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SnapshotModel.java
index f510357..2f2441f 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SnapshotModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SnapshotModel.java
@@ -138,6 +138,7 @@
         this.cancelCommand = cancelCommand;
     }
 
+    @Override
     public UICommand getCancelCommand() {
         return cancelCommand;
     }
@@ -248,7 +249,7 @@
     }
 
     // send warning message, if a disk which doesn't allow snapshot is 
detected (e.g. LUN)
-    private boolean showWarningForNonExportableDisks(ArrayList<Disk> disks) {
+    private void showWarningForNonExportableDisks(ArrayList<Disk> disks) {
         // filter non-exportable disks
         final List<String> list = new ArrayList<String>();
         for (Disk disk : disks) {
@@ -261,10 +262,12 @@
             final String s = StringUtils.join(list, ", "); //$NON-NLS-1$
             // append warning message
             
setMessage(ConstantsManager.getInstance().getMessages().disksWillNotBePartOfTheExportedVMSnapshot(s));
-            return true;
         }
 
-        return false;
+        // check if VM provides any disk
+        if (disks.size() - list.size() == 0) {
+            
setMessage(ConstantsManager.getInstance().getMessages().noDiskWillBePartOfTheExportedSnapshot());
+        }
     }
 
     private boolean showWarningForByVmSnapshotsValidation(ArrayList<Snapshot> 
snapshots) {
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java
index 2205dfd..77439f7 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java
@@ -36,6 +36,7 @@
 import org.ovirt.engine.core.common.businessentities.DisplayType;
 import org.ovirt.engine.core.common.businessentities.MigrationSupport;
 import org.ovirt.engine.core.common.businessentities.Quota;
+import org.ovirt.engine.core.common.businessentities.StorageDomain;
 import org.ovirt.engine.core.common.businessentities.UsbPolicy;
 import org.ovirt.engine.core.common.businessentities.VDS;
 import org.ovirt.engine.core.common.businessentities.VDSGroup;
@@ -45,7 +46,6 @@
 import org.ovirt.engine.core.common.businessentities.VmTemplate;
 import org.ovirt.engine.core.common.businessentities.VmType;
 import org.ovirt.engine.core.common.businessentities.VolumeType;
-import org.ovirt.engine.core.common.businessentities.StorageDomain;
 import org.ovirt.engine.core.common.businessentities.storage_pool;
 import 
org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface;
 import org.ovirt.engine.core.common.interfaces.SearchType;
@@ -1374,6 +1374,11 @@
                             // append warning message
                             
model.setMessage(ConstantsManager.getInstance().getMessages().disksWillNotBePartOfTheExportedVM(s));
                         }
+
+                        // check if VM provides any disk
+                        if (diskList.size() - list.size() == 0) {
+                            
model.setMessage(ConstantsManager.getInstance().getMessages().noDiskWillBePartOfTheExportedVM());
+                        }
                     }
                 }), entity.getId());
     }
diff --git 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Messages.java
 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Messages.java
index 11bc1c5..5167d8c 100644
--- 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Messages.java
+++ 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Messages.java
@@ -102,6 +102,15 @@
     @DefaultMessage("Shared disk(s): {0} will not be part of the exported 
snapshot.")
     String disksWillNotBePartOfTheExportedVMSnapshot(String diskList);
 
+    @DefaultMessage("No disk will be part of the exported virtual machine.")
+    String noDiskWillBePartOfTheExportedVM();
+
+    @DefaultMessage("No disk will be part of the exported template.")
+    String noDiskWillBePartOfTheExportedTemplate();
+
+    @DefaultMessage("No disk will be part of the exported snapshot.")
+    String noDiskWillBePartOfTheExportedSnapshot();
+
     @DefaultMessage("Error connecting to Virtual Machine using Spice:\n{0}")
     String errConnectingVmUsingSpiceMsg(Object errCode);
 


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

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

Reply via email to