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