修正Windows平台日志磁盘空间显示可能不正确的问题。

pull/32/merge
apexliu 2017-03-04 04:40:40 +08:00
parent e6d3696f0d
commit 6700c818cb
2 changed files with 17 additions and 13 deletions

View File

@ -17,27 +17,32 @@ def get_free_space_mb(folder):
""" Return folder/drive free space (in bytes)
"""
if platform.system() == 'Windows':
free_bytes = ctypes.c_ulonglong(0)
total_bytes = ctypes.c_ulonglong(0)
ctypes.windll.kernel32.GetDiskFreeSpaceExW(None, None, ctypes.pointer(total_bytes), ctypes.pointer(free_bytes))
return total_bytes.value / 1024 / 1024 / 1024, free_bytes.value / 1024 / 1024 / 1024
_free_bytes = ctypes.c_ulonglong(0)
_total_bytes = ctypes.c_ulonglong(0)
ctypes.windll.kernel32.GetDiskFreeSpaceExW(folder, None, ctypes.pointer(_total_bytes), ctypes.pointer(_free_bytes))
# return _total_bytes.value / 1024 / 1024 / 1024, _free_bytes.value / 1024 / 1024 / 1024
total_bytes = _total_bytes.value
free_bytes = _free_bytes.value
else:
st = os.statvfs(folder)
return st.f_blocks * st.f_frsize / 1024 / 1024 / 1024, st.f_bavail * st.f_frsize / 1024 / 1024 / 1024
# return st.f_blocks * st.f_frsize / 1024 / 1024 / 1024, st.f_bavail * st.f_frsize / 1024 / 1024 / 1024
total_bytes = st.f_blocks * st.f_frsize
free_bytes = st.f_bavail * st.f_frsize
return total_bytes, free_bytes
class LogHandler(SwxAdminHandler):
def get(self):
#
user_list = user.get_user_list()
total_size, free_size = get_free_space_mb(cfg.data_path)
# config_list = host.get_config_list()
ts_server = dict()
ts_server['ip'] = cfg.core.rpc.ip #config_list['ts_server_ip']
ts_server['port'] = cfg.core.rpc.port #cfg.server_port
ts_server['ip'] = cfg.core.rpc.ip # config_list['ts_server_ip']
ts_server['port'] = cfg.core.rpc.port # cfg.server_port
self.render('log/index.mako', user_list=user_list, total_size=int(total_size), free_size=int(free_size), ts_server=ts_server)
self.render('log/index.mako', user_list=user_list, total_size=total_size, free_size=free_size, ts_server=ts_server)
class RecordHandler(SwxAdminHandler):

View File

@ -9,15 +9,14 @@ ywl.on_init = function (cb_stack, cb_args) {
// 创建页面控件对象
//===================================
// 表格数据
//console.log('ywl.page_options.total_size,', ywl.page_options.total_size, ywl.page_options.free_size);
var disk_rate = parseInt(ywl.page_options.free_size * 100 / ywl.page_options.total_size);
$('#disk-status').text('日志磁盘大小:' + ywl.page_options.total_size + 'GB,剩余空间:' + ywl.page_options.free_size + 'GB,空闲' + disk_rate + '%');
$('#disk-status').text('日志磁盘大小:' + size2str(ywl.page_options.total_size, 2) + ',剩余空间:' + size2str(ywl.page_options.free_size, 2) + ',空闲' + disk_rate + '%');
if (disk_rate < 10) {
$('#disk-status').removeClass().addClass('badge badge-danger');
} else if (disk_rate < 50) {
} else if (disk_rate < 30) {
$('#disk-status').removeClass().addClass('badge badge-warning');
} else {
$('#disk-status').removeClass().addClass('badge badge-info');
$('#disk-status').removeClass().addClass('badge badge-ignore');
}
var host_table_options = {