Fixes: #11319
Signed-off-by: Mykola Golub <mgolub@mirantis.com>
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:
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.
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