"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "plugins/dstat_disk_util.py" between
dstat-0.7.3.tar.gz and dstat-0.7.4.tar.gz

About: dstat is a versatile resource statistic tool and a replacement for vmstat, iostat and ifstat (using Python).

dstat_disk_util.py  (dstat-0.7.3):dstat_disk_util.py  (dstat-0.7.4)
skipping to change at line 31 skipping to change at line 31
def discover(self, *objlist): def discover(self, *objlist):
ret = [] ret = []
for l in self.splitlines(): for l in self.splitlines():
if len(l) < 13: continue if len(l) < 13: continue
if l[3:] == ['0',] * 11: continue if l[3:] == ['0',] * 11: continue
name = l[2] name = l[2]
ret.append(name) ret.append(name)
for item in objlist: ret.append(item) for item in objlist: ret.append(item)
if not ret: if not ret:
raise Exception, "No suitable block devices found to monitor" raise Exception('No suitable block devices found to monitor')
return ret return ret
def basename(self, disk): def basename(self, disk):
"Strip /dev/ and convert symbolic link" "Strip /dev/ and convert symbolic link"
if disk[:5] == '/dev/': if disk[:5] == '/dev/':
# file or symlink # file or symlink
if os.path.exists(disk): if os.path.exists(disk):
# e.g. /dev/disk/by-uuid/15e40cc5-85de-40ea-b8fb-cb3a2eaf872 # e.g. /dev/disk/by-uuid/15e40cc5-85de-40ea-b8fb-cb3a2eaf872
if os.path.islink(disk): if os.path.islink(disk):
target = os.readlink(disk) target = os.readlink(disk)
# convert relative pathname to absolute # convert relative pathname to absolute
if target[0] != '/': if target[0] != '/':
target = os.path.join(os.path.dirname(disk), target) target = os.path.join(os.path.dirname(disk), target)
target = os.path.normpath(target) target = os.path.normpath(target)
print 'dstat: symlink %s -> %s' % (disk, target) print('dstat: symlink %s -> %s' % (disk, target))
disk = target disk = target
# trim leading /dev/ # trim leading /dev/
return disk[5:] return disk[5:]
else: else:
print 'dstat: %s does not exist' % disk print('dstat: %s does not exist' % disk)
else: else:
return disk return disk
def vars(self): def vars(self):
ret = [] ret = []
if op.disklist: if op.disklist:
varlist = map(self.basename, op.disklist) varlist = list(map(self.basename, op.disklist))
else: else:
varlist = [] varlist = []
for name in self.discover: for name in self.discover:
if self.diskfilter.match(name): continue if self.diskfilter.match(name): continue
if name not in blockdevices(): continue if name not in blockdevices(): continue
varlist.append(name) varlist.append(name)
# if len(varlist) > 2: varlist = varlist[0:2] # if len(varlist) > 2: varlist = varlist[0:2]
varlist.sort() varlist.sort()
for name in varlist: for name in varlist:
if name in self.discover: if name in self.discover:
skipping to change at line 83 skipping to change at line 83
return [sysfs_dev(name) for name in self.vars] return [sysfs_dev(name) for name in self.vars]
def extract(self): def extract(self):
for l in self.splitlines(): for l in self.splitlines():
if len(l) < 13: continue if len(l) < 13: continue
if l[5] == '0' and l[9] == '0': continue if l[5] == '0' and l[9] == '0': continue
if l[3:] == ['0',] * 11: continue if l[3:] == ['0',] * 11: continue
name = l[2] name = l[2]
if name not in self.vars: continue if name not in self.vars: continue
self.set2[name] = dict( self.set2[name] = dict(
tot_ticks = long(l[12]) tot_ticks = int(l[12])
) )
for name in self.vars: for name in self.vars:
self.val[name] = ( (self.set2[name]['tot_ticks'] - self.set1[name][' tot_ticks']) * 1.0 * hz / elapsed / 1000, ) self.val[name] = ( (self.set2[name]['tot_ticks'] - self.set1[name][' tot_ticks']) * 1.0 * hz / elapsed / 1000, )
if step == op.delay: if step == op.delay:
self.set1.update(self.set2) self.set1.update(self.set2)
 End of changes. 5 change blocks. 
5 lines changed or deleted 5 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)