public inbox for linux-nfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Frank Sorenson <sorenson@redhat.com>
To: linux-nfs@vger.kernel.org
Cc: steved@redhat.com, chuck.lever@oracle.com
Subject: [nfs-utils PATCH 7/8] mountstats/nfsiostat: Move the checks for empty mountpoint list into the print function
Date: Thu, 30 Jan 2025 08:20:06 -0600	[thread overview]
Message-ID: <20250130142008.3600334-8-sorenson@redhat.com> (raw)
In-Reply-To: <20250130142008.3600334-1-sorenson@redhat.com>

The test for empty device list and 'No NFS mount points found' message
terminate the program immediately if no nfs mounts are present during
a particular iteration.  However, if multiple iterations are specified,
it makes more sense to simply output the message and sleep for the
next iteration, since there may be nfs mounts next time through.

If we move the test and message into the print function, we still
get the message when appropriate, don't terminate on an empty list,
and also eliminate two extra copies of the same test and message.

Signed-off-by: Frank Sorenson <sorenson@redhat.com>
---
 tools/mountstats/mountstats.py | 13 ++++---------
 tools/nfs-iostat/nfs-iostat.py | 14 ++++----------
 2 files changed, 8 insertions(+), 19 deletions(-)

diff --git a/tools/mountstats/mountstats.py b/tools/mountstats/mountstats.py
index e640642a..fbd57f51 100755
--- a/tools/mountstats/mountstats.py
+++ b/tools/mountstats/mountstats.py
@@ -958,6 +958,10 @@ def nfsstat_command(args):
     return 0
 
 def print_iostat_summary(old, new, devices, time):
+    if len(devices) == 0:
+        print('No NFS mount points were found')
+        return
+
     for device in devices:
         stats = DeviceData()
         stats.parse_stats(new[device])
@@ -1005,9 +1009,6 @@ def iostat_command(args):
 
     # make certain devices contains only NFS mount points
     devices = list_nfs_mounts(origdevices, mountstats)
-    if len(devices) == 0:
-        print('No NFS mount points were found')
-        return 1
 
     sample_time = 0
 
@@ -1026,9 +1027,6 @@ def iostat_command(args):
             # nfs mountpoints may appear or disappear, so we need to
             # recheck the devices list each time we parse mountstats
             devices = list_nfs_mounts(origdevices, mountstats)
-            if len(devices) == 0:
-                print('No NFS mount points were found')
-                return
             count -= 1
     else: 
         while True:
@@ -1040,9 +1038,6 @@ def iostat_command(args):
             # nfs mountpoints may appear or disappear, so we need to
             # recheck the devices list each time we parse mountstats
             devices = list_nfs_mounts(origdevices, mountstats)
-            if len(devices) == 0:
-                print('No NFS mount points were found')
-                return
 
     args.infile.close()
     if args.since:
diff --git a/tools/nfs-iostat/nfs-iostat.py b/tools/nfs-iostat/nfs-iostat.py
index 1502b431..f69ffb0e 100755
--- a/tools/nfs-iostat/nfs-iostat.py
+++ b/tools/nfs-iostat/nfs-iostat.py
@@ -478,6 +478,10 @@ def parse_stats_file(filename):
 def print_iostat_summary(old, new, devices, time, options):
     display_stats = {}
 
+    if len(devices) == 0:
+        print('No NFS mount points were found')
+        return
+
     for device in devices:
         stats = DeviceData()
         stats.parse_stats(new[device])
@@ -612,10 +616,6 @@ client are listed.
 
     # make certain devices contains only NFS mount points
     devices = list_nfs_mounts(origdevices, mountstats)
-    if len(devices) == 0:
-        print('No NFS mount points were found')
-        return
-
 
     old_mountstats = None
     sample_time = 0.0
@@ -634,9 +634,6 @@ client are listed.
             # nfs mountpoints may appear or disappear, so we need to
             # recheck the devices list each time we parse mountstats
             devices = list_nfs_mounts(origdevices,mountstats)
-            if len(devices) == 0:
-                print('No NFS mount points were found')
-                return
             count -= 1
     else: 
         while True:
@@ -648,9 +645,6 @@ client are listed.
             # nfs mountpoints may appear or disappear, so we need to
             # recheck the devices list each time we parse mountstats
             devices = list_nfs_mounts(origdevices,mountstats)
-            if len(devices) == 0:
-                print('No NFS mount points were found')
-                return
 
 #
 # Main
-- 
2.48.1


  parent reply	other threads:[~2025-01-30 14:20 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-01-30 14:19 [nfs-utils PATCH 0/8] mountstats/nfsiostat: bugfixes for iostat Frank Sorenson
2025-01-30 14:20 ` [nfs-utils PATCH 1/8] mountstats/nfsiostat: add a function to return the fstype Frank Sorenson
2025-01-30 14:20 ` [nfs-utils PATCH 2/8] mountstats: when printing iostats, verify that old and new types are the same Frank Sorenson
2025-01-30 14:20 ` [nfs-utils PATCH 3/8] nfsiostat: mirror how mountstats iostat prints the stats Frank Sorenson
2025-01-30 14:20 ` [nfs-utils PATCH 4/8] nfsiostat: fix crash when filtering mountstats after unmount Frank Sorenson
2025-01-30 14:20 ` [nfs-utils PATCH 5/8] nfsiostat: make comment explain mount/unmount more broadly Frank Sorenson
2025-01-30 14:20 ` [nfs-utils PATCH 6/8] mountstats: filter for nfs mounts in a function, each iostat iteration Frank Sorenson
2025-01-30 14:20 ` Frank Sorenson [this message]
2025-01-30 14:20 ` [nfs-utils PATCH 8/8] mountstats/nfsiostat: merge and rework the infinite and counted loops Frank Sorenson
2025-01-30 14:28 ` [nfs-utils PATCH 0/8] mountstats/nfsiostat: bugfixes for iostat Chuck Lever
2025-02-05 22:53 ` Steve Dickson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250130142008.3600334-8-sorenson@redhat.com \
    --to=sorenson@redhat.com \
    --cc=chuck.lever@oracle.com \
    --cc=linux-nfs@vger.kernel.org \
    --cc=steved@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox