refactor: replace deprecated functions
This commit is contained in:
parent
0a9b16a0f6
commit
9b69738163
@ -8,7 +8,6 @@ import (
|
|||||||
"bufio"
|
"bufio"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"path"
|
"path"
|
||||||
@ -22,7 +21,6 @@ import (
|
|||||||
|
|
||||||
"code.dumpstack.io/tools/out-of-tree/config"
|
"code.dumpstack.io/tools/out-of-tree/config"
|
||||||
"code.dumpstack.io/tools/out-of-tree/distro"
|
"code.dumpstack.io/tools/out-of-tree/distro"
|
||||||
"code.dumpstack.io/tools/out-of-tree/fs"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var Runtime = "docker"
|
var Runtime = "docker"
|
||||||
@ -377,6 +375,48 @@ func (c Container) Run(workdir string, cmds []string) (out string, err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func FindKernel(entries []os.DirEntry, kname string) (name string, err error) {
|
||||||
|
for _, e := range entries {
|
||||||
|
var fi os.FileInfo
|
||||||
|
fi, err = e.Info()
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if strings.HasPrefix(fi.Name(), "vmlinuz") {
|
||||||
|
if strings.Contains(fi.Name(), kname) {
|
||||||
|
name = fi.Name()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
err = errors.New("cannot find kernel")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func FindInitrd(entries []os.DirEntry, kname string) (name string, err error) {
|
||||||
|
for _, e := range entries {
|
||||||
|
var fi os.FileInfo
|
||||||
|
fi, err = e.Info()
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if strings.HasPrefix(fi.Name(), "initrd") ||
|
||||||
|
strings.HasPrefix(fi.Name(), "initramfs") {
|
||||||
|
|
||||||
|
if strings.Contains(fi.Name(), kname) {
|
||||||
|
name = fi.Name()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
err = errors.New("cannot find kernel")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
func (c Container) Kernels() (kernels []distro.KernelInfo, err error) {
|
func (c Container) Kernels() (kernels []distro.KernelInfo, err error) {
|
||||||
if !c.Exist() {
|
if !c.Exist() {
|
||||||
return
|
return
|
||||||
@ -392,27 +432,33 @@ func (c Container) Kernels() (kernels []distro.KernelInfo, err error) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
moddirs, err := ioutil.ReadDir(libmodules)
|
moddirs, err := os.ReadDir(libmodules)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
bootfiles, err := ioutil.ReadDir(boot)
|
bootfiles, err := os.ReadDir(boot)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, krel := range moddirs {
|
for _, e := range moddirs {
|
||||||
|
var krel os.FileInfo
|
||||||
|
krel, err = e.Info()
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
c.Log.Debug().Msgf("generate config entry for %s", krel.Name())
|
c.Log.Debug().Msgf("generate config entry for %s", krel.Name())
|
||||||
|
|
||||||
var kernelFile, initrdFile string
|
var kernelFile, initrdFile string
|
||||||
kernelFile, err = fs.FindKernel(bootfiles, krel.Name())
|
kernelFile, err = FindKernel(bootfiles, krel.Name())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.Log.Warn().Msgf("cannot find kernel %s", krel.Name())
|
c.Log.Warn().Msgf("cannot find kernel %s", krel.Name())
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
initrdFile, err = fs.FindInitrd(bootfiles, krel.Name())
|
initrdFile, err = FindInitrd(bootfiles, krel.Name())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.Log.Warn().Msgf("cannot find initrd %s", krel.Name())
|
c.Log.Warn().Msgf("cannot find initrd %s", krel.Name())
|
||||||
continue
|
continue
|
||||||
|
30
fs/fs.go
30
fs/fs.go
@ -70,33 +70,3 @@ func FindBySubstring(dir, substring string) (k string, err error) {
|
|||||||
err = errors.New("not found")
|
err = errors.New("not found")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func FindKernel(files []os.FileInfo, kname string) (name string, err error) {
|
|
||||||
for _, file := range files {
|
|
||||||
if strings.HasPrefix(file.Name(), "vmlinuz") {
|
|
||||||
if strings.Contains(file.Name(), kname) {
|
|
||||||
name = file.Name()
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
err = errors.New("cannot find kernel")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
func FindInitrd(files []os.FileInfo, kname string) (name string, err error) {
|
|
||||||
for _, file := range files {
|
|
||||||
if strings.HasPrefix(file.Name(), "initrd") ||
|
|
||||||
strings.HasPrefix(file.Name(), "initramfs") {
|
|
||||||
|
|
||||||
if strings.Contains(file.Name(), kname) {
|
|
||||||
name = file.Name()
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
err = errors.New("cannot find kernel")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
@ -8,13 +8,14 @@
|
|||||||
package kernel
|
package kernel
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"io/ioutil"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/rs/zerolog/log"
|
"github.com/rs/zerolog/log"
|
||||||
"github.com/zcalusic/sysinfo"
|
"github.com/zcalusic/sysinfo"
|
||||||
|
|
||||||
|
"code.dumpstack.io/tools/out-of-tree/container"
|
||||||
"code.dumpstack.io/tools/out-of-tree/distro"
|
"code.dumpstack.io/tools/out-of-tree/distro"
|
||||||
"code.dumpstack.io/tools/out-of-tree/fs"
|
"code.dumpstack.io/tools/out-of-tree/fs"
|
||||||
)
|
)
|
||||||
@ -38,12 +39,11 @@ func GenHostKernels(download bool) (kernels []distro.KernelInfo, err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
kernelsBase := "/boot/"
|
kernelsBase := "/boot/"
|
||||||
bootfiles, err := ioutil.ReadDir(kernelsBase)
|
bootfiles, err := os.ReadDir(kernelsBase)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// only for compatibility, docker is not really used
|
|
||||||
dist := distro.Distro{
|
dist := distro.Distro{
|
||||||
ID: distroType,
|
ID: distroType,
|
||||||
Release: si.OS.Version,
|
Release: si.OS.Version,
|
||||||
@ -58,13 +58,13 @@ func GenHostKernels(download bool) (kernels []distro.KernelInfo, err error) {
|
|||||||
log.Debug().Msgf("generate config entry for %s", krel)
|
log.Debug().Msgf("generate config entry for %s", krel)
|
||||||
|
|
||||||
var kernelFile, initrdFile string
|
var kernelFile, initrdFile string
|
||||||
kernelFile, err = fs.FindKernel(bootfiles, krel)
|
kernelFile, err = container.FindKernel(bootfiles, krel)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Warn().Msgf("cannot find kernel %s", krel)
|
log.Warn().Msgf("cannot find kernel %s", krel)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
initrdFile, err = fs.FindInitrd(bootfiles, krel)
|
initrdFile, err = container.FindInitrd(bootfiles, krel)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Warn().Msgf("cannot find initrd %s", krel)
|
log.Warn().Msgf("cannot find initrd %s", krel)
|
||||||
continue
|
continue
|
||||||
|
Loading…
Reference in New Issue
Block a user