Message ID | 1364155277-30394-1-git-send-email-vapier@gentoo.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 24/03/13 16:01, Mike Frysinger wrote: > Simple fixes here to work with python 2 & 3: > - use print() everywhere > - dict.iteritems() -> dict.items() > - file() -> open() > - sys.maxint -> sys.maxsize > > Signed-off-by: Mike Frysinger <vapier@gentoo.org> Committed... steved. > --- > tools/nfs-iostat/nfs-iostat.py | 130 +++++++++++++++++++++-------------------- > 1 file changed, 66 insertions(+), 64 deletions(-) > > diff --git a/tools/nfs-iostat/nfs-iostat.py b/tools/nfs-iostat/nfs-iostat.py > index d909632..dfbef87 100644 > --- a/tools/nfs-iostat/nfs-iostat.py > +++ b/tools/nfs-iostat/nfs-iostat.py > @@ -3,6 +3,8 @@ > """Emulate iostat for NFS mount points using /proc/self/mountstats > """ > > +from __future__ import print_function > + > __copyright__ = """ > Copyright (C) 2005, Chuck Lever <cel@netapp.com> > > @@ -201,9 +203,9 @@ class DeviceData: > result = DeviceData() > > # copy self into result > - for key, value in self.__nfs_data.iteritems(): > + for key, value in self.__nfs_data.items(): > result.__nfs_data[key] = value > - for key, value in self.__rpc_data.iteritems(): > + for key, value in self.__rpc_data.items(): > result.__rpc_data[key] = value > > # compute the difference of each item in the list > @@ -233,9 +235,9 @@ class DeviceData: > client_bytes_read = float(nfs_stats['serverreadbytes'] - nfs_stats['directreadbytes']) > ratio = ((app_bytes_read - client_bytes_read) * 100) / app_bytes_read > > - print > - print 'app bytes: %f client bytes %f' % (app_bytes_read, client_bytes_read) > - print 'Data cache hit ratio: %4.2f%%' % ratio > + print() > + print('app bytes: %f client bytes %f' % (app_bytes_read, client_bytes_read)) > + print('Data cache hit ratio: %4.2f%%' % ratio) > > def __print_attr_cache_stats(self, sample_time): > """Print attribute cache efficiency stats > @@ -255,13 +257,13 @@ class DeviceData: > data_invalidates = float(nfs_stats['datainvalidates']) > attr_invalidates = float(nfs_stats['attrinvalidates']) > > - print > - print '%d inode revalidations, hitting in cache %4.2f%% of the time' % \ > - (revalidates, ratio) > - print '%d open operations (mandatory GETATTR requests)' % opens > + print() > + print('%d inode revalidations, hitting in cache %4.2f%% of the time' % \ > + (revalidates, ratio)) > + print('%d open operations (mandatory GETATTR requests)' % opens) > if getattr_ops != 0: > - print '%4.2f%% of GETATTRs resulted in data cache invalidations' % \ > - ((data_invalidates * 100) / getattr_ops) > + print('%4.2f%% of GETATTRs resulted in data cache invalidations' % \ > + ((data_invalidates * 100) / getattr_ops)) > > def __print_dir_cache_stats(self, sample_time): > """Print directory stats > @@ -277,13 +279,13 @@ class DeviceData: > lookups = nfs_stats['vfslookup'] > getdents = nfs_stats['vfsreaddir'] > > - print > - print '%d open operations (pathname lookups)' % opens > - print '%d dentry revalidates and %d vfs lookup requests' % \ > - (dentry_revals, lookups), > - print 'resulted in %d LOOKUPs on the wire' % lookup_ops > - print '%d vfs getdents calls resulted in %d READDIRs on the wire' % \ > - (getdents, readdir_ops) > + print() > + print('%d open operations (pathname lookups)' % opens) > + print('%d dentry revalidates and %d vfs lookup requests' % \ > + (dentry_revals, lookups)) > + print('resulted in %d LOOKUPs on the wire' % lookup_ops) > + print('%d vfs getdents calls resulted in %d READDIRs on the wire' % \ > + (getdents, readdir_ops)) > > def __print_page_stats(self, sample_time): > """Print page cache stats > @@ -297,33 +299,33 @@ class DeviceData: > vfswritepages = nfs_stats['vfswritepages'] > pages_written = nfs_stats['writepages'] > > - print > - print '%d nfs_readpage() calls read %d pages' % \ > - (vfsreadpage, vfsreadpage) > - print '%d nfs_readpages() calls read %d pages' % \ > - (vfsreadpages, pages_read - vfsreadpage), > + print() > + print('%d nfs_readpage() calls read %d pages' % \ > + (vfsreadpage, vfsreadpage)) > + print('%d nfs_readpages() calls read %d pages' % \ > + (vfsreadpages, pages_read - vfsreadpage)) > if vfsreadpages != 0: > - print '(%.1f pages per call)' % \ > - (float(pages_read - vfsreadpage) / vfsreadpages) > + print('(%.1f pages per call)' % \ > + (float(pages_read - vfsreadpage) / vfsreadpages)) > else: > - print > - > - print > - print '%d nfs_updatepage() calls' % nfs_stats['vfsupdatepage'] > - print '%d nfs_writepage() calls wrote %d pages' % \ > - (vfswritepage, vfswritepage) > - print '%d nfs_writepages() calls wrote %d pages' % \ > - (vfswritepages, pages_written - vfswritepage), > + print() > + > + print() > + print('%d nfs_updatepage() calls' % nfs_stats['vfsupdatepage']) > + print('%d nfs_writepage() calls wrote %d pages' % \ > + (vfswritepage, vfswritepage)) > + print('%d nfs_writepages() calls wrote %d pages' % \ > + (vfswritepages, pages_written - vfswritepage)) > if (vfswritepages) != 0: > - print '(%.1f pages per call)' % \ > - (float(pages_written - vfswritepage) / vfswritepages) > + print('(%.1f pages per call)' % \ > + (float(pages_written - vfswritepage) / vfswritepages)) > else: > - print > + print() > > congestionwaits = nfs_stats['congestionwait'] > if congestionwaits != 0: > - print > - print '%d congestion waits' % congestionwaits > + print() > + print('%d congestion waits' % congestionwaits) > > def __print_rpc_op_stats(self, op, sample_time): > """Print generic stats for one RPC op > @@ -351,15 +353,15 @@ class DeviceData: > exe_per_op = 0.0 > > op += ':' > - print '%s' % op.lower().ljust(15), > - print ' ops/s\t\t kB/s\t\t kB/op\t\tretrans\t\tavg RTT (ms)\tavg exe (ms)' > + print('%s' % op.lower().ljust(15)) > + print(' ops/s\t\t kB/s\t\t kB/op\t\tretrans\t\tavg RTT (ms)\tavg exe (ms)') > > - print '\t\t%7.3f' % (ops / sample_time), > - print '\t%7.3f' % (kilobytes / sample_time), > - print '\t%7.3f' % kb_per_op, > - print ' %7d (%3.1f%%)' % (retrans, retrans_percent), > - print '\t%7.3f' % rtt_per_op, > - print '\t%7.3f' % exe_per_op > + print('\t\t%7.3f' % (ops / sample_time)) > + print('\t%7.3f' % (kilobytes / sample_time)) > + print('\t%7.3f' % kb_per_op) > + print(' %7d (%3.1f%%)' % (retrans, retrans_percent)) > + print('\t%7.3f' % rtt_per_op) > + print('\t%7.3f' % exe_per_op) > > def ops(self, sample_time): > sends = float(self.__rpc_data['rpcsends']) > @@ -384,14 +386,14 @@ class DeviceData: > else: > backlog = 0.0 > > - print > - print '%s mounted on %s:' % \ > - (self.__nfs_data['export'], self.__nfs_data['mountpoint']) > - print > + print() > + print('%s mounted on %s:' % \ > + (self.__nfs_data['export'], self.__nfs_data['mountpoint'])) > + print() > > - print ' op/s\t\trpc bklog' > - print '%7.2f' % (sends / sample_time), > - print '\t%7.2f' % backlog > + print(' op/s\t\trpc bklog') > + print('%7.2f' % (sends / sample_time)) > + print('\t%7.2f' % backlog) > > if which == 0: > self.__print_rpc_op_stats('READ', sample_time) > @@ -424,7 +426,7 @@ def parse_stats_file(filename): > ms_dict = dict() > key = '' > > - f = file(filename) > + f = open(filename) > for line in f.readlines(): > words = line.split() > if len(words) == 0: > @@ -494,7 +496,7 @@ def list_nfs_mounts(givenlist, mountstats): > if stats.is_nfs_mountpoint(): > list += [device] > else: > - for device, descr in mountstats.iteritems(): > + for device, descr in mountstats.items(): > stats = DeviceData() > stats.parse_stats(descr) > if stats.is_nfs_mountpoint(): > @@ -527,7 +529,7 @@ client are listed. > usage="usage: %prog [ <interval> [ <count> ] ] [ <options> ] [ <mount point> ]", > description=mydescription, > version='version %s' % Iostats_version) > - parser.set_defaults(which=0, sort=False, list=sys.maxint) > + parser.set_defaults(which=0, sort=False, list=sys.maxsize) > > statgroup = OptionGroup(parser, "Statistics Options", > 'File I/O is displayed unless one of the following is specified:') > @@ -572,29 +574,29 @@ client are listed. > try: > interval = int(arg) > except: > - print 'Illegal <interval> value %s' % arg > + print('Illegal <interval> value %s' % arg) > return > if interval > 0: > interval_seen = True > else: > - print 'Illegal <interval> value %s' % arg > + print('Illegal <interval> value %s' % arg) > return > elif not count_seen: > try: > count = int(arg) > except: > - print 'Ilegal <count> value %s' % arg > + print('Ilegal <count> value %s' % arg) > return > if count > 0: > count_seen = True > else: > - print 'Illegal <count> value %s' % arg > + print('Illegal <count> value %s' % arg) > return > > # 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' > + print('No NFS mount points were found') > return > > > @@ -616,7 +618,7 @@ client are listed. > # we need to recheck the devices list when reparsing > devices = list_nfs_mounts(origdevices,mountstats) > if len(devices) == 0: > - print 'No NFS mount points were found' > + print('No NFS mount points were found') > return > count -= 1 > else: > @@ -630,7 +632,7 @@ client are listed. > # we need to recheck the devices list when reparsing > devices = list_nfs_mounts(origdevices,mountstats) > if len(devices) == 0: > - print 'No NFS mount points were found' > + print('No NFS mount points were found') > return > > # > @@ -641,7 +643,7 @@ prog = os.path.basename(sys.argv[0]) > try: > iostat_command(prog) > except KeyboardInterrupt: > - print 'Caught ^C... exiting' > + print('Caught ^C... exiting') > sys.exit(1) > > sys.exit(0) > -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/tools/nfs-iostat/nfs-iostat.py b/tools/nfs-iostat/nfs-iostat.py index d909632..dfbef87 100644 --- a/tools/nfs-iostat/nfs-iostat.py +++ b/tools/nfs-iostat/nfs-iostat.py @@ -3,6 +3,8 @@ """Emulate iostat for NFS mount points using /proc/self/mountstats """ +from __future__ import print_function + __copyright__ = """ Copyright (C) 2005, Chuck Lever <cel@netapp.com> @@ -201,9 +203,9 @@ class DeviceData: result = DeviceData() # copy self into result - for key, value in self.__nfs_data.iteritems(): + for key, value in self.__nfs_data.items(): result.__nfs_data[key] = value - for key, value in self.__rpc_data.iteritems(): + for key, value in self.__rpc_data.items(): result.__rpc_data[key] = value # compute the difference of each item in the list @@ -233,9 +235,9 @@ class DeviceData: client_bytes_read = float(nfs_stats['serverreadbytes'] - nfs_stats['directreadbytes']) ratio = ((app_bytes_read - client_bytes_read) * 100) / app_bytes_read - print - print 'app bytes: %f client bytes %f' % (app_bytes_read, client_bytes_read) - print 'Data cache hit ratio: %4.2f%%' % ratio + print() + print('app bytes: %f client bytes %f' % (app_bytes_read, client_bytes_read)) + print('Data cache hit ratio: %4.2f%%' % ratio) def __print_attr_cache_stats(self, sample_time): """Print attribute cache efficiency stats @@ -255,13 +257,13 @@ class DeviceData: data_invalidates = float(nfs_stats['datainvalidates']) attr_invalidates = float(nfs_stats['attrinvalidates']) - print - print '%d inode revalidations, hitting in cache %4.2f%% of the time' % \ - (revalidates, ratio) - print '%d open operations (mandatory GETATTR requests)' % opens + print() + print('%d inode revalidations, hitting in cache %4.2f%% of the time' % \ + (revalidates, ratio)) + print('%d open operations (mandatory GETATTR requests)' % opens) if getattr_ops != 0: - print '%4.2f%% of GETATTRs resulted in data cache invalidations' % \ - ((data_invalidates * 100) / getattr_ops) + print('%4.2f%% of GETATTRs resulted in data cache invalidations' % \ + ((data_invalidates * 100) / getattr_ops)) def __print_dir_cache_stats(self, sample_time): """Print directory stats @@ -277,13 +279,13 @@ class DeviceData: lookups = nfs_stats['vfslookup'] getdents = nfs_stats['vfsreaddir'] - print - print '%d open operations (pathname lookups)' % opens - print '%d dentry revalidates and %d vfs lookup requests' % \ - (dentry_revals, lookups), - print 'resulted in %d LOOKUPs on the wire' % lookup_ops - print '%d vfs getdents calls resulted in %d READDIRs on the wire' % \ - (getdents, readdir_ops) + print() + print('%d open operations (pathname lookups)' % opens) + print('%d dentry revalidates and %d vfs lookup requests' % \ + (dentry_revals, lookups)) + print('resulted in %d LOOKUPs on the wire' % lookup_ops) + print('%d vfs getdents calls resulted in %d READDIRs on the wire' % \ + (getdents, readdir_ops)) def __print_page_stats(self, sample_time): """Print page cache stats @@ -297,33 +299,33 @@ class DeviceData: vfswritepages = nfs_stats['vfswritepages'] pages_written = nfs_stats['writepages'] - print - print '%d nfs_readpage() calls read %d pages' % \ - (vfsreadpage, vfsreadpage) - print '%d nfs_readpages() calls read %d pages' % \ - (vfsreadpages, pages_read - vfsreadpage), + print() + print('%d nfs_readpage() calls read %d pages' % \ + (vfsreadpage, vfsreadpage)) + print('%d nfs_readpages() calls read %d pages' % \ + (vfsreadpages, pages_read - vfsreadpage)) if vfsreadpages != 0: - print '(%.1f pages per call)' % \ - (float(pages_read - vfsreadpage) / vfsreadpages) + print('(%.1f pages per call)' % \ + (float(pages_read - vfsreadpage) / vfsreadpages)) else: - print - - print - print '%d nfs_updatepage() calls' % nfs_stats['vfsupdatepage'] - print '%d nfs_writepage() calls wrote %d pages' % \ - (vfswritepage, vfswritepage) - print '%d nfs_writepages() calls wrote %d pages' % \ - (vfswritepages, pages_written - vfswritepage), + print() + + print() + print('%d nfs_updatepage() calls' % nfs_stats['vfsupdatepage']) + print('%d nfs_writepage() calls wrote %d pages' % \ + (vfswritepage, vfswritepage)) + print('%d nfs_writepages() calls wrote %d pages' % \ + (vfswritepages, pages_written - vfswritepage)) if (vfswritepages) != 0: - print '(%.1f pages per call)' % \ - (float(pages_written - vfswritepage) / vfswritepages) + print('(%.1f pages per call)' % \ + (float(pages_written - vfswritepage) / vfswritepages)) else: - print + print() congestionwaits = nfs_stats['congestionwait'] if congestionwaits != 0: - print - print '%d congestion waits' % congestionwaits + print() + print('%d congestion waits' % congestionwaits) def __print_rpc_op_stats(self, op, sample_time): """Print generic stats for one RPC op @@ -351,15 +353,15 @@ class DeviceData: exe_per_op = 0.0 op += ':' - print '%s' % op.lower().ljust(15), - print ' ops/s\t\t kB/s\t\t kB/op\t\tretrans\t\tavg RTT (ms)\tavg exe (ms)' + print('%s' % op.lower().ljust(15)) + print(' ops/s\t\t kB/s\t\t kB/op\t\tretrans\t\tavg RTT (ms)\tavg exe (ms)') - print '\t\t%7.3f' % (ops / sample_time), - print '\t%7.3f' % (kilobytes / sample_time), - print '\t%7.3f' % kb_per_op, - print ' %7d (%3.1f%%)' % (retrans, retrans_percent), - print '\t%7.3f' % rtt_per_op, - print '\t%7.3f' % exe_per_op + print('\t\t%7.3f' % (ops / sample_time)) + print('\t%7.3f' % (kilobytes / sample_time)) + print('\t%7.3f' % kb_per_op) + print(' %7d (%3.1f%%)' % (retrans, retrans_percent)) + print('\t%7.3f' % rtt_per_op) + print('\t%7.3f' % exe_per_op) def ops(self, sample_time): sends = float(self.__rpc_data['rpcsends']) @@ -384,14 +386,14 @@ class DeviceData: else: backlog = 0.0 - print - print '%s mounted on %s:' % \ - (self.__nfs_data['export'], self.__nfs_data['mountpoint']) - print + print() + print('%s mounted on %s:' % \ + (self.__nfs_data['export'], self.__nfs_data['mountpoint'])) + print() - print ' op/s\t\trpc bklog' - print '%7.2f' % (sends / sample_time), - print '\t%7.2f' % backlog + print(' op/s\t\trpc bklog') + print('%7.2f' % (sends / sample_time)) + print('\t%7.2f' % backlog) if which == 0: self.__print_rpc_op_stats('READ', sample_time) @@ -424,7 +426,7 @@ def parse_stats_file(filename): ms_dict = dict() key = '' - f = file(filename) + f = open(filename) for line in f.readlines(): words = line.split() if len(words) == 0: @@ -494,7 +496,7 @@ def list_nfs_mounts(givenlist, mountstats): if stats.is_nfs_mountpoint(): list += [device] else: - for device, descr in mountstats.iteritems(): + for device, descr in mountstats.items(): stats = DeviceData() stats.parse_stats(descr) if stats.is_nfs_mountpoint(): @@ -527,7 +529,7 @@ client are listed. usage="usage: %prog [ <interval> [ <count> ] ] [ <options> ] [ <mount point> ]", description=mydescription, version='version %s' % Iostats_version) - parser.set_defaults(which=0, sort=False, list=sys.maxint) + parser.set_defaults(which=0, sort=False, list=sys.maxsize) statgroup = OptionGroup(parser, "Statistics Options", 'File I/O is displayed unless one of the following is specified:') @@ -572,29 +574,29 @@ client are listed. try: interval = int(arg) except: - print 'Illegal <interval> value %s' % arg + print('Illegal <interval> value %s' % arg) return if interval > 0: interval_seen = True else: - print 'Illegal <interval> value %s' % arg + print('Illegal <interval> value %s' % arg) return elif not count_seen: try: count = int(arg) except: - print 'Ilegal <count> value %s' % arg + print('Ilegal <count> value %s' % arg) return if count > 0: count_seen = True else: - print 'Illegal <count> value %s' % arg + print('Illegal <count> value %s' % arg) return # 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' + print('No NFS mount points were found') return @@ -616,7 +618,7 @@ client are listed. # we need to recheck the devices list when reparsing devices = list_nfs_mounts(origdevices,mountstats) if len(devices) == 0: - print 'No NFS mount points were found' + print('No NFS mount points were found') return count -= 1 else: @@ -630,7 +632,7 @@ client are listed. # we need to recheck the devices list when reparsing devices = list_nfs_mounts(origdevices,mountstats) if len(devices) == 0: - print 'No NFS mount points were found' + print('No NFS mount points were found') return # @@ -641,7 +643,7 @@ prog = os.path.basename(sys.argv[0]) try: iostat_command(prog) except KeyboardInterrupt: - print 'Caught ^C... exiting' + print('Caught ^C... exiting') sys.exit(1) sys.exit(0)
Simple fixes here to work with python 2 & 3: - use print() everywhere - dict.iteritems() -> dict.items() - file() -> open() - sys.maxint -> sys.maxsize Signed-off-by: Mike Frysinger <vapier@gentoo.org> --- tools/nfs-iostat/nfs-iostat.py | 130 +++++++++++++++++++++-------------------- 1 file changed, 66 insertions(+), 64 deletions(-)