Roy Golan has uploaded a new change for review.

Change subject: core: create a data structure for all Runtime updates logics
......................................................................

core: create a data structure for all Runtime updates logics

Have one class to gather all the information from VMs during
the repo update and share it between the VDS runtime info updater and
the VM repository updater.

Signed-off-by: Roy Golan <rgo...@redhat.com>
Change-Id: I434b1429dfa184f7a8212843ad7ee2c5a196c783
---
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java
A 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VmRepository.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VmRepositoryUpdater.java
3 files changed, 229 insertions(+), 101 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/73/12273/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 df5c552..7ae241e 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
@@ -17,7 +17,6 @@
 import org.apache.commons.lang.exception.ExceptionUtils;
 import org.ovirt.engine.core.common.AuditLogType;
 import org.ovirt.engine.core.common.businessentities.BusinessEntity;
-import org.ovirt.engine.core.common.businessentities.DiskImageDynamic;
 import org.ovirt.engine.core.common.businessentities.Entities;
 import org.ovirt.engine.core.common.businessentities.VDS;
 import org.ovirt.engine.core.common.businessentities.VDSStatus;
@@ -73,38 +72,24 @@
 
 @SuppressWarnings({ "synthetic-access", "unchecked" })
 public class VdsUpdateRunTimeInfo {
-    private VmRepositoryUpdater vmRepoUpdater;
-    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 =
-            new HashMap<Guid, List<VmNetworkInterface>>();
-    private final Map<Guid, DiskImageDynamic> _vmDiskImageDynamicToSave =
-            new HashMap<Guid, DiskImageDynamic>();
     private final Map<VmDeviceId, VmDevice> vmDeviceToSave = new 
HashMap<VmDeviceId, VmDevice>();
     private final List<VmDevice> newVmDevices = new ArrayList<VmDevice>();
+
     private final List<VmDeviceId> removedDeviceIds = new 
ArrayList<VmDeviceId>();
-    private final Map<VM, VmDynamic> _vmsClientIpChanged = new HashMap<VM, 
VmDynamic>();
     private final Map<Guid, List<VmGuestAgentInterface>> vmGuestAgentNics =
             new HashMap<Guid, List<VmGuestAgentInterface>>();
-    private final List<VmDynamic> _poweringUpVms = new ArrayList<VmDynamic>();
-    private final List<Guid> _vmsToRerun = new ArrayList<Guid>();
-    private final List<Guid> _autoVmsToRun = new ArrayList<Guid>();
-    private final List<Guid> _vmsMovedToDown = new ArrayList<Guid>();
-    private final List<Guid> _vmsToRemoveFromAsync = new ArrayList<Guid>();
-    private final List<Guid> _succededToRunVms = new ArrayList<Guid>();
     private boolean _saveVdsDynamic;
     private VDSStatus _firstStatus = VDSStatus.forValue(0);
     private boolean _saveVdsStatistics;
     private final VdsManager _vdsManager;
     private final MonitoringStrategy monitoringStrategy;
     private final VDS _vds;
-    private final Map<Guid, VM> _vmDict;
     private boolean processHardwareCapsNeeded;
     private boolean refreshedCapabilities = false;
     private static Map<Guid, Long> hostDownTimes = new HashMap<Guid, Long>();
     private int runningVmsInTransition = 0;
     private VmRepositoryUpdater repositoryUpdater;
+    private VmRepository vmRepo;
 
     private static final Log log = 
LogFactory.getLog(VdsUpdateRunTimeInfo.class);
 
@@ -138,18 +123,18 @@
             }
         }
 
-        updateAllInTransaction(_vmDynamicToSave.values(), 
getDbFacade().getVmDynamicDao());
-        updateAllInTransaction(_vmStatisticsToSave.values(), 
getDbFacade().getVmStatisticsDao());
+        updateAllInTransaction(vmRepo.getVmDynamicToSave().values(), 
getDbFacade().getVmDynamicDao());
+        updateAllInTransaction(vmRepo.getVmStatisticsToSave().values(), 
getDbFacade().getVmStatisticsDao());
 
         final List<VmNetworkStatistics> allVmInterfaceStatistics = new 
LinkedList<VmNetworkStatistics>();
-        for (List<VmNetworkInterface> list : 
_vmInterfaceStatisticsToSave.values()) {
+        for (List<VmNetworkInterface> list : 
vmRepo.getVmInterfaceStatisticsToSave().values()) {
             for (VmNetworkInterface iface : list) {
                 allVmInterfaceStatistics.add(iface.getStatistics());
             }
         }
 
         updateAllInTransaction(allVmInterfaceStatistics, 
getDbFacade().getVmNetworkStatisticsDao());
-        updateAllInTransaction(_vmDiskImageDynamicToSave.values(), 
getDbFacade().getDiskImageDynamicDao());
+        updateAllInTransaction(vmRepo.getVmDiskImageDynamicToSave().values(), 
getDbFacade().getDiskImageDynamicDao());
         saveVmDevicesToDb();
         saveVmGuestAgentNetworkDevices();
     }
@@ -355,14 +340,17 @@
         _vds = vds;
         _firstStatus = _vds.getStatus();
         monitoringStrategy = getMonitoringStrategyForVds(vds);
-        _vmDict = getDbFacade().getVmDao().getAllRunningByVds(_vds.getId());
+        Map<Guid, VM> vmDict = 
getDbFacade().getVmDao().getAllRunningByVds(_vds.getId());
 
-        for (VM vm : _vmDict.values()) {
+        for (VM vm : vmDict.values()) {
             if (vm.isRunning() && vm.getStatus() != VMStatus.Up) {
                 runningVmsInTransition++;
             }
         }
-        vmRepoUpdater = new VmRepositoryUpdater(vdsManager);
+
+        vmRepo = new VmRepository();
+        vmRepo.setVmDict(vmDict);
+        repositoryUpdater = new VmRepositoryUpdater(vdsManager, vmRepo);
     }
 
     protected MonitoringStrategy getMonitoringStrategyForVds(VDS vds) {
@@ -444,30 +432,30 @@
                 }
             }
             // rerun all vms from rerun list
-            for (Guid vm_guid : _vmsToRerun) {
+            for (Guid vm_guid : vmRepo.getVmsToRerun()) {
                 log.errorFormat("Rerun vm {0}. Called from vds {1}", vm_guid, 
_vds.getName());
                 ResourceManager.getInstance().RerunFailedCommand(vm_guid, 
_vds.getId());
 
             }
-            for (Guid vm_guid : _succededToRunVms) {
+            for (Guid vm_guid : vmRepo.getSuccededToRunVms()) {
                 _vdsManager.SuccededToRunVm(vm_guid);
             }
             // run all vms that crushed that marked with auto startup
-            for (Guid vm_guid : _autoVmsToRun) {
+            for (Guid vm_guid : vmRepo.getAutoVmsToRun()) {
                 // Refrain from auto-start HA VM during its re-run attempts.
-                if (!_vmsToRerun.contains(vm_guid)) {
+                if (!vmRepo.getVmsToRerun().contains(vm_guid)) {
                     
ResourceManager.getInstance().getEventListener().runFailedAutoStartVM(vm_guid);
                 }
             }
 
             // process all vms that their ip changed.
-            for (Entry<VM, VmDynamic> pair : _vmsClientIpChanged.entrySet()) {
+            for (Entry<VM, VmDynamic> pair : 
vmRepo.getVmsClientIpChanged().entrySet()) {
                 ResourceManager.getInstance().getEventListener()
                         .processOnClientIpChange(_vds, 
pair.getValue().getId());
             }
 
             // process all vms that powering up.
-            for (VmDynamic runningVm : _poweringUpVms) {
+            for (VmDynamic runningVm : vmRepo.getPoweringUpVms()) {
                 ResourceManager
                         .getInstance()
                         .getEventListener()
@@ -476,10 +464,10 @@
             }
 
             // process all vms that went down
-            for (Guid vm_guid : _vmsMovedToDown) {
+            for (Guid vm_guid : vmRepo.getVmsMovedToDown()) {
                 
ResourceManager.getInstance().getEventListener().processOnVmStop(vm_guid);
             }
-            for (Guid vm_guid : _vmsToRemoveFromAsync) {
+            for (Guid vm_guid : vmRepo.getVmsToRemoveFromAsync()) {
                 ResourceManager.getInstance().RemoveAsyncRunningVm(vm_guid);
             }
         } catch (IRSErrorException ex) {
@@ -916,7 +904,7 @@
             command = new 
GetAllVmStatsVDSCommand<VdsIdAndVdsVDSCommandParametersBase>(
                     new VdsIdAndVdsVDSCommandParametersBase(_vds));
         }
-        _runningVms = (Map<Guid, VmInternalData>) 
command.executeWithReturnValue();
+        vmRepo.setRunningVms((Map<Guid, VmInternalData>) 
command.executeWithReturnValue());
 
         if (command.getVDSReturnValue().getSucceeded()) {
             List<VM> running = checkVmsStatusChanged();
@@ -963,10 +951,10 @@
      * from VDSM to the latest hash kept on engine side.
      */
     private void prepareGuestAgentNetworkDevicesForUpdate() {
-        for (VmInternalData vmInternalData : _runningVms.values()) {
+        for (VmInternalData vmInternalData : vmRepo.getRunningVms().values()) {
             VmDynamic vmDynamic = vmInternalData.getVmDynamic();
             if (vmDynamic != null) {
-                VM vm = _vmDict.get(vmDynamic.getId());
+                VM vm = vmRepo.getVmDict().get(vmDynamic.getId());
                 if (vm != null) {
                     List<VmGuestAgentInterface> vmGuestAgentInterfaces = 
vmInternalData.getVmGuestAgentInterfaces();
                     int guestAgentNicHash = vmGuestAgentInterfaces == null ? 0 
: vmGuestAgentInterfaces.hashCode();
@@ -974,8 +962,8 @@
                         vmGuestAgentNics.put(vmDynamic.getId(), 
vmGuestAgentInterfaces);
 
                         // update new hash value
-                        if (_vmDynamicToSave.containsKey(vm.getId())) {
-                            
updateGuestAgentInterfacesChanges(_vmDynamicToSave.get(vm.getId()),
+                        if 
(vmRepo.getVmDynamicToSave().containsKey(vm.getId())) {
+                            
updateGuestAgentInterfacesChanges(vmRepo.getVmDynamicToSave().get(vm.getId()),
                                     vmGuestAgentInterfaces,
                                     guestAgentNicHash);
                         } else {
@@ -1015,18 +1003,18 @@
     private void handleVmDeviceChange() {
         // Go over all the vms and detemine which ones require updating
         List<String> vmsToUpdateFromVds = new ArrayList<String>();
-        for (VmInternalData vmInternalData : _runningVms.values()) {
+        for (VmInternalData vmInternalData : vmRepo.getRunningVms().values()) {
             VmDynamic vmDynamic = vmInternalData.getVmDynamic();
             if (vmDynamic != null) {
-                VM vm = _vmDict.get(vmDynamic.getId());
+                VM vm = vmRepo.getVmDict().get(vmDynamic.getId());
                 if (vm != null) {
                     String dbHash = vm.getHash();
                     if ((dbHash == null && vmDynamic.getHash() != null) || 
(dbHash != null)
                             && !dbHash.equals(vmDynamic.getHash())) {
                         vmsToUpdateFromVds.add(vmDynamic.getId().toString());
                         // update new hash value
-                        if (_vmDynamicToSave.containsKey(vm.getId())) {
-                            
_vmDynamicToSave.get(vm.getId()).setHash(vmDynamic.getHash());
+                        if 
(vmRepo.getVmDynamicToSave().containsKey(vm.getId())) {
+                            
vmRepo.getVmDynamicToSave().get(vm.getId()).setHash(vmDynamic.getHash());
                         } else {
                             addVmDynamicToList(vmDynamic);
                         }
@@ -1210,11 +1198,11 @@
         List<VM> running = new ArrayList<VM>();
         if (!_vdsManager.getRefreshStatistics()) {
             List<VmDynamic> tempRunningList = new ArrayList<VmDynamic>();
-            for (VmInternalData runningVm : _runningVms.values()) {
+            for (VmInternalData runningVm : vmRepo.getRunningVms().values()) {
                 tempRunningList.add(runningVm.getVmDynamic());
             }
             for (VmDynamic runningVm : tempRunningList) {
-                VM vmToUpdate = _vmDict.get(runningVm.getId());
+                VM vmToUpdate = vmRepo.getVmDict().get(runningVm.getId());
 
                 if (vmToUpdate == null
                         || (vmToUpdate.getStatus() != runningVm.getstatus() && 
!(vmToUpdate.getStatus() == VMStatus.SavingState && runningVm
@@ -1224,15 +1212,15 @@
                                     _vds, runningVm.getId()));
                     command.execute();
                     if (command.getVDSReturnValue().getSucceeded()) {
-                        _runningVms.put(runningVm.getId(),
+                        vmRepo.getRunningVms().put(runningVm.getId(),
                                 (VmInternalData) command.getReturnValue());
                     } else {
-                        _runningVms.remove(runningVm.getId());
+                        vmRepo.getRunningVms().remove(runningVm.getId());
                     }
                 } else {
                     // status not changed move to next vm
                     running.add(vmToUpdate);
-                    _runningVms.remove(vmToUpdate.getId());
+                    vmRepo.getRunningVms().remove(vmToUpdate.getId());
                 }
             }
         }
@@ -1242,7 +1230,7 @@
     private void refreshCommitedMemory() {
         Integer memCommited = _vds.getGuestOverhead() != null ? 0 : null;
         int vmsCoresCount = 0;
-        for (VM vm : _vmDict.values()) {
+        for (VM vm : vmRepo.getVmDict().values()) {
             if (_vds.getGuestOverhead() != null) {
                 memCommited += vm.getVmMemSizeMb();
                 memCommited += _vds.getGuestOverhead();
@@ -1289,7 +1277,7 @@
      * @param vmDynamic
      */
     private void addVmDynamicToList(VmDynamic vmDynamic) {
-        _vmDynamicToSave.put(vmDynamic.getId(), vmDynamic);
+        vmRepo.getVmDynamicToSave().put(vmDynamic.getId(), vmDynamic);
     }
 
     /**
@@ -1298,14 +1286,14 @@
      * @param vmStatistics
      */
     private void addVmStatisticsToList(VmStatistics vmStatistics) {
-        _vmStatisticsToSave.put(vmStatistics.getId(), vmStatistics);
+        vmRepo.getVmStatisticsToSave().put(vmStatistics.getId(), vmStatistics);
     }
 
     private void addVmInterfaceStatisticsToList(List<VmNetworkInterface> list) 
{
         if (list.size() <= 0) {
             return;
         }
-        _vmInterfaceStatisticsToSave.put(list.get(0).getVmId().getValue(), 
list);
+        
vmRepo.getVmInterfaceStatisticsToSave().put(list.get(0).getVmId().getValue(), 
list);
     }
 
     /**
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VmRepository.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VmRepository.java
new file mode 100644
index 0000000..5616455
--- /dev/null
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VmRepository.java
@@ -0,0 +1,155 @@
+package org.ovirt.engine.core.vdsbroker;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.ovirt.engine.core.common.businessentities.DiskImageDynamic;
+import org.ovirt.engine.core.common.businessentities.VM;
+import org.ovirt.engine.core.common.businessentities.VmDynamic;
+import org.ovirt.engine.core.common.businessentities.VmStatistics;
+import 
org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface;
+import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.vdsbroker.vdsbroker.entities.VmInternalData;
+
+public class VmRepository {
+    private Map<Guid, VM> vmDict;
+    private Map<Guid, VmInternalData> runningVms;
+
+    private List<Guid> vmsToRerun;
+    private List<Guid> autoVmsToRun;
+    private List<Guid> vmsMovedToDown;
+    private List<Guid> succededToRunVms;
+    private List<Guid> vmsToRemoveFromAsync;
+
+    private Map<VM, VmDynamic> vmsClientIpChanged;
+
+    private Map<Guid, VmDynamic> vmDynamicToSave;
+    private Map<Guid, VmStatistics> vmStatisticsToSave;
+    private Map<Guid, DiskImageDynamic> vmDiskImageDynamicToSave;
+    private Map<Guid, List<VmNetworkInterface>> vmInterfaceStatisticsToSave;
+
+    private List<VmDynamic> poweringUpVms;
+
+    public VmRepository() {
+        vmsToRerun = new ArrayList<Guid>();
+        autoVmsToRun = new ArrayList<Guid>();
+        vmsMovedToDown = new ArrayList<Guid>();
+        succededToRunVms = new ArrayList<Guid>();
+        vmsToRemoveFromAsync = new ArrayList<Guid>();
+
+        vmsClientIpChanged = new HashMap<VM, VmDynamic>();
+
+        vmDynamicToSave = new HashMap<Guid, VmDynamic>();
+        vmStatisticsToSave = new HashMap<Guid, VmStatistics>();
+        vmDiskImageDynamicToSave = new HashMap<Guid, DiskImageDynamic>();
+        vmInterfaceStatisticsToSave = new HashMap<Guid, 
List<VmNetworkInterface>>();
+
+        poweringUpVms = new ArrayList<VmDynamic>();
+    }
+
+    public Map<Guid, VM> getVmDict() {
+        return vmDict;
+    }
+
+    public void setVmDict(Map<Guid, VM> vmDict) {
+        this.vmDict = vmDict;
+    }
+
+    public Map<Guid, VmInternalData> getRunningVms() {
+        return runningVms;
+    }
+
+    public void setRunningVms(Map<Guid, VmInternalData> runningVms) {
+        this.runningVms = runningVms;
+    }
+
+    public List<Guid> getAutoVmsToRun() {
+        return autoVmsToRun;
+    }
+
+    public void setAutoVmsToRun(List<Guid> autoVmsToRun) {
+        this.autoVmsToRun = autoVmsToRun;
+    }
+
+    public List<VmDynamic> getPoweringUpVms() {
+        return poweringUpVms;
+    }
+
+    public void setPoweringUpVms(List<VmDynamic> poweringUpVms) {
+        this.poweringUpVms = poweringUpVms;
+    }
+
+    public Map<VM, VmDynamic> getVmsClientIpChanged() {
+        return vmsClientIpChanged;
+    }
+
+    public void setVmsClientIpChanged(Map<VM, VmDynamic> vmsClientIpChanged) {
+        this.vmsClientIpChanged = vmsClientIpChanged;
+    }
+
+    public List<Guid> getSuccededToRunVms() {
+        return succededToRunVms;
+    }
+
+    public void setSuccededToRunVms(List<Guid> succededToRunVms) {
+        this.succededToRunVms = succededToRunVms;
+    }
+
+    public List<Guid> getVmsToRerun() {
+        return vmsToRerun;
+    }
+
+    public void setVmsToRerun(List<Guid> vmsToRerun) {
+        this.vmsToRerun = vmsToRerun;
+    }
+
+    public List<Guid> getVmsToRemoveFromAsync() {
+        return vmsToRemoveFromAsync;
+    }
+
+    public void setVmsToRemoveFromAsync(List<Guid> vmsToRemoveFromAsync) {
+        this.vmsToRemoveFromAsync = vmsToRemoveFromAsync;
+    }
+
+    public Map<Guid, VmDynamic> getVmDynamicToSave() {
+        return vmDynamicToSave;
+    }
+
+    public void setVmDynamicToSave(Map<Guid, VmDynamic> vmDynamicToSave) {
+        this.vmDynamicToSave = vmDynamicToSave;
+    }
+
+    public Map<Guid, VmStatistics> getVmStatisticsToSave() {
+        return vmStatisticsToSave;
+    }
+
+    public void setVmStatisticsToSave(Map<Guid, VmStatistics> 
vmStatisticsToSave) {
+        this.vmStatisticsToSave = vmStatisticsToSave;
+    }
+
+    public Map<Guid, List<VmNetworkInterface>> 
getVmInterfaceStatisticsToSave() {
+        return vmInterfaceStatisticsToSave;
+    }
+
+    public void setVmInterfaceStatisticsToSave(Map<Guid, 
List<VmNetworkInterface>> vmInterfaceStatisticsToSave) {
+        this.vmInterfaceStatisticsToSave = vmInterfaceStatisticsToSave;
+    }
+
+    public Map<Guid, DiskImageDynamic> getVmDiskImageDynamicToSave() {
+        return vmDiskImageDynamicToSave;
+    }
+
+    public void setVmDiskImageDynamicToSave(Map<Guid, DiskImageDynamic> 
vmDiskImageDynamicToSave) {
+        this.vmDiskImageDynamicToSave = vmDiskImageDynamicToSave;
+    }
+
+    public List<Guid> getVmsMovedToDown() {
+        return vmsMovedToDown;
+    }
+
+    public void setVmsMovedToDown(List<Guid> vmsMovedToDown) {
+        this.vmsMovedToDown = vmsMovedToDown;
+    }
+}
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VmRepositoryUpdater.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VmRepositoryUpdater.java
index 6868ec7..866510e 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VmRepositoryUpdater.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VmRepositoryUpdater.java
@@ -1,9 +1,7 @@
 package org.ovirt.engine.core.vdsbroker;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 import org.apache.commons.lang.StringUtils;
 import org.ovirt.engine.core.common.AuditLogType;
@@ -32,42 +30,28 @@
 
 public class VmRepositoryUpdater {
 
-    private final Map<Guid, VM> vmDict = null;
-    private Map<Guid, VmInternalData> runningVms;
-    private final List<Guid> _autoVmsToRun = new ArrayList<Guid>();
-    private final List<VmDynamic> _poweringUpVms = new ArrayList<VmDynamic>();
-    private final Map<VM, VmDynamic> _vmsClientIpChanged = new HashMap<VM, 
VmDynamic>();
-    private final List<Guid> _succededToRunVms = new ArrayList<Guid>();
-    private final List<Guid> _vmsToRerun = new ArrayList<Guid>();
-    private final List<Guid> _vmsToRemoveFromAsync = new ArrayList<Guid>();
-    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 =
-            new HashMap<Guid, List<VmNetworkInterface>>();
-    private final Map<Guid, DiskImageDynamic> vmDiskImageDynamicToSave =
-            new HashMap<Guid, DiskImageDynamic>();
-    private final List<Guid> _vmsMovedToDown = new ArrayList<Guid>();
-
+    private VmRepository repo;
     private VdsManager vdsManager;
 
     private static final Log log = 
LogFactory.getLog(VmRepositoryUpdater.class);
 
-    public VmRepositoryUpdater(VdsManager vdsManager) {
+    public VmRepositoryUpdater(VdsManager vdsManager, VmRepository 
vmRepository) {
         this.vdsManager = vdsManager;
+        this.repo = vmRepository;
     }
 
     public  void updateRepository(List<VM> running) {
-        for (VmInternalData vmInternalData : runningVms.values()) {
+        for (VmInternalData vmInternalData : repo.getRunningVms().values()) {
             VmDynamic runningVm = vmInternalData.getVmDynamic();
-            VM vmToUpdate = vmDict.get(runningVm.getId());
+            VM vmToUpdate = repo.getVmDict().get(runningVm.getId());
 
             // launch powerclient on clientIp change logic
             // if not migrating here and not down
             if (!inMigrationTo(runningVm, vmToUpdate) && runningVm.getstatus() 
!= VMStatus.Down) {
                 if (vmToUpdate != null) {
-                    if (vmDict.containsKey(vmToUpdate.getId())
+                    if (repo.getVmDict().containsKey(vmToUpdate.getId())
                             && !StringUtils.equals(runningVm.getclient_ip(), 
vmToUpdate.getClientIp())) {
-                        _vmsClientIpChanged.put(vmToUpdate, runningVm);
+                        repo.getVmsClientIpChanged().put(vmToUpdate, 
runningVm);
                     }
                 }
                 if (vmToUpdate != null) {
@@ -79,7 +63,7 @@
                         // Vm moved to powering Up or up status - launch spice
                         // if no current client ip already connected.
                         if (runningVm.getdisplay() != null) {
-                            _poweringUpVms.add(runningVm);
+                            repo.getPoweringUpVms().add(runningVm);
                         } else {
                             log.error("UpdateRepository - runningVm.display is 
null, cannot start spice for it");
                         }
@@ -99,8 +83,8 @@
                         if (log.isDebugEnabled()) {
                             log.debugFormat("removing VM {0} from successful 
run VMs list", vmToUpdate.getId());
                         }
-                        if (!_succededToRunVms.contains(vmToUpdate.getId())) {
-                            _succededToRunVms.add(vmToUpdate.getId());
+                        if 
(!repo.getSuccededToRunVms().contains(vmToUpdate.getId())) {
+                            repo.getSuccededToRunVms().add(vmToUpdate.getId());
                         }
                     }
                     afterMigrationFrom(runningVm, vmToUpdate);
@@ -112,7 +96,7 @@
                     }
                     // check if vm is suspended and remove it from async list
                     else if (runningVm.getstatus() == VMStatus.Paused) {
-                        _vmsToRemoveFromAsync.add(vmToUpdate.getId());
+                        repo.getVmsToRemoveFromAsync().add(vmToUpdate.getId());
                         if (vmToUpdate.getStatus() != VMStatus.Paused) {
                             // check exit message to determine wht the vm has
                             // paused
@@ -147,8 +131,8 @@
                 }
                 if (vmToUpdate != null) {
                     updateVmStatistics(vmToUpdate);
-                    if (vmDict.containsKey(runningVm.getId())) {
-                        running.add(vmDict.get(runningVm.getId()));
+                    if (repo.getVmDict().containsKey(runningVm.getId())) {
+                        running.add(repo.getVmDict().get(runningVm.getId()));
                         if (!vdsManager.getInitialized()) {
                             
ResourceManager.getInstance().RemoveVmFromDownVms(vdsManager.getVdsId(), 
runningVm.getId());
                         }
@@ -161,7 +145,7 @@
 
                 VmDynamic vmDynamic = 
getDbFacade().getVmDynamicDao().get(runningVm.getId());
                 if (vmDynamic == null || vmDynamic.getstatus() != 
VMStatus.Unknown) {
-                    _vmDynamicToSave.remove(runningVm.getId());
+                    repo.getVmDynamicToSave().remove(runningVm.getId());
                 }
             }
         }
@@ -197,7 +181,7 @@
     // del from cache all vms that not in vdsm
     private void removeVmsFromCache(List<VM> running) {
         Guid vmGuid;
-        for (VM vmToRemove : vmDict.values()) {
+        for (VM vmToRemove : repo.getVmDict().values()) {
             if (running.contains(vmToRemove))
             {
                 continue;
@@ -221,20 +205,21 @@
                     vmToRemove.getName(), vdsManager.getName());
 
             vmGuid = vmToRemove.getId();
-            if (!isInMigration && !_vmsToRerun.contains(vmGuid)
+            if (!isInMigration && !repo.getVmsToRerun().contains(vmGuid)
                     && 
ResourceManager.getInstance().IsVmInAsyncRunningList(vmGuid)) {
-                _vmsToRerun.add(vmGuid);
+                repo.getVmsToRerun().add(vmGuid);
             }
             // vm should be auto startup
             // not already in start up list
             // not in reported from vdsm at all
             // or reported from vdsm with error code
             else if (vmToRemove.isAutoStartup()
-                    && !_autoVmsToRun.contains(vmGuid)
-                    && (!runningVms.containsKey(vmGuid) || 
(runningVms.containsKey(vmGuid) && runningVms.get(vmGuid)
+                    && !repo.getAutoVmsToRun().contains(vmGuid)
+                    && (!repo.getRunningVms().containsKey(vmGuid) || 
(repo.getRunningVms().containsKey(vmGuid) && repo.getRunningVms()
+                            .get(vmGuid)
                             .getVmDynamic()
                             .getExitStatus() != VmExitStatus.Normal))) {
-                _autoVmsToRun.add(vmGuid);
+                repo.getAutoVmsToRun().add(vmGuid);
             }
         }
     }
@@ -304,10 +289,10 @@
                         .getVmNetworkInterfaceDao()
                         .getAllForVm(vmToUpdate.argvalue.getId()));
 
-                vmDict.put(vmToUpdate.argvalue.getId(), vmToUpdate.argvalue);
+                repo.getVmDict().put(vmToUpdate.argvalue.getId(), 
vmToUpdate.argvalue);
                 if (vmNewDynamicData.getstatus() == VMStatus.Up) {
-                    if 
(!_succededToRunVms.contains(vmToUpdate.argvalue.getId())) {
-                        _succededToRunVms.add(vmToUpdate.argvalue.getId());
+                    if 
(!repo.getSuccededToRunVms().contains(vmToUpdate.argvalue.getId())) {
+                        
repo.getSuccededToRunVms().add(vmToUpdate.argvalue.getId());
                     }
                 }
             }
@@ -357,13 +342,13 @@
      * Delete all vms with status Down
      */
     public void proceedDownVms() {
-        for (VmInternalData vmInternalData : runningVms.values()) {
+        for (VmInternalData vmInternalData : repo.getRunningVms().values()) {
             VmDynamic vm = vmInternalData.getVmDynamic();
             if (vm.getstatus() != VMStatus.Down) {
                 continue;
             }
 
-            VM vmTo = vmDict.get(vm.getId());
+            VM vmTo = repo.getVmDict().get(vm.getId());
             VMStatus status = VMStatus.Unassigned;
             if (vmTo != null) {
                 status = vmTo.getStatus();
@@ -406,7 +391,7 @@
             addVmStatisticsToList(vm.getStatisticsData());
             addVmInterfaceStatisticsToList(vm.getInterfaces());
             if 
(!ResourceManager.getInstance().IsVmInAsyncRunningList(vm.getId())) {
-                _vmsMovedToDown.add(vm.getId());
+                repo.getVmsMovedToDown().add(vm.getId());
             }
         }
     }
@@ -419,7 +404,7 @@
         // is not MigratingFrom, it means the migration failed
         if (oldVmStatus == VMStatus.MigratingFrom && currentVmStatus != 
VMStatus.MigratingFrom
                 && currentVmStatus.isRunning()) {
-            _vmsToRerun.add(runningVm.getId());
+            repo.getVmsToRerun().add(runningVm.getId());
             log.infoFormat("Adding VM {0} to re-run list", runningVm.getId());
             vmToUpdate.setMigratingToVds(null);
         }
@@ -436,9 +421,9 @@
             if (cacheVm != null) {
                 if 
(ResourceManager.getInstance().IsVmInAsyncRunningList(vmDynamic.getId())) {
                     log.infoFormat("Running on vds during rerun failed vm: 
{0}", vmDynamic.getrun_on_vds());
-                    _vmsToRerun.add(vmDynamic.getId());
+                    repo.getVmsToRerun().add(vmDynamic.getId());
                 } else if (cacheVm.isAutoStartup()) {
-                    _autoVmsToRun.add(vmDynamic.getId());
+                    repo.getAutoVmsToRun().add(vmDynamic.getId());
                 }
             }
             // if failed in destination right after migration
@@ -483,13 +468,13 @@
     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()).getVmStatistics();
+            VmStatistics vmStatistics = 
repo.getRunningVms().get(vmToUpdate.getId()).getVmStatistics();
             vmToUpdate.updateRunTimeStatisticsData(vmStatistics, vmToUpdate);
             addVmStatisticsToList(vmToUpdate.getStatisticsData());
             updateInterfaceStatistics(vmToUpdate, vmStatistics);
 
-            for (DiskImageDynamic imageDynamic : 
runningVms.get(vmToUpdate.getId()).getVmDynamic().getDisks()) {
-                vmDiskImageDynamicToSave.put(imageDynamic.getId(), 
imageDynamic);
+            for (DiskImageDynamic imageDynamic : 
repo.getRunningVms().get(vmToUpdate.getId()).getVmDynamic().getDisks()) {
+                repo.getVmDiskImageDynamicToSave().put(imageDynamic.getId(), 
imageDynamic);
             }
         }
     }
@@ -587,7 +572,7 @@
      * @param vmDynamic
      */
     private void addVmDynamicToList(VmDynamic vmDynamic) {
-        _vmDynamicToSave.put(vmDynamic.getId(), vmDynamic);
+        repo.getVmDynamicToSave().put(vmDynamic.getId(), vmDynamic);
     }
 
     /**
@@ -596,14 +581,14 @@
      * @param vmStatistics
      */
     private void addVmStatisticsToList(VmStatistics vmStatistics) {
-        vmStatisticsToSave.put(vmStatistics.getId(), vmStatistics);
+        repo.getVmStatisticsToSave().put(vmStatistics.getId(), vmStatistics);
     }
 
     private void addVmInterfaceStatisticsToList(List<VmNetworkInterface> list) 
{
         if (list.size() <= 0) {
             return;
         }
-        vmInterfaceStatisticsToSave.put(list.get(0).getVmId().getValue(), 
list);
+        
repo.getVmInterfaceStatisticsToSave().put(list.get(0).getVmId().getValue(), 
list);
     }
 
 }


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

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

Reply via email to