Vojtech Szocs has uploaded a new change for review.

Change subject: webadmin: Clean up watchdog related stuff
......................................................................

webadmin: Clean up watchdog related stuff

1. In VM dialog's "High Availability" side tab (Advanced Mode),
   "Watchdog Model" combo now has "(no watchdog device)" default
   value instead of empty string

2. In UiCommon models & behavior classes, refactored VM watchdog
   data handling:
   - removed confusing code that iterates over GetWatchdogQuery
     result list, even though this list holds max. 1 item (why?)
   - added new field UnitVmModel.watchdogType used to hold current
     VmWatchdogType enum value, so that we don't have to do weird
     stuff like "convert string back to enum"
     -> we can now localize option values in "Watchdog Model"
   - logic for updating current watchdog data centralized into
     VmModelBehaviorBase.updateWatchdogData method, eliminating
     code duplication

Change-Id: I0a3f8a01d415f6c689a5162c8f46e64d364d79ab
Signed-off-by: Vojtech Szocs <[email protected]>
---
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateListModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingVmModelBehavior.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/TemplateVmModelBehavior.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java
8 files changed, 52 insertions(+), 31 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/34/20934/1

diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java
index 2418a9e..dcb7f43 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java
@@ -1584,4 +1584,8 @@
 
     @DefaultStringValue("Active VM before the preview")
     String snapshotDescriptionActiveVmBeforePreview();
+
+    @DefaultStringValue("(no watchdog device)")
+    String noWatchdogDevice();
+
 }
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java
index 179abda..59aa175 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/AbstractVmPopupWidget.java
@@ -42,6 +42,7 @@
 import org.ovirt.engine.ui.common.widget.renderer.EnumRenderer;
 import org.ovirt.engine.ui.common.widget.renderer.MemorySizeRenderer;
 import org.ovirt.engine.ui.common.widget.renderer.NullSafeRenderer;
+import org.ovirt.engine.ui.common.widget.renderer.StringRenderer;
 import org.ovirt.engine.ui.common.widget.table.column.TextColumnWithTooltip;
 import 
org.ovirt.engine.ui.common.widget.uicommon.popup.vm.PopupWidgetConfigMap;
 import org.ovirt.engine.ui.common.widget.uicommon.storage.DisksAllocationView;
@@ -603,11 +604,10 @@
     private final CommonApplicationConstants constants;
 
     @SuppressWarnings({ "unchecked", "rawtypes" })
-    public AbstractVmPopupWidget(CommonApplicationConstants constants,
+    public AbstractVmPopupWidget(final CommonApplicationConstants constants,
             CommonApplicationResources resources,
             final CommonApplicationMessages messages,
             CommonApplicationTemplates applicationTemplates) {
-
         this.messages = messages;
         this.applicationTemplates = applicationTemplates;
         this.constants = constants;
@@ -622,7 +622,14 @@
         // TODO: How to align right without creating the widget manually?
         hostCpuEditor = new EntityModelCheckBoxEditor(Align.RIGHT, new 
ModeSwitchingVisibilityRenderer());
         isHighlyAvailableEditor = new EntityModelCheckBoxEditor(Align.RIGHT, 
new ModeSwitchingVisibilityRenderer());
-        watchdogModelEditor = new ListModelListBoxEditor<Object>(new 
ModeSwitchingVisibilityRenderer());
+
+        watchdogModelEditor = new ListModelListBoxEditor<Object>(new 
StringRenderer<Object>() {
+            @Override
+            public String render(Object object) {
+                return object != null ? super.render(object) : 
constants.noWatchdogDevice();
+            }
+        }, new ModeSwitchingVisibilityRenderer());
+
         watchdogActionEditor = new ListModelListBoxEditor<Object>(new 
ModeSwitchingVisibilityRenderer());
         isStatelessEditor = new EntityModelCheckBoxEditor(Align.RIGHT, new 
ModeSwitchingVisibilityRenderer());
         isRunAndPauseEditor = new EntityModelCheckBoxEditor(Align.RIGHT, new 
ModeSwitchingVisibilityRenderer());
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateListModel.java
index 31a3e27..fb7ceba 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateListModel.java
@@ -510,8 +510,7 @@
     }
 
     private void setVmWatchdogToParams(final UnitVmModel model, 
UpdateVmTemplateParameters updateVmParams) {
-        VmWatchdogType wdModel = VmWatchdogType.getByName((String) 
model.getWatchdogModel()
-                .getSelectedItem());
+        VmWatchdogType wdModel = model.getWatchdogType();
         updateVmParams.setUpdateWatchdog(true);
         if(wdModel != null) {
             VmWatchdog vmWatchdog = new VmWatchdog();
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingVmModelBehavior.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingVmModelBehavior.java
index a3016ae..3311f0c 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingVmModelBehavior.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingVmModelBehavior.java
@@ -68,16 +68,11 @@
                 UnitVmModel model = (UnitVmModel) target;
                 VdcQueryReturnValue val = (VdcQueryReturnValue) returnValue;
                 @SuppressWarnings("unchecked")
-                Collection<VmWatchdog> watchdogs = (Collection<VmWatchdog>) 
val.getReturnValue();
-                for (VmWatchdog watchdog : watchdogs) {
-                    
model.getWatchdogAction().setSelectedItem(watchdog.getAction() == null ? null
-                            : watchdog.getAction().name().toLowerCase());
-                    
model.getWatchdogModel().setSelectedItem(watchdog.getModel() == null ? ""
-                            : watchdog.getModel().name());
-                }
+                List<VmWatchdog> watchdogs = (List<VmWatchdog>) 
val.getReturnValue();
+                VmWatchdog watchdog = watchdogs.isEmpty() ? null : 
watchdogs.get(0);
+                updateWatchdogData(watchdog, model);
             }
         }), vm.getId());
-
     }
 
     private void postNetworkInterfacesLoaded() {
@@ -192,16 +187,8 @@
                         @SuppressWarnings("unchecked")
                         List<VmWatchdog> watchdogs =
                                 (List<VmWatchdog>) ((VdcQueryReturnValue) 
returnValue).getReturnValue();
-                        if (watchdogs.isEmpty()) {
-                            
getModel().getWatchdogAction().setSelectedItem(null);
-                            
getModel().getWatchdogModel().setSelectedItem(null);
-                        } else {
-                            VmWatchdog vmWatchdog = watchdogs.get(0);
-                            
getModel().getWatchdogAction().setSelectedItem(vmWatchdog.getAction() == null ? 
null
-                                    : 
vmWatchdog.getAction().name().toLowerCase());
-                            
getModel().getWatchdogModel().setSelectedItem(vmWatchdog.getModel() == null ? ""
-                                    : vmWatchdog.getModel().name());
-                        }
+                        VmWatchdog watchdog = watchdogs.isEmpty() ? null : 
watchdogs.get(0);
+                        updateWatchdogData(watchdog, getModel());
                     }
                 }));
 
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/TemplateVmModelBehavior.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/TemplateVmModelBehavior.java
index 8c9b8b8..7a0081e 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/TemplateVmModelBehavior.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/TemplateVmModelBehavior.java
@@ -3,6 +3,7 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
+import java.util.List;
 
 import org.ovirt.engine.core.common.businessentities.DisplayType;
 import org.ovirt.engine.core.common.businessentities.StoragePool;
@@ -88,12 +89,10 @@
             public void onSuccess(Object target, Object returnValue) {
                 UnitVmModel model = (UnitVmModel) target;
                 @SuppressWarnings("unchecked")
-                Collection<VmWatchdog> watchdogs =
-                        (Collection<VmWatchdog>) ((VdcQueryReturnValue) 
returnValue).getReturnValue();
-                for (VmWatchdog watchdog : watchdogs) {
-                    
model.getWatchdogAction().setSelectedItem(watchdog.getAction().name().toLowerCase());
-                    
model.getWatchdogModel().setSelectedItem(watchdog.getModel().name());
-                }
+                List<VmWatchdog> watchdogs =
+                        (List<VmWatchdog>) ((VdcQueryReturnValue) 
returnValue).getReturnValue();
+                VmWatchdog watchdog = watchdogs.isEmpty() ? null : 
watchdogs.get(0);
+                updateWatchdogData(watchdog, model);
             }
         }), template.getId());
         
getModel().getMigrationMode().setSelectedItem(template.getMigrationSupport());
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
index 493dc1c..b767b5d 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
@@ -2414,6 +2414,16 @@
         this.watchdogModel = watchdogModel;
     }
 
+    private VmWatchdogType watchdogType;
+
+    public VmWatchdogType getWatchdogType() {
+        return watchdogType;
+    }
+
+    public void setWatchdogType(VmWatchdogType watchdogType) {
+        this.watchdogType = watchdogType;
+    }
+
     private ListModel watchdogAction;
 
     public ListModel getWatchdogAction() {
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 c52d4b9..1ede4da 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
@@ -2175,8 +2175,7 @@
     }
 
     private void setVmWatchdogToParams(final UnitVmModel model, 
VmManagementParametersBase updateVmParams) {
-        VmWatchdogType wdModel = VmWatchdogType.getByName((String) 
model.getWatchdogModel()
-                .getSelectedItem());
+        VmWatchdogType wdModel = model.getWatchdogType();
         updateVmParams.setUpdateWatchdog(true);
         if (wdModel != null) {
             VmWatchdog vmWatchdog = new VmWatchdog();
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java
index 69cf045..042d736 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java
@@ -22,6 +22,7 @@
 import org.ovirt.engine.core.common.businessentities.VmBase;
 import org.ovirt.engine.core.common.businessentities.VmTemplate;
 import org.ovirt.engine.core.common.businessentities.VmType;
+import org.ovirt.engine.core.common.businessentities.VmWatchdog;
 import org.ovirt.engine.core.common.businessentities.VolumeType;
 import 
org.ovirt.engine.core.common.businessentities.comparators.NameableComparator;
 import 
org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface;
@@ -1048,4 +1049,19 @@
         getModel().getIsSingleQxlEnabled().setIsChangable(enabled);
         getModel().getIsSingleQxlEnabled().setEntity(enabled);
     }
+
+    protected void updateWatchdogData(VmWatchdog watchdog, UnitVmModel target) 
{
+        if (watchdog == null) {
+            target.getWatchdogAction().setSelectedItem(null);
+            target.getWatchdogModel().setSelectedItem(null);
+            target.setWatchdogType(null);
+        } else {
+            target.getWatchdogAction().setSelectedItem(watchdog.getAction() == 
null ? null
+                    : watchdog.getAction().name().toLowerCase());
+            target.getWatchdogModel().setSelectedItem(watchdog.getModel() == 
null ? ""
+                    : watchdog.getModel().name());
+            target.setWatchdogType(watchdog.getModel());
+        }
+    }
+
 }


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

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

Reply via email to