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