Muli Salem has uploaded a new change for review.

Change subject: engine: Update VmGuestAgentInterfaces
......................................................................

engine: Update VmGuestAgentInterfaces

This patch changes the objects that are returned from
GetAllVmStats and GetVmStats to hold a list of
VmGuestAgentInterfaces as well as VmDynamic and VmStatistics.

This is meant to support the Vm Internal Information feature.

Change-Id: I9a550ae0f1984e87a68c52e4da1a2a19469eb050
Signed-off-by: Muli Salem <msa...@redhat.com>
---
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.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/VdsBrokerObjectsBuilder.java
A 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInternalData.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmStatsVdsBrokerCommand.java
6 files changed, 133 insertions(+), 32 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/23/10123/1

diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java
index a53b9ec..96ff2b2 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java
@@ -72,11 +72,12 @@
 import org.ovirt.engine.core.vdsbroker.vdsbroker.VDSRecoveringException;
 import org.ovirt.engine.core.vdsbroker.vdsbroker.VdsBrokerCommand;
 import org.ovirt.engine.core.vdsbroker.vdsbroker.VdsProperties;
+import org.ovirt.engine.core.vdsbroker.vdsbroker.VmInternalData;
 import org.ovirt.engine.core.vdsbroker.xmlrpc.XmlRpcStruct;
 
 @SuppressWarnings({ "synthetic-access", "unchecked" })
 public class VdsUpdateRunTimeInfo {
-    private Map<Guid, Entry<VmDynamic, VmStatistics>> _runningVms;
+    private Map<Guid, VmInternalData> _runningVms;
     private final Map<Guid, VmDynamic> _vmDynamicToSave = new HashMap<Guid, 
VmDynamic>();
     private final Map<Guid, VmStatistics> _vmStatisticsToSave = new 
HashMap<Guid, VmStatistics>();
     private final Map<Guid, List<VmNetworkInterface>> 
_vmInterfaceStatisticsToSave =
@@ -811,7 +812,7 @@
             command = new 
GetAllVmStatsVDSCommand<VdsIdAndVdsVDSCommandParametersBase>(
                     new VdsIdAndVdsVDSCommandParametersBase(_vds));
         }
-        _runningVms = (Map<Guid, Entry<VmDynamic, VmStatistics>>) 
command.ExecuteWithReturnValue();
+        _runningVms = (Map<Guid, VmInternalData>) 
command.ExecuteWithReturnValue();
 
         if (command.getVDSReturnValue().getSucceeded()) {
             List<VM> running = checkVmsStatusChanged();
@@ -855,8 +856,8 @@
     private void handleVmDeviceChange() {
         // Go over all the vms and detemine which ones require updating
         List<String> vmsToUpdateFromVds = new ArrayList<String>();
-        for (Entry<VmDynamic, VmStatistics> vmHelper : _runningVms.values()) {
-            VmDynamic vmDynamic = vmHelper.getKey();
+        for (VmInternalData vmInternalData : _runningVms.values()) {
+            VmDynamic vmDynamic = vmInternalData.getVmDynamic();
             if (vmDynamic != null) {
                 VM vm = _vmDict.get(vmDynamic.getId());
                 if (vm != null) {
@@ -1047,8 +1048,8 @@
         List<VM> running = new ArrayList<VM>();
         if (!_vdsManager.getRefreshStatistics()) {
             List<VmDynamic> tempRunningList = new ArrayList<VmDynamic>();
-            for (Entry<VmDynamic, VmStatistics> runningVm : 
_runningVms.values()) {
-                tempRunningList.add(runningVm.getKey());
+            for (VmInternalData runningVm : _runningVms.values()) {
+                tempRunningList.add(runningVm.getVmDynamic());
             }
             for (VmDynamic runningVm : tempRunningList) {
                 VM vmToUpdate = null;
@@ -1063,7 +1064,7 @@
                     command.Execute();
                     if (command.getVDSReturnValue().getSucceeded()) {
                         _runningVms.put(runningVm.getId(),
-                                (Entry<VmDynamic, VmStatistics>) 
command.getReturnValue());
+                                (VmInternalData) command.getReturnValue());
                     } else {
                         _runningVms.remove(runningVm.getId());
                     }
@@ -1081,8 +1082,8 @@
      * Delete all vms with status Down
      */
     private void proceedDownVms() {
-        for (Entry<VmDynamic, VmStatistics> vm_helper : _runningVms.values()) {
-            VmDynamic vm = vm_helper.getKey();
+        for (VmInternalData vmInternalData : _runningVms.values()) {
+            VmDynamic vm = vmInternalData.getVmDynamic();
             if (vm.getstatus() != VMStatus.Down) {
                 continue;
             }
@@ -1229,8 +1230,8 @@
     }
 
     private void updateRepository(List<VM> running) {
-        for (Entry<VmDynamic, VmStatistics> vm_helper : _runningVms.values()) {
-            VmDynamic runningVm = vm_helper.getKey();
+        for (VmInternalData vmInternalData : _runningVms.values()) {
+            VmDynamic runningVm = vmInternalData.getVmDynamic();
             VM vmToUpdate = null;
             vmToUpdate = _vmDict.get(runningVm.getId());
 
@@ -1390,7 +1391,7 @@
             else if (vmToRemove.isAutoStartup()
                     && !_autoVmsToRun.contains(vmGuid)
                     && (!_runningVms.containsKey(vmGuid) || 
(_runningVms.containsKey(vmGuid) && _runningVms.get(vmGuid)
-                            .getKey()
+                            .getVmDynamic()
                             .getExitStatus() != VmExitStatus.Normal))) {
                 _autoVmsToRun.add(vmGuid);
             }
@@ -1538,12 +1539,12 @@
     private void UpdateVmStatistics(VM vmToUpdate) {
         // check if time for vm statistics refresh - update cache and DB
         if (_vdsManager.getRefreshStatistics()) {
-            VmStatistics vmStatistics = 
_runningVms.get(vmToUpdate.getId()).getValue();
+            VmStatistics vmStatistics = 
_runningVms.get(vmToUpdate.getId()).getVmStatistics();
             vmToUpdate.updateRunTimeStatisticsData(vmStatistics, vmToUpdate);
             AddVmStatisticsToList(vmToUpdate.getStatisticsData());
             UpdateInterfaceStatistics(vmToUpdate, vmStatistics);
 
-            for (DiskImageDynamic imageDynamic : 
_runningVms.get(vmToUpdate.getId()).getKey().getDisks()) {
+            for (DiskImageDynamic imageDynamic : 
_runningVms.get(vmToUpdate.getId()).getVmDynamic().getDisks()) {
                 _vmDiskImageDynamicToSave.put(imageDynamic.getId(), 
imageDynamic);
             }
         }
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 2cbdc36..1b3fdc0 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
@@ -1,10 +1,7 @@
 package org.ovirt.engine.core.vdsbroker.vdsbroker;
 
-import org.ovirt.engine.core.common.businessentities.VmDynamic;
-import org.ovirt.engine.core.common.businessentities.VmStatistics;
 import 
org.ovirt.engine.core.common.vdscommands.VdsIdAndVdsVDSCommandParametersBase;
 import org.ovirt.engine.core.compat.Guid;
-import org.ovirt.engine.core.compat.KeyValuePairCompat;
 import org.ovirt.engine.core.utils.log.Logged;
 import org.ovirt.engine.core.utils.log.Logged.LogLevel;
 
@@ -18,14 +15,11 @@
     protected void ExecuteVdsBrokerCommand() {
         mVmListReturn = getBroker().getAllVmStats();
         ProceedProxyReturnValue();
-        java.util.HashMap<Guid, java.util.Map.Entry<VmDynamic, VmStatistics>> 
returnVMs =
-                new java.util.HashMap<Guid, java.util.Map.Entry<VmDynamic, 
VmStatistics>>();
+        java.util.HashMap<Guid, VmInternalData> returnVMs =
+                new java.util.HashMap<Guid, VmInternalData>();
         for (int idx = 0; idx < mVmListReturn.mInfoList.length; ++idx) {
-            VmDynamic vmDynamic = new ExtendedVmDynamic(getVds());
-            VdsBrokerObjectsBuilder.updateVMDynamicData(vmDynamic, 
mVmListReturn.mInfoList[idx]);
-            VmStatistics vmStatistics = 
VdsBrokerObjectsBuilder.buildVMStatisticsData(mVmListReturn.mInfoList[idx]);
-            returnVMs.put(vmDynamic.getId(), new KeyValuePairCompat<VmDynamic, 
VmStatistics>(vmDynamic,
-                    vmStatistics));
+            VmInternalData vmExternalData = 
getVmExternalDataFromInfoList(mVmListReturn.mInfoList[idx]);
+            returnVMs.put(vmExternalData.getVmDynamic().getId(), 
vmExternalData);
         }
         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 d956694..48213be 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
@@ -1,9 +1,6 @@
 package org.ovirt.engine.core.vdsbroker.vdsbroker;
 
-import org.ovirt.engine.core.common.businessentities.VmDynamic;
-import org.ovirt.engine.core.common.businessentities.VmStatistics;
 import org.ovirt.engine.core.common.vdscommands.GetVmStatsVDSCommandParameters;
-import org.ovirt.engine.core.compat.KeyValuePairCompat;
 import org.ovirt.engine.core.utils.log.Logged;
 import org.ovirt.engine.core.utils.log.Logged.LogLevel;
 
@@ -17,10 +14,6 @@
     protected void ExecuteVdsBrokerCommand() {
         mVmListReturn = 
getBroker().getVmStats(getParameters().getVmId().toString());
         ProceedProxyReturnValue();
-        VmDynamic vmDynamic = new ExtendedVmDynamic(getVds());
-        VdsBrokerObjectsBuilder.updateVMDynamicData(vmDynamic, 
mVmListReturn.mInfoList[0]);
-        setReturnValue(new KeyValuePairCompat<VmDynamic, VmStatistics>(
-                vmDynamic,
-                
VdsBrokerObjectsBuilder.buildVMStatisticsData(mVmListReturn.mInfoList[0])));
+        
setReturnValue(getVmExternalDataFromInfoList(mVmListReturn.mInfoList[0]));
     }
 }
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 9c8d3fe..169c2a3 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
@@ -32,6 +32,7 @@
 import 
org.ovirt.engine.core.common.businessentities.VdsTransparentHugePagesState;
 import org.ovirt.engine.core.common.businessentities.VmDynamic;
 import org.ovirt.engine.core.common.businessentities.VmExitStatus;
+import org.ovirt.engine.core.common.businessentities.VmGuestAgentInterface;
 import org.ovirt.engine.core.common.businessentities.VmNetworkInterface;
 import org.ovirt.engine.core.common.businessentities.VmPauseStatus;
 import org.ovirt.engine.core.common.businessentities.VmStatistics;
@@ -1296,4 +1297,9 @@
     }
 
     private static final Log log = 
LogFactory.getLog(VdsBrokerObjectsBuilder.class);
+
+    public static List<VmGuestAgentInterface> 
buildVmGuestAgentInterfacesData(XmlRpcStruct xmlRpcStruct) {
+        // TODO: implement
+        return null;
+    }
 }
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInternalData.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInternalData.java
new file mode 100644
index 0000000..8d6c0a5
--- /dev/null
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInternalData.java
@@ -0,0 +1,97 @@
+package org.ovirt.engine.core.vdsbroker.vdsbroker;
+
+import java.util.List;
+
+import org.ovirt.engine.core.common.businessentities.VmDynamic;
+import org.ovirt.engine.core.common.businessentities.VmGuestAgentInterface;
+import org.ovirt.engine.core.common.businessentities.VmStatistics;
+
+/**
+ * This class represents the dynamic data of a VM, including {@link 
VmDynamic}, {@link VmStatistics} and
+ * {@link VmGuestAgentInterface}, to manage data received from the VM's host.
+ */
+public class VmInternalData {
+
+    private VmDynamic vmDynamic;
+    private VmStatistics vmStatistics;
+    private List<VmGuestAgentInterface> vmGuestAgentInterfaces;
+
+    public VmInternalData(VmDynamic vmDynamic,
+            VmStatistics vmStatistics,
+            List<VmGuestAgentInterface> vmGuestAgentInterfaces) {
+        this.vmDynamic = vmDynamic;
+        this.vmStatistics = vmStatistics;
+        this.vmGuestAgentInterfaces = vmGuestAgentInterfaces;
+    }
+
+    public VmDynamic getVmDynamic() {
+        return vmDynamic;
+    }
+
+    public void setVmDynamic(VmDynamic vmDynamic) {
+        this.vmDynamic = vmDynamic;
+    }
+
+    public VmStatistics getVmStatistics() {
+        return vmStatistics;
+    }
+
+    public void setVmStatistics(VmStatistics vmStatistics) {
+        this.vmStatistics = vmStatistics;
+    }
+
+    public List<VmGuestAgentInterface> getVmGuestAgentInterfaces() {
+        return vmGuestAgentInterfaces;
+    }
+
+    public void setVmGuestAgentInterfaces(List<VmGuestAgentInterface> 
vmGuestAgentInterfaces) {
+        this.vmGuestAgentInterfaces = vmGuestAgentInterfaces;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((vmDynamic == null) ? 0 : 
vmDynamic.hashCode());
+        result = prime * result + ((vmGuestAgentInterfaces == null) ? 0 : 
vmGuestAgentInterfaces.hashCode());
+        result = prime * result + ((vmStatistics == null) ? 0 : 
vmStatistics.hashCode());
+        return result;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) {
+            return true;
+        }
+        if (obj == null) {
+            return false;
+        }
+        if (getClass() != obj.getClass()) {
+            return false;
+        }
+        VmInternalData other = (VmInternalData) obj;
+        if (vmDynamic == null) {
+            if (other.vmDynamic != null) {
+                return false;
+            }
+        } else if (!vmDynamic.equals(other.vmDynamic)) {
+            return false;
+        }
+        if (vmGuestAgentInterfaces == null) {
+            if (other.vmGuestAgentInterfaces != null) {
+                return false;
+            }
+        } else if 
(!vmGuestAgentInterfaces.equals(other.vmGuestAgentInterfaces)) {
+            return false;
+        }
+        if (vmStatistics == null) {
+            if (other.vmStatistics != null) {
+                return false;
+            }
+        } else if (!vmStatistics.equals(other.vmStatistics)) {
+            return false;
+        }
+        return true;
+    }
+
+}
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 6b0f491..5446f52 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
@@ -1,7 +1,9 @@
 package org.ovirt.engine.core.vdsbroker.vdsbroker;
 
 import org.ovirt.engine.core.common.businessentities.VDS;
+import org.ovirt.engine.core.common.businessentities.VmDynamic;
 import org.ovirt.engine.core.common.vdscommands.VdsIdVDSCommandParametersBase;
+import org.ovirt.engine.core.vdsbroker.xmlrpc.XmlRpcStruct;
 
 public abstract class VmStatsVdsBrokerCommand<P extends 
VdsIdVDSCommandParametersBase> extends VdsBrokerCommand<P> {
     protected VMInfoListReturnForXmlRpc mVmListReturn;
@@ -24,4 +26,12 @@
     protected Object getReturnValueFromBroker() {
         return mVmListReturn;
     }
+
+    protected VmInternalData getVmExternalDataFromInfoList(XmlRpcStruct 
xmlRpcStruct) {
+        VmDynamic vmDynamic = new ExtendedVmDynamic(getVds());
+        VdsBrokerObjectsBuilder.updateVMDynamicData(vmDynamic, xmlRpcStruct);
+        return new VmInternalData(vmDynamic,
+                VdsBrokerObjectsBuilder.buildVMStatisticsData(xmlRpcStruct),
+                
VdsBrokerObjectsBuilder.buildVmGuestAgentInterfacesData(xmlRpcStruct));
+    }
 }


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

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

Reply via email to