]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph daemonperf: add watch interval and count parameters
authorMykola Golub <mgolub@mirantis.com>
Fri, 3 Apr 2015 05:42:43 +0000 (08:42 +0300)
committerMykola Golub <mgolub@mirantis.com>
Mon, 6 Apr 2015 13:55:08 +0000 (16:55 +0300)
Fixes: #11319
Signed-off-by: Mykola Golub <mgolub@mirantis.com>
src/ceph.in
src/pybind/ceph_daemon.py

index f9c66d350e5b812cc534e60a37b293c6d8cf45be..d208d96d45f796d4e9c917f6cad2208d677f8e56 100755 (executable)
@@ -550,7 +550,22 @@ def main():
             return errno.EINVAL
 
     if sockpath and daemon_perf:
-        DaemonWatcher(sockpath).run()
+        interval = 1
+        count = None
+        if len(childargs) > 0:
+            try:
+                interval = float(childargs[0])
+                if interval < 0:
+                    raise ValueError
+            except ValueError:
+                print >> sys.stderr, 'daemonperf: interval should be a positive number'
+                return errno.EINVAL
+        if len(childargs) > 1:
+            if not childargs[1].isdigit():
+                print >> sys.stderr, 'daemonperf: count should be a positive integer'
+                return errno.EINVAL
+            count = int(childargs[1])
+        DaemonWatcher(sockpath).run(interval, count)
         return 0
     elif sockpath:
         try:
index 30c54e4b5a3d112dd3a05d4ce4d05dd5f5f5d73b..638ef8978e0361f1b48f4d2fe4058828339a8b13 100755 (executable)
@@ -244,7 +244,7 @@ class DaemonWatcher(object):
                 if schema_data.get('nick'):
                     self._stats[section_name][name] = schema_data['nick']
 
-    def run(self, ostr=sys.stdout):
+    def run(self, interval, count=None, ostr=sys.stdout):
         """
         Print output at regular intervals until interrupted.
 
@@ -267,8 +267,12 @@ class DaemonWatcher(object):
                     self._print_headers(ostr)
                     rows_since_header = 0
                 self._print_vals(ostr, dump, last_dump)
+                if count is not None:
+                    count -= 1
+                    if count <= 0:
+                        break
                 rows_since_header += 1
                 last_dump = dump
-                time.sleep(1)
+                time.sleep(interval)
         except KeyboardInterrupt:
             return