Greg Padgett has uploaded a new change for review.

Change subject: [WIP] vdsbroker: read vmJobs update from getVmStats call
......................................................................

[WIP] vdsbroker: read vmJobs update from getVmStats call

Change-Id: I6d0ab4372fe98f8d61f4f393e2823d278f33621f
Bug-Url: https://bugzilla.redhat.com/??????
Signed-off-by: Greg Padgett <gpadg...@redhat.com>
---
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsProperties.java
A 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmJobInfoReturnForXmlRpc.java
3 files changed, 75 insertions(+), 0 deletions(-)


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

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 cf2098f..39476f1 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
@@ -30,10 +30,14 @@
 import org.ovirt.engine.core.common.businessentities.VMStatus;
 import 
org.ovirt.engine.core.common.businessentities.VdsTransparentHugePagesState;
 import org.ovirt.engine.core.common.businessentities.VmBalloonInfo;
+import org.ovirt.engine.core.common.businessentities.VmBlockJob;
+import org.ovirt.engine.core.common.businessentities.VmBlockJobType;
 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.businessentities.VmGuestAgentInterface;
+import org.ovirt.engine.core.common.businessentities.VmJob;
+import org.ovirt.engine.core.common.businessentities.VmJobType;
 import org.ovirt.engine.core.common.businessentities.VmPauseStatus;
 import org.ovirt.engine.core.common.businessentities.VmStatistics;
 import org.ovirt.engine.core.common.businessentities.network.InterfaceStatus;
@@ -347,6 +351,9 @@
         // ------------- vm memory statistics -----------------------
         vm.setusage_mem_percent(AssignIntValue(xmlRpcStruct, 
VdsProperties.vm_usage_mem_percent));
         vm.setVmBalloonInfo(getBalloonInfo(xmlRpcStruct));
+
+        // ------------- vm jobs -------------
+        vm.setVmJobs(getVmJobs(vm.getId(), xmlRpcStruct));
     }
 
     private static VmBalloonInfo getBalloonInfo(Map<String, Object> 
xmlRpcStruct) {
@@ -366,6 +373,44 @@
         return vmBalloonInfo;
     }
 
+    private static ArrayList<VmJob> getVmJobs(Guid vmId, Map<String, Object> 
xmlRpcStruct) {
+        if (!xmlRpcStruct.containsKey(VdsProperties.vmJobs)) {
+            return null;
+        }
+        ArrayList<VmJob> vmJobs = new ArrayList<VmJob>();
+        for (Object jobMap : ((Map<String, Object>) 
xmlRpcStruct.get(VdsProperties.vmJobs)).values()) {
+            VmJob job = buildVmJobData(vmId, (Map<String, Object>) jobMap);
+            vmJobs.add(job);
+        }
+        return vmJobs;
+    }
+
+    public static VmJob buildVmJobData(Guid vmId, Map<String, Object> 
xmlRpcStruct) {
+        VmJob ret;
+        VmJobType jobType = 
VmJobType.getByName(AssignStringValue(xmlRpcStruct, VdsProperties.vmJobType));
+
+        switch (jobType) {
+        case BLOCK:
+            VmBlockJob blockJob = new VmBlockJob();
+            
blockJob.setBlockJobType(VmBlockJobType.getByName(AssignStringValue(xmlRpcStruct,
 VdsProperties.vmBlockJobType)));
+            blockJob.setCursorCur(AssignLongValue(xmlRpcStruct, 
VdsProperties.vmJobCursorCur));
+            blockJob.setCursorEnd(AssignLongValue(xmlRpcStruct, 
VdsProperties.vmJobCursorEnd));
+            blockJob.setBandwidth(AssignLongValue(xmlRpcStruct, 
VdsProperties.vmJobBandwidth));
+            blockJob.setImageGroupId(new Guid(AssignStringValue(xmlRpcStruct, 
VdsProperties.vmJobImageUUID)));
+            ret = blockJob;
+            break;
+        default:
+            ret = new VmJob();
+            break;
+        }
+
+        ret.setVmId(vmId);
+        ret.setId(new Guid(AssignStringValue(xmlRpcStruct, 
VdsProperties.vmJobId)));
+        ret.setJobType(jobType);
+        // TODO GP job state?
+        return ret;
+    }
+
     public static void updateVDSDynamicData(VDS vds, Map<String, Object> 
xmlRpcStruct) {
         vds.setSupportedClusterLevels(AssignStringValueFromArray(xmlRpcStruct, 
VdsProperties.supported_cluster_levels));
 
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsProperties.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsProperties.java
index 03d1d75..b1336ed 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsProperties.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsProperties.java
@@ -347,4 +347,17 @@
     // properties for ServerConnectionListReturnForXmlRpc
     public static final String serverType = "serverType";
     public static final String target = "target";
+
+    // VM Jobs
+    public static final String vmJobs = "vmJobs";
+    public static final String vmJobId = "id";
+    public static final String vmJobType = "jobType";
+    // TODO GP unused?
+    //public static final String vmJobState = "state";
+    public static final String vmBlockJobType = "blockJobType";
+    public static final String vmJobCursorCur = "cur";
+    public static final String vmJobCursorEnd = "end";
+    public static final String vmJobBandwidth = "bandwidth";
+    public static final String vmJobImageUUID = "imgUUID";
+
 }
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmJobInfoReturnForXmlRpc.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmJobInfoReturnForXmlRpc.java
new file mode 100644
index 0000000..17479f1
--- /dev/null
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmJobInfoReturnForXmlRpc.java
@@ -0,0 +1,17 @@
+package org.ovirt.engine.core.vdsbroker.vdsbroker;
+
+import java.util.Map;
+
+import org.ovirt.engine.core.vdsbroker.irsbroker.StatusReturnForXmlRpc;
+
+public final class VmJobInfoReturnForXmlRpc extends StatusReturnForXmlRpc {
+    private static final String VMJOB = "vmjob";
+    public Map<String, Object> job;
+
+    @SuppressWarnings("unchecked")
+    public VmJobInfoReturnForXmlRpc(Map<String, Object> innerMap) {
+        super(innerMap);
+        job = (Map<String, Object>) innerMap.get(VMJOB);
+    }
+
+}


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I6d0ab4372fe98f8d61f4f393e2823d278f33621f
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Greg Padgett <gpadg...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to