Change in vdsm[master]: virt: stats: move vm status detection in a method

fromani at redhat.com fromani at redhat.com
Tue Apr 8 13:29:36 UTC 2014


Francesco Romani has uploaded a new change for review.

Change subject: virt: stats: move vm status detection in a method
......................................................................

virt: stats: move vm status detection in a method

this patch moves the detection of the status of a VM
in a separate method. No functional changes.

Change-Id: Id6ae78540b0608ceaa092b142afd1f6ab4df19fe
Signed-off-by: Francesco Romani <fromani at redhat.com>
---
M vdsm/virt/vm.py
1 file changed, 30 insertions(+), 27 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/49/26549/1

diff --git a/vdsm/virt/vm.py b/vdsm/virt/vm.py
index d28d7f2..ec40c67 100644
--- a/vdsm/virt/vm.py
+++ b/vdsm/virt/vm.py
@@ -2406,19 +2406,6 @@
     def _getStatsInternal(self):
         # used by API.Vm.getStats
 
-        def _getGuestStatus():
-            GUEST_WAIT_TIMEOUT = 60
-            now = time.time()
-            if now - self._guestEventTime < 5 * GUEST_WAIT_TIMEOUT and \
-                    self._guestEvent == vmstatus.POWERING_DOWN:
-                return self._guestEvent
-            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
-            return vmstatus.UP
-
         if self.lastStatus == vmstatus.DOWN:
             stats = {}
             self._addExitedVmStats(stats)
@@ -2441,21 +2428,8 @@
             stats['boot'] = self.conf['boot']
 
         self._addDynamicVmStats(stats)
+        self._addVmStatusStats(stats)
 
-        statuses = (vmstatus.SAVING_STATE, vmstatus.RESTORING_STATE,
-                    vmstatus.MIGRATION_SOURCE, vmstatus.MIGRATION_DESTINATION,
-                    vmstatus.PAUSED)
-        if self.lastStatus in statuses:
-            stats['status'] = self.lastStatus
-        elif self.isMigrating():
-            if self._migrationSourceThread._mode == 'file':
-                stats['status'] = vmstatus.SAVING_STATE
-            else:
-                stats['status'] = vmstatus.MIGRATION_SOURCE
-        elif self.lastStatus == vmstatus.UP:
-            stats['status'] = _getGuestStatus()
-        else:
-            stats['status'] = self.lastStatus
         stats['acpiEnable'] = self.conf.get('acpiEnable', 'true')
         stats['timeOffset'] = self.conf.get('timeOffset', '0')
         stats['clientIp'] = self.conf.get('clientIp', '')
@@ -2510,6 +2484,35 @@
                     self.log.error("Error setting vm disk stats",
                                    exc_info=True)
 
+    def _addVmStatusStats(self, stats):
+        def _getGuestStatus():
+            GUEST_WAIT_TIMEOUT = 60
+            now = time.time()
+            if now - self._guestEventTime < 5 * GUEST_WAIT_TIMEOUT and \
+                    self._guestEvent == vmstatus.POWERING_DOWN:
+                return self._guestEvent
+            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
+            return vmstatus.UP
+
+        statuses = (vmstatus.SAVING_STATE, vmstatus.RESTORING_STATE,
+                    vmstatus.MIGRATION_SOURCE, vmstatus.MIGRATION_DESTINATION,
+                    vmstatus.PAUSED)
+        if self.lastStatus in statuses:
+            stats['status'] = self.lastStatus
+        elif self.isMigrating():
+            if self._migrationSourceThread._mode == 'file':
+                stats['status'] = vmstatus.SAVING_STATE
+            else:
+                stats['status'] = vmstatus.MIGRATION_SOURCE
+        elif self.lastStatus == vmstatus.UP:
+            stats['status'] = _getGuestStatus()
+        else:
+            stats['status'] = self.lastStatus
+
     def isMigrating(self):
         return self._migrationSourceThread.isAlive()
 


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Id6ae78540b0608ceaa092b142afd1f6ab4df19fe
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Francesco Romani <fromani at redhat.com>


More information about the vdsm-patches mailing list