Piotr Kliczewski has uploaded a new change for review.

Change subject: events: sending stats with vm status change event
......................................................................

events: sending stats with vm status change event


Change-Id: Ib15df9ce78bbb86c9284bdd6b772d0e6801db765
Signed-off-by: pkliczew <piotr.kliczew...@gmail.com>
---
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/PollVMStatsRefresher.java
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/GetAllVmStatsVDSCommand.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/GetVmStatsVDSCommand.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmStatsVdsBrokerCommand.java
5 files changed, 21 insertions(+), 35 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/05/40205/1

diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/PollVMStatsRefresher.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/PollVMStatsRefresher.java
index 7bff015..ad85a5e 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/PollVMStatsRefresher.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/PollVMStatsRefresher.java
@@ -11,7 +11,7 @@
 
 public class PollVMStatsRefresher implements VMStatsRefresher {
 
-    protected VdsManager manager;
+    protected final VdsManager manager;
     private SchedulerUtil sched;
     private String vmsMonitoringJobId;
     private int refreshIteration = 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 27a526b..829d3fd 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
@@ -7,12 +7,10 @@
 import java.util.List;
 import java.util.Map;
 
+import org.ovirt.engine.core.common.businessentities.VDS;
 import org.ovirt.engine.core.common.businessentities.VM;
 import org.ovirt.engine.core.common.businessentities.VmDynamic;
 import org.ovirt.engine.core.common.utils.Pair;
-import org.ovirt.engine.core.common.vdscommands.GetVmStatsVDSCommandParameters;
-import org.ovirt.engine.core.common.vdscommands.VDSCommandType;
-import org.ovirt.engine.core.common.vdscommands.VDSReturnValue;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.dal.dbbroker.DbFacade;
 import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector;
@@ -23,6 +21,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.VmStatsVdsBrokerCommand;
 import org.ovirt.engine.core.vdsbroker.vdsbroker.entities.VmInternalData;
 import org.ovirt.vdsm.jsonrpc.client.events.EventSubscriber;
 import org.reactivestreams.Subscription;
@@ -59,7 +58,7 @@
                     List<Pair<VM, VmInternalData>> devicesChangedVms = new 
ArrayList<>();
 
                     List<VmInternalData> vms = convertEvent(map);
-                    prepareChanges(vms, changedVms, devicesChangedVms);
+                    prepareChanges(vms, changedVms, devicesChangedVms, map);
 
                     new VmsMonitoring(manager, changedVms, devicesChangedVms, 
auditLogDirector).perform();
                 } finally {
@@ -67,12 +66,14 @@
                 }
             }
 
+            @SuppressWarnings("unchecked")
             private List<VmInternalData> convertEvent(Map<String, Object> map) 
{
                 List<VmInternalData> returnVMs = new 
ArrayList<VmInternalData>();
                 for (String vmid : map.keySet()) {
                     VmDynamic vmdynamic = new VmDynamic();
                     vmdynamic.setId(new Guid((String) vmid));
-                    vmdynamic.setStatus(convertToVmStatus((String) 
map.get(vmid)));
+                    Map<String, Object> attributes = (Map<String, Object>) 
map.get(vmid);
+                    vmdynamic.setStatus(convertToVmStatus((String) 
attributes.get("status")));
 
                     VmInternalData vmData = new VmInternalData(vmdynamic, 
null, null, null);
                     returnVMs.add(vmData);
@@ -80,13 +81,19 @@
                 return returnVMs;
             }
 
+            @SuppressWarnings("unchecked")
             private void prepareChanges(List<VmInternalData> vms, 
List<Pair<VM, VmInternalData>> changedVms,
-                    List<Pair<VM, VmInternalData>> devicesChangedVms) {
+                    List<Pair<VM, VmInternalData>> devicesChangedVms, 
Map<String, Object> map) {
                 Map<Guid, VM> dbVms = 
dbFacade.getVmDao().getAllRunningByVds(manager.getVdsId());
                 for (VmInternalData vdsmVm : vms) {
-                    VM dbVm = dbVms.get(vdsmVm.getVmDynamic().getId());
+                    Guid vmid = vdsmVm.getVmDynamic().getId();
+                    VM dbVm = dbVms.get(vmid);
 
-                    VmInternalData vmData = fetchStats(dbVm, vdsmVm);
+                    VDS host = dbFacade.getVdsDao().get(manager.getVdsId());
+                    Map<String, Object> attributes = (Map<String, Object>) 
map.get(vmid.toString());
+                    VmInternalData vmData =
+                            
VmStatsVdsBrokerCommand.createVmInternalData((Map<String, Object>) 
attributes.get("stats"),
+                                    host);
                     if (vmData != null) {
                         changedVms.add(new Pair<>(dbVm, vmData));
                     }
@@ -94,25 +101,6 @@
                         devicesChangedVms.add(new Pair<>(dbVm, vdsmVm));
                     }
                 }
-            }
-
-            private VmInternalData fetchStats(VM dbVm, VmInternalData vdsmVm) {
-                // TODO move VmStats to be part of an event
-                VDSReturnValue vmStats =
-                        resourceManager.runVdsCommand(
-                                VDSCommandType.GetVmStats,
-                                new 
GetVmStatsVDSCommandParameters(manager.getCopyVds(), 
vdsmVm.getVmDynamic().getId()));
-                if (vmStats.getSucceeded()) {
-                    return (VmInternalData) vmStats.getReturnValue();
-                } else {
-                    if (dbVm != null) {
-                        log.error(
-                                "failed to fetch VM '{}' stats. status remain 
unchanged ({})",
-                                dbVm.getName(),
-                                dbVm.getStatus());
-                    }
-                }
-                return null;
             }
 
             @Override
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/GetAllVmStatsVDSCommand.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/GetAllVmStatsVDSCommand.java
index d99ce56..81d8b45 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/GetAllVmStatsVDSCommand.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/GetAllVmStatsVDSCommand.java
@@ -21,7 +21,7 @@
         proceedProxyReturnValue();
         Map<Guid, VmInternalData> returnVMs = new HashMap<Guid, 
VmInternalData>();
         for (int idx = 0; idx < mVmListReturn.mInfoList.length; ++idx) {
-            VmInternalData vmInternalData = 
createVmInternalData(mVmListReturn.mInfoList[idx]);
+            VmInternalData vmInternalData = 
createVmInternalData(mVmListReturn.mInfoList[idx], getVds());
             returnVMs.put(vmInternalData.getVmDynamic().getId(), 
vmInternalData);
         }
         setReturnValue(returnVMs);
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/GetVmStatsVDSCommand.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/GetVmStatsVDSCommand.java
index 6251507..061b899 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/GetVmStatsVDSCommand.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/GetVmStatsVDSCommand.java
@@ -14,6 +14,6 @@
     protected void executeVdsBrokerCommand() {
         mVmListReturn = 
getBroker().getVmStats(getParameters().getVmId().toString());
         proceedProxyReturnValue();
-        setReturnValue(createVmInternalData(mVmListReturn.mInfoList[0]));
+        setReturnValue(createVmInternalData(mVmListReturn.mInfoList[0], 
getVds()));
     }
 }
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmStatsVdsBrokerCommand.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmStatsVdsBrokerCommand.java
index 6d77898..df1f63e 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmStatsVdsBrokerCommand.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmStatsVdsBrokerCommand.java
@@ -26,10 +26,10 @@
         return mVmListReturn;
     }
 
-    protected VmInternalData createVmInternalData(Map<String, Object> 
xmlRpcStruct) {
+    public static VmInternalData createVmInternalData(Map<String, Object> 
xmlRpcStruct, VDS host) {
         VmDynamic vmDynamic = new VmDynamic();
         VdsBrokerObjectsBuilder.updateVMDynamicData(vmDynamic, xmlRpcStruct);
-        adjustDisplayIp(vmDynamic.getGraphicsInfos());
+        adjustDisplayIp(vmDynamic.getGraphicsInfos(), host);
         return new VmInternalData(vmDynamic,
                 VdsBrokerObjectsBuilder.buildVMStatisticsData(xmlRpcStruct),
                 
VdsBrokerObjectsBuilder.buildVmGuestAgentInterfacesData(vmDynamic.getId(), 
xmlRpcStruct),
@@ -44,9 +44,7 @@
      *
      * @param graphicsInfos - graphicsInfo to adjust
      */
-    private void adjustDisplayIp(Map<GraphicsType, GraphicsInfo> 
graphicsInfos) {
-        VDS host = getVds();
-
+    private static void adjustDisplayIp(Map<GraphicsType, GraphicsInfo> 
graphicsInfos, VDS host) {
         for (GraphicsInfo graphicsInfo : graphicsInfos.values()) {
                 if (graphicsInfo == null) {
                     continue;


-- 
To view, visit https://gerrit.ovirt.org/40205
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib15df9ce78bbb86c9284bdd6b772d0e6801db765
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Piotr Kliczewski <piotr.kliczew...@gmail.com>
Gerrit-Reviewer: automat...@ovirt.org
Gerrit-Reviewer: oVirt Jenkins CI Server
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to