Francesco Romani has uploaded a new change for review.

Change subject: vm: rename Vm._guestEvent
......................................................................

vm: rename Vm._guestEvent

The _guestEvent field of Vm class is misleading.
It does not track a "guest event", but rather sets a transient
VM status which overrides the real VM status for a fixed amount of time.

After the amount of time expires, the transient VM status is ignored,
and the proper VM status is used.

Research why this logic was introduced is still in progress;
the most likely cause is to provide the correct information to Engine
while lenghty operation (VM startup or powerdown) is in progress;
should this lengthy operation fail, the transient nature provides
automatic readjustement avoiding the need of proper recovering.

However, the price to pay is increased complexity and more VM fields
to track.

This patch just renames the field to make their real purpose clearer.

Change-Id: I9fd081830146840890cf22749b41eab4b06f31db
Signed-off-by: Francesco Romani <from...@redhat.com>
---
M vdsm/virt/vm.py
1 file changed, 15 insertions(+), 14 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/45/61245/1

diff --git a/vdsm/virt/vm.py b/vdsm/virt/vm.py
index 7c21eca..1135896 100644
--- a/vdsm/virt/vm.py
+++ b/vdsm/virt/vm.py
@@ -267,8 +267,8 @@
         self._volPrepareLock = threading.Lock()
         self._initTimePauseCode = None
         self._initTimeRTC = int(self.conf.get('timeOffset', 0))
-        self._guestEvent = vmstatus.POWERING_UP
-        self._guestEventTime = 0
+        self._transient_status = vmstatus.POWERING_UP
+        self._transient_status_time = 0
         self._guestCpuRunning = False
         self._guestCpuLock = threading.Lock()
         self._startTime = time.time() - \
@@ -658,8 +658,8 @@
         try:
             self.log.info('reboot event')
             self._startTime = time.time()
-            self._guestEventTime = self._startTime
-            self._guestEvent = vmstatus.REBOOT_IN_PROGRESS
+            self._transient_status_time = self._startTime
+            self._transient_status = vmstatus.REBOOT_IN_PROGRESS
             self._powerDownEvent.set()
             self.saveState()
             # this always triggers onStatusChange event, which
@@ -1070,13 +1070,13 @@
 
         delay = int(delay)
 
-        self._guestEventTime = time.time()
+        self._transient_status_time = time.time()
         if reboot:
-            self._guestEvent = vmstatus.REBOOT_IN_PROGRESS
+            self._transient_status = vmstatus.REBOOT_IN_PROGRESS
             powerDown = VmReboot(self, delay, message, timeout, force,
                                  self._powerDownEvent)
         else:
-            self._guestEvent = vmstatus.POWERING_DOWN
+            self._transient_status = vmstatus.POWERING_DOWN
             powerDown = VmShutdown(self, delay, message, timeout, force,
                                    self._powerDownEvent)
         return powerDown.start()
@@ -1312,16 +1312,17 @@
 
     def _getVmStatus(self):
         def _getVmStatusFromGuest():
-            GUEST_WAIT_TIMEOUT = 60
+            TRANSIENT_STATUS_VALIDITY = 60
             now = time.time()
-            if now - self._guestEventTime < 5 * GUEST_WAIT_TIMEOUT and \
-                    self._guestEvent == vmstatus.POWERING_DOWN:
-                return self._guestEvent
+            if (((now - self._transient_status_time) < 
+                (5 * TRANSIENT_STATUS_VALIDITY) and 
+                    self._transient_status == vmstatus.POWERING_DOWN):
+                return self._transient_status
             if self.guestAgent and self.guestAgent.isResponsive() and \
                     self.guestAgent.getStatus():
                 return self.guestAgent.getStatus()
-            if now - self._guestEventTime < GUEST_WAIT_TIMEOUT:
-                return self._guestEvent
+            if now - self._transient_status_time < TRANSIENT_STATUS_VALIDITY:
+                return self._transient_status
             return vmstatus.UP
 
         statuses = (vmstatus.SAVING_STATE, vmstatus.RESTORING_STATE,
@@ -1665,7 +1666,7 @@
                         supervdsm.getProxy().setPortMirroring(network,
                                                               nic.name)
 
-        self._guestEventTime = self._startTime
+        self._transient_status_time = self._startTime
         try:
             self.guestAgent.start()
         except Exception:


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I9fd081830146840890cf22749b41eab4b06f31db
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Francesco Romani <from...@redhat.com>
Gerrit-Reviewer: gerrit-hooks <automat...@ovirt.org>
_______________________________________________
vdsm-patches mailing list
vdsm-patches@lists.fedorahosted.org
https://lists.fedorahosted.org/admin/lists/vdsm-patches@lists.fedorahosted.org

Reply via email to