Change in vdsm[master]: sampling.ImagePathStatus: drop unused code, and only it

danken at redhat.com danken at redhat.com
Thu Nov 7 12:44:59 UTC 2013


Dan Kenigsberg has uploaded a new change for review.

Change subject: sampling.ImagePathStatus: drop unused code, and only it
......................................................................

sampling.ImagePathStatus: drop unused code, and only it

The ImagePathStatus is never started, but one of its methods is used by
HostStatsThread.get(). This patch moves the still-used bits of
ImagePathStatus code into HostStatsThread.

Change-Id: I530b6d83c6ab5d0cc52df797ae3e40998fb77435
Signed-off-by: Dan Kenigsberg <danken at redhat.com>
---
M lib/vdsm/config.py.in
M vdsm/sampling.py
2 files changed, 20 insertions(+), 50 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/38/21038/1

diff --git a/lib/vdsm/config.py.in b/lib/vdsm/config.py.in
index c0bdd53..c8ce7e6 100644
--- a/lib/vdsm/config.py.in
+++ b/lib/vdsm/config.py.in
@@ -194,9 +194,6 @@
 
         ('irsd', '%(images)s/irsd', None),
 
-        ('images_check_times', '0',
-            'Image repository check period (seconds).'),
-
         ('volume_utilization_percent', '50', None),
 
         ('volume_utilization_chunk_mb', '1024', None),
diff --git a/vdsm/sampling.py b/vdsm/sampling.py
index 09e3dd4..04593de 100644
--- a/vdsm/sampling.py
+++ b/vdsm/sampling.py
@@ -36,7 +36,6 @@
 from vdsm import utils
 from vdsm import netinfo
 from vdsm.constants import P_VDSM_RUN
-from vdsm.config import config
 
 _THP_STATE_PATH = '/sys/kernel/mm/transparent_hugepage/enabled'
 if not os.path.exists(_THP_STATE_PATH):
@@ -377,12 +376,11 @@
         self._lineRate = (sum(self._ifrates) or 1000) * (10 ** 6) / 8
         self._lastSampleTime = time.time()
 
-        self._imagesStatus = ImagePathStatus(cif)
+        self._cif = cif
         self._pid = os.getpid()
         self._ncpus = max(os.sysconf('SC_NPROCESSORS_ONLN'), 1)
 
     def stop(self):
-        self._imagesStatus.stop()
         self._stopEvent.set()
 
     def _updateIfidsIfrates(self):
@@ -418,19 +416,9 @@
     def get(self):
         stats = self._getInterfacesStats()
         stats['cpuSysVdsmd'] = stats['cpuUserVdsmd'] = 0.0
-        stats['storageDomains'] = {}
-        if self._imagesStatus._cif.irs:
-            self._imagesStatus._refreshStorageDomains()
+        stats['storageDomains'] = self._getStorageDomainsStats()
+
         now = time.time()
-        for sd, d in self._imagesStatus.storageDomains.iteritems():
-            stats['storageDomains'][sd] = {
-                'code': d['code'],
-                'delay': d['delay'],
-                'lastCheck': d['lastCheck'],
-                'valid': d['valid'],
-                'version': d['version'],
-                'acquired': d['acquired'],
-            }
         stats['elapsedTime'] = int(now - self.startTime)
         if len(self._samples) < 2:
             return stats
@@ -519,41 +507,26 @@
             stats['txRate'] = min(stats['txRate'], 100.0)
             stats['rxRate'] = min(stats['rxRate'], 100.0)
             logging.debug(stats)
-#        stats['rxBps'] = float(rx) / interval
-#        stats['txBps'] = float(tx) / interval
         stats['rxDropped'] = rxDropped
         stats['txDropped'] = txDropped
 
         return stats
 
+    def _getStorageDomainsStats(self):
+        sds = {}
+        if self._cif.irs:
+            res = self._cif.irs.repoStats()
+            del res["status"]
+            if "args" in res:
+                del res["args"]
 
-class ImagePathStatus(threading.Thread):
-    def __init__(self, cif, interval=None):
-        if interval is None:
-            interval = config.getint('irs', 'images_check_times')
-        self._interval = interval
-        self._cif = cif
-        self.storageDomains = {}
-        self._stopEvent = threading.Event()
-        threading.Thread.__init__(self, name='ImagePathStatus')
-        if self._interval > 0:
-            self.start()
-
-    def stop(self):
-        self._stopEvent.set()
-
-    def _refreshStorageDomains(self):
-        self.storageDomains = self._cif.irs.repoStats()
-        del self.storageDomains["status"]
-        if "args" in self.storageDomains:
-            del self.storageDomains["args"]
-
-    def run(self):
-        try:
-            while not self._stopEvent.isSet():
-                if self._cif.irs:
-                    self._refreshStorageDomains()
-                self._stopEvent.wait(self._interval)
-        except:
-            logging.error("Error while refreshing storage domains",
-                          exc_info=True)
+            for sd, d in res.iteritems():
+                sds[sd] = {
+                    'code': d['code'],
+                    'delay': d['delay'],
+                    'lastCheck': d['lastCheck'],
+                    'valid': d['valid'],
+                    'version': d['version'],
+                    'acquired': d['acquired'],
+                }
+        return sds


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I530b6d83c6ab5d0cc52df797ae3e40998fb77435
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Dan Kenigsberg <danken at redhat.com>


More information about the vdsm-patches mailing list