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