Skip to content
Snippets Groups Projects
Commit ab81ea1e authored by Stan Hu's avatar Stan Hu
Browse files

Merge branch 'improve-system-info' into 'master'

Catch permission denied errors and ignore the disk



See merge request !5017
parents 3041c433 7dbc3d97
No related branches found
No related tags found
No related merge requests found
Pipeline #
class Admin::SystemInfoController < Admin::ApplicationController
def show
excluded_mounts = [
"nobrowse",
"read-only",
"ro"
]
EXCLUDED_MOUNT_OPTIONS = [
'nobrowse',
'read-only',
'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
mounts = Sys::Filesystem.mounts
 
@disks = []
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)
@disks.push({
begin
disk = Sys::Filesystem.stat(mount.mount_point)
@disks.push({
bytes_total: disk.bytes_total,
bytes_used: disk.bytes_used,
disk_name: mount.name,
mount_path: disk.path
})
})
rescue Sys::Filesystem::Error
end
end
 
@cpus = system_info.cpus.length
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment