Arik Hadas has uploaded a new change for review. Change subject: core: cleanup in EventVmStatsRefresher (2) ......................................................................
core: cleanup in EventVmStatsRefresher (2) Move code that parses maps we get from VDSM to VdsBrokerObjectsBuilder Change-Id: I1f3cc490ad7c69877d97e8c01428c914bb81472f Signed-off-by: Arik Hadas <aha...@redhat.com> --- M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/jsonrpc/EventVMStatsRefresher.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java 2 files changed, 49 insertions(+), 39 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/66/42466/1 diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/jsonrpc/EventVMStatsRefresher.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/jsonrpc/EventVMStatsRefresher.java index 9041d8c..0bb48df 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/jsonrpc/EventVMStatsRefresher.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/jsonrpc/EventVMStatsRefresher.java @@ -1,7 +1,6 @@ package org.ovirt.engine.core.vdsbroker.jsonrpc; import static org.ovirt.engine.core.vdsbroker.VmsListFetcher.isDevicesChanged; -import static org.ovirt.engine.core.vdsbroker.vdsbroker.VdsBrokerObjectsBuilder.convertToVmStatus; import java.util.ArrayList; import java.util.List; @@ -9,9 +8,6 @@ import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.businessentities.VMStatus; -import org.ovirt.engine.core.common.businessentities.VmDynamic; -import org.ovirt.engine.core.common.businessentities.VmExitReason; -import org.ovirt.engine.core.common.businessentities.VmExitStatus; import org.ovirt.engine.core.common.utils.Pair; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dal.dbbroker.DbFacade; @@ -24,7 +20,7 @@ import org.ovirt.engine.core.vdsbroker.VmsListFetcher; import org.ovirt.engine.core.vdsbroker.VmsMonitoring; import org.ovirt.engine.core.vdsbroker.VmsStatisticsFetcher; -import org.ovirt.engine.core.vdsbroker.vdsbroker.VdsProperties; +import org.ovirt.engine.core.vdsbroker.vdsbroker.VdsBrokerObjectsBuilder; import org.ovirt.engine.core.vdsbroker.vdsbroker.entities.VmInternalData; import org.ovirt.vdsm.jsonrpc.client.events.EventSubscriber; import org.reactivestreams.Subscription; @@ -73,7 +69,7 @@ @SuppressWarnings("unchecked") private void convertEvent(List<Pair<VM, VmInternalData>> changedVms, List<Pair<VM, VmInternalData>> devicesChangedVms, Map<String, Object> map) { - Double notifyTime = parseDouble(map.remove(VdsProperties.notify_time)); + Double notifyTime = VdsBrokerObjectsBuilder.getNotifyTimeFromVmStatusEvent(map); for (Map.Entry<String, Object> entry : map.entrySet()) { Guid vmid = new Guid((String) entry.getKey()); @@ -98,39 +94,10 @@ } private VmInternalData createVmInternalData(VM dbVm, Map<String, Object> xmlRpcStruct, Double notifyTime) { - VmDynamic vmDynamic = new VmDynamic(dbVm.getDynamicData()); - - if (xmlRpcStruct.containsKey(VdsProperties.status)) { - vmDynamic.setStatus(convertToVmStatus((String) xmlRpcStruct.get(VdsProperties.status))); - } - - if (xmlRpcStruct.containsKey(VdsProperties.hash)) { - vmDynamic.setHash((String) xmlRpcStruct.get(VdsProperties.hash)); - } - - if (xmlRpcStruct.containsKey(VdsProperties.exit_code)) { - String exitCodeStr = xmlRpcStruct.get(VdsProperties.exit_code).toString(); - vmDynamic.setExitStatus(VmExitStatus.forValue(Integer.parseInt(exitCodeStr))); - } - - if (xmlRpcStruct.containsKey(VdsProperties.exit_message)) { - String exitMsg = (String) xmlRpcStruct.get(VdsProperties.exit_message); - vmDynamic.setExitMessage(exitMsg); - } - - if (xmlRpcStruct.containsKey(VdsProperties.exit_reason)) { - String exitReasonStr = xmlRpcStruct.get(VdsProperties.exit_reason).toString(); - vmDynamic.setExitReason(VmExitReason.forValue(Integer.parseInt(exitReasonStr))); - } - - return new VmInternalData(vmDynamic, dbVm.getStatisticsData(), notifyTime); - } - - private Double parseDouble(Object value) { - if (Long.class.isInstance(value)) { - return ((Long) value).doubleValue(); - } - return null; + return new VmInternalData( + VdsBrokerObjectsBuilder.buildVmDynamicFromEvent(dbVm.getDynamicData(), xmlRpcStruct), + dbVm.getStatisticsData(), + notifyTime); } @Override diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java index 74abe1e..08ec2cc 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java @@ -2186,4 +2186,47 @@ return V2VJobInfo.JobStatus.UNKNOWN; } } + + /** + * Build VmDynamic from event we get from VDSM upon status change + * @param vmDynamic - base dynamic data, values which are not included in the + * events will be taken from it. + * @param xmlRpcStruct - map from VDSM + * @return cloned VmDynamic with values received from event + */ + public static VmDynamic buildVmDynamicFromEvent(VmDynamic vmDynamic, Map<String, Object> xmlRpcStruct) { + VmDynamic clonedVmDynamic = new VmDynamic(vmDynamic); + if (xmlRpcStruct.containsKey(VdsProperties.status)) { + clonedVmDynamic.setStatus(convertToVmStatus((String) xmlRpcStruct.get(VdsProperties.status))); + } + + if (xmlRpcStruct.containsKey(VdsProperties.hash)) { + clonedVmDynamic.setHash((String) xmlRpcStruct.get(VdsProperties.hash)); + } + + if (xmlRpcStruct.containsKey(VdsProperties.exit_code)) { + String exitCodeStr = xmlRpcStruct.get(VdsProperties.exit_code).toString(); + clonedVmDynamic.setExitStatus(VmExitStatus.forValue(Integer.parseInt(exitCodeStr))); + } + + if (xmlRpcStruct.containsKey(VdsProperties.exit_message)) { + String exitMsg = (String) xmlRpcStruct.get(VdsProperties.exit_message); + clonedVmDynamic.setExitMessage(exitMsg); + } + + if (xmlRpcStruct.containsKey(VdsProperties.exit_reason)) { + String exitReasonStr = xmlRpcStruct.get(VdsProperties.exit_reason).toString(); + clonedVmDynamic.setExitReason(VmExitReason.forValue(Integer.parseInt(exitReasonStr))); + } + + return clonedVmDynamic; + } + + public static Double getNotifyTimeFromVmStatusEvent(Map<String, Object> xmlRpcStruct) { + Object notifyTime = xmlRpcStruct.remove(VdsProperties.notify_time); + if (Long.class.isInstance(notifyTime)) { + return ((Long) notifyTime).doubleValue(); + } + return null; + } } -- To view, visit https://gerrit.ovirt.org/42466 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I1f3cc490ad7c69877d97e8c01428c914bb81472f Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Arik Hadas <aha...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches