Merge branch 'improve-system-info' into 'master'
Catch permission denied errors and ignore the disk See merge request !5017
This commit is contained in:
commit
ab81ea1e81
1 changed files with 38 additions and 11 deletions
|
@ -1,27 +1,54 @@
|
||||||
class Admin::SystemInfoController < Admin::ApplicationController
|
class Admin::SystemInfoController < Admin::ApplicationController
|
||||||
def show
|
EXCLUDED_MOUNT_OPTIONS = [
|
||||||
excluded_mounts = [
|
'nobrowse',
|
||||||
"nobrowse",
|
'read-only',
|
||||||
"read-only",
|
'ro'
|
||||||
"ro"
|
]
|
||||||
]
|
|
||||||
|
|
||||||
|
EXCLUDED_MOUNT_TYPES = [
|
||||||
|
'autofs',
|
||||||
|
'binfmt_misc',
|
||||||
|
'cgroup',
|
||||||
|
'debugfs',
|
||||||
|
'devfs',
|
||||||
|
'devpts',
|
||||||
|
'devtmpfs',
|
||||||
|
'efivarfs',
|
||||||
|
'fuse.gvfsd-fuse',
|
||||||
|
'fuseblk',
|
||||||
|
'fusectl',
|
||||||
|
'hugetlbfs',
|
||||||
|
'mqueue',
|
||||||
|
'proc',
|
||||||
|
'pstore',
|
||||||
|
'securityfs',
|
||||||
|
'sysfs',
|
||||||
|
'tmpfs',
|
||||||
|
'tracefs',
|
||||||
|
'vfat'
|
||||||
|
]
|
||||||
|
|
||||||
|
def show
|
||||||
system_info = Vmstat.snapshot
|
system_info = Vmstat.snapshot
|
||||||
mounts = Sys::Filesystem.mounts
|
mounts = Sys::Filesystem.mounts
|
||||||
|
|
||||||
@disks = []
|
@disks = []
|
||||||
mounts.each do |mount|
|
mounts.each do |mount|
|
||||||
options = mount.options.split(', ')
|
mount_options = mount.options.split(',')
|
||||||
|
|
||||||
next unless excluded_mounts.each { |em| break if options.include?(em) }
|
next if (EXCLUDED_MOUNT_OPTIONS & mount_options).any?
|
||||||
|
next if (EXCLUDED_MOUNT_TYPES & [mount.mount_type]).any?
|
||||||
|
|
||||||
disk = Sys::Filesystem.stat(mount.mount_point)
|
begin
|
||||||
@disks.push({
|
disk = Sys::Filesystem.stat(mount.mount_point)
|
||||||
|
@disks.push({
|
||||||
bytes_total: disk.bytes_total,
|
bytes_total: disk.bytes_total,
|
||||||
bytes_used: disk.bytes_used,
|
bytes_used: disk.bytes_used,
|
||||||
disk_name: mount.name,
|
disk_name: mount.name,
|
||||||
mount_path: disk.path
|
mount_path: disk.path
|
||||||
})
|
})
|
||||||
|
rescue Sys::Filesystem::Error
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@cpus = system_info.cpus.length
|
@cpus = system_info.cpus.length
|
||||||
|
|
Loading…
Reference in a new issue