* [PATCH] mountstats: Adding Day:Hour:Min:Sec format along with age to "mountstats --raw" for ease of understanding.
@ 2020-06-02 9:29 Rohan Sable
2020-06-03 14:57 ` Scott Mayhew
0 siblings, 1 reply; 2+ messages in thread
From: Rohan Sable @ 2020-06-02 9:29 UTC (permalink / raw)
To: linux-nfs; +Cc: rsable, steved
The output will look something like this :
From :
age: 2215
To :
age: 2267; 0 Day(s) 0 Hour(s) 37 Min(s) 47 Sec(s)
Signed-off-by: Rohan Sable <rsable@redhat.com>
---
tools/mountstats/mountstats.py | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/tools/mountstats/mountstats.py b/tools/mountstats/mountstats.py
index 6ac83ccb..d9b5af1b 100755
--- a/tools/mountstats/mountstats.py
+++ b/tools/mountstats/mountstats.py
@@ -228,6 +228,15 @@ Nfsv4ops = [
'CLONE'
]
+def sec_conv(rem):
+ day = int(rem / (24 * 3600))
+ rem %= (24 * 3600)
+ hrs = int(rem / 3600)
+ rem %= 3600
+ min = int(rem / 60)
+ sec = rem % 60
+ print(day, "Day(s)", hrs, "Hour(s)", min, "Min(s)", sec, "Sec(s)")
+
class DeviceData:
"""DeviceData objects provide methods for parsing and displaying
data for a single mount grabbed from /proc/self/mountstats
@@ -349,7 +358,8 @@ class DeviceData:
(self.__nfs_data['export'], self.__nfs_data['mountpoint'], \
self.__nfs_data['fstype'], self.__nfs_data['statvers']))
print('\topts:\t%s' % ','.join(self.__nfs_data['mountoptions']))
- print('\tage:\t%d' % self.__nfs_data['age'])
+ print('\tage:\t%d' % self.__nfs_data['age'], end="; ")
+ sec_conv(self.__nfs_data['age'])
print('\tcaps:\t%s' % ','.join(self.__nfs_data['servercapabilities']))
print('\tsec:\tflavor=%d,pseudoflavor=%d' % (self.__nfs_data['flavor'], \
self.__nfs_data['pseudoflavor']))
--
2.25.4
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] mountstats: Adding Day:Hour:Min:Sec format along with age to "mountstats --raw" for ease of understanding.
2020-06-02 9:29 [PATCH] mountstats: Adding Day:Hour:Min:Sec format along with age to "mountstats --raw" for ease of understanding Rohan Sable
@ 2020-06-03 14:57 ` Scott Mayhew
0 siblings, 0 replies; 2+ messages in thread
From: Scott Mayhew @ 2020-06-03 14:57 UTC (permalink / raw)
To: Rohan Sable; +Cc: linux-nfs, steved
Hi Rohan,
On Tue, 02 Jun 2020, Rohan Sable wrote:
> The output will look something like this :
>
> From :
> age: 2215
>
> To :
> age: 2267; 0 Day(s) 0 Hour(s) 37 Min(s) 47 Sec(s)
>
> Signed-off-by: Rohan Sable <rsable@redhat.com>
> ---
> tools/mountstats/mountstats.py | 12 +++++++++++-
> 1 file changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/tools/mountstats/mountstats.py b/tools/mountstats/mountstats.py
> index 6ac83ccb..d9b5af1b 100755
> --- a/tools/mountstats/mountstats.py
> +++ b/tools/mountstats/mountstats.py
> @@ -228,6 +228,15 @@ Nfsv4ops = [
> 'CLONE'
> ]
>
> +def sec_conv(rem):
> + day = int(rem / (24 * 3600))
> + rem %= (24 * 3600)
> + hrs = int(rem / 3600)
> + rem %= 3600
> + min = int(rem / 60)
> + sec = rem % 60
> + print(day, "Day(s)", hrs, "Hour(s)", min, "Min(s)", sec, "Sec(s)")
> +
> class DeviceData:
> """DeviceData objects provide methods for parsing and displaying
> data for a single mount grabbed from /proc/self/mountstats
> @@ -349,7 +358,8 @@ class DeviceData:
> (self.__nfs_data['export'], self.__nfs_data['mountpoint'], \
> self.__nfs_data['fstype'], self.__nfs_data['statvers']))
> print('\topts:\t%s' % ','.join(self.__nfs_data['mountoptions']))
> - print('\tage:\t%d' % self.__nfs_data['age'])
> + print('\tage:\t%d' % self.__nfs_data['age'], end="; ")
> + sec_conv(self.__nfs_data['age'])
If you write this raw output to a file, you can no longer use the
resulting file with 'mountstats --file' or 'mountstats --since':
[smayhew@aion nfs-utils]$ tools/mountstats/mountstats.py --file b1 --since a1
Traceback (most recent call last):
File "tools/mountstats/mountstats.py", line 1130, in <module>
res = main()
File "tools/mountstats/mountstats.py", line 1119, in main
return args.func(args)
File "tools/mountstats/mountstats.py", line 846, in mountstats_command
stats.parse_stats(descr)
File "tools/mountstats/mountstats.py", line 333, in parse_stats
self.__parse_nfs_line(words)
File "tools/mountstats/mountstats.py", line 263, in __parse_nfs_line
self.__nfs_data['age'] = int(words[1])
ValueError: invalid literal for int() with base 10: '366;'
That was the original intended purpose for the raw option.
I think it would be better leave display_raw_stats() alone and either
add the age (including the call to sec_conv()) to display_stats_header()
(in which case it would always appear except for when the --raw option
is used), or add it to display_nfs_options() (in which case it would
only be shown when mountstats is invoked with no options or with the
--nfs option).
-Scott
> print('\tcaps:\t%s' % ','.join(self.__nfs_data['servercapabilities']))
> print('\tsec:\tflavor=%d,pseudoflavor=%d' % (self.__nfs_data['flavor'], \
> self.__nfs_data['pseudoflavor']))
> --
> 2.25.4
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-06-03 14:58 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-02 9:29 [PATCH] mountstats: Adding Day:Hour:Min:Sec format along with age to "mountstats --raw" for ease of understanding Rohan Sable
2020-06-03 14:57 ` Scott Mayhew
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.