From 9a97070da62577e730aaaae4cf657900abb16957 Mon Sep 17 00:00:00 2001 From: Joey Jiao Date: Sun, 2 Jul 2023 12:14:03 +0800 Subject: pkg/host: export ParseModulesText Change-Id: I3119aed5cfe223e24cfc56b27612adaf2a638a99 --- pkg/host/machine_info.go | 8 ++++++++ pkg/host/machine_info_linux.go | 7 ++++++- 2 files changed, 14 insertions(+), 1 deletion(-) (limited to 'pkg/host') diff --git a/pkg/host/machine_info.go b/pkg/host/machine_info.go index 3c04becab..779356d4a 100644 --- a/pkg/host/machine_info.go +++ b/pkg/host/machine_info.go @@ -45,9 +45,17 @@ func CollectGlobsInfo(globs map[string]bool) (map[string][]string, error) { return machineGlobsInfo(globs) } +func ParseModulesText(modulesText []byte) ([]KernelModule, error) { + if machineParseModules == nil { + return nil, nil + } + return machineParseModules(modulesText) +} + var machineInfoFuncs []machineInfoFunc var machineModulesInfo func() ([]KernelModule, error) var machineGlobsInfo func(map[string]bool) (map[string][]string, error) +var machineParseModules func([]byte) ([]KernelModule, error) type machineInfoFunc struct { name string diff --git a/pkg/host/machine_info_linux.go b/pkg/host/machine_info_linux.go index 702b55cb3..d46dacd4e 100644 --- a/pkg/host/machine_info_linux.go +++ b/pkg/host/machine_info_linux.go @@ -21,6 +21,7 @@ func init() { } machineModulesInfo = getModulesInfo machineGlobsInfo = getGlobsInfo + machineParseModules = parseModules } func readCPUInfo(buffer *bytes.Buffer) error { @@ -125,8 +126,12 @@ func readKVMInfo(buffer *bytes.Buffer) error { } func getModulesInfo() ([]KernelModule, error) { - var modules []KernelModule modulesText, _ := os.ReadFile("/proc/modules") + return parseModules(modulesText) +} + +func parseModules(modulesText []byte) ([]KernelModule, error) { + var modules []KernelModule re := regexp.MustCompile(`(\w+) ([0-9]+) .*(0[x|X][a-fA-F0-9]+)[^\n]*`) for _, m := range re.FindAllSubmatch(modulesText, -1) { addr, err := strconv.ParseUint(string(m[3]), 0, 64) -- cgit mrf-deployment