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

Reply via email to