Changed decimals to integers in the arcstat script

Changed interval value type from decimal to integer,
because of deprecation warning in Python 3.8 and above.
Also changed kstat values type from decimal to integer,
because all the values are integers.

Fixed behavior of arcstat when run without args.

Reviewed-by: George Melikov <mail@gmelikov.ru>
Reviewed-by: Ryan Moeller <ryan@iXsystems.com>
Signed-off-by: Bartosz Zieba <bartosz@zieba.pro>
Closes #10132 
Closes #10142
This commit is contained in:
Avatat 2020-03-18 19:50:45 +01:00 committed by GitHub
parent 5351951274
commit 4df8b2c373
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 4 additions and 13 deletions

View File

@ -51,7 +51,6 @@ import getopt
import re import re
import copy import copy
from decimal import Decimal
from signal import signal, SIGINT, SIGWINCH, SIG_DFL from signal import signal, SIGINT, SIGWINCH, SIG_DFL
@ -139,7 +138,7 @@ if sys.platform.startswith('freebsd'):
name, value = s.name, s.value name, value = s.name, s.value
# Trims 'kstat.zfs.misc.arcstats' from the name # Trims 'kstat.zfs.misc.arcstats' from the name
kstat[name[24:]] = Decimal(value) kstat[name[24:]] = int(value)
elif sys.platform.startswith('linux'): elif sys.platform.startswith('linux'):
def kstat_update(): def kstat_update():
@ -158,7 +157,7 @@ elif sys.platform.startswith('linux'):
continue continue
name, unused, value = s.split() name, unused, value = s.split()
kstat[name] = Decimal(value) kstat[name] = int(value)
def detailed_usage(): def detailed_usage():
@ -335,16 +334,8 @@ def init():
i += 1 i += 1
argv = sys.argv[i:] argv = sys.argv[i:]
sint = Decimal(argv[0]) if argv else sint sint = int(argv[0]) if argv else sint
count = int(argv[1]) if len(argv) > 1 else count count = int(argv[1]) if len(argv) > 1 else (0 if len(argv) > 0 else 1)
if len(argv) > 1:
sint = Decimal(argv[0])
count = int(argv[1])
elif len(argv) > 0:
sint = Decimal(argv[0])
count = 0
if hflag or (xflag and desired_cols): if hflag or (xflag and desired_cols):
usage() usage()