1
0
Fork 0

refactor: use the same name as in config

master
dump_stack() 2023-05-18 18:27:51 +00:00
parent 6385ce92e3
commit d551cc8fc4
Signed by: dump_stack
GPG Key ID: BE44DA8C062D87DC
15 changed files with 46 additions and 46 deletions

View File

@ -26,8 +26,8 @@ type kernel struct {
Patch []int Patch []int
} }
// KernelMask defines the kernel // Target defines the kernel
type KernelMask struct { type Target struct {
Distro distro.Distro Distro distro.Distro
ReleaseMask string ReleaseMask string
@ -37,7 +37,7 @@ type KernelMask struct {
} }
// DockerName is returns stable name for docker container // DockerName is returns stable name for docker container
func (km KernelMask) DockerName() string { func (km Target) DockerName() string {
distro := strings.ToLower(km.Distro.ID.String()) distro := strings.ToLower(km.Distro.ID.String())
release := strings.Replace(km.Distro.Release, ".", "__", -1) release := strings.Replace(km.Distro.Release, ".", "__", -1)
return fmt.Sprintf("out_of_tree_%s_%s", distro, release) return fmt.Sprintf("out_of_tree_%s_%s", distro, release)
@ -135,7 +135,7 @@ type Artifact struct {
Type ArtifactType Type ArtifactType
TestFiles []FileTransfer TestFiles []FileTransfer
SourcePath string SourcePath string
Targets []KernelMask Targets []Target
Script string Script string
@ -167,7 +167,7 @@ type Artifact struct {
Preload []PreloadModule Preload []PreloadModule
} }
func (ka Artifact) checkSupport(ki KernelInfo, km KernelMask) ( func (ka Artifact) checkSupport(ki KernelInfo, km Target) (
supported bool, err error) { supported bool, err error) {
if ki.Distro.ID != km.Distro.ID { if ki.Distro.ID != km.Distro.ID {

View File

@ -18,7 +18,7 @@ func TestMarshalUnmarshal(t *testing.T) {
Type: KernelModule, Type: KernelModule,
} }
artifactCfg.Targets = append(artifactCfg.Targets, artifactCfg.Targets = append(artifactCfg.Targets,
KernelMask{distro.Distro{ Target{distro.Distro{
ID: distro.Ubuntu, ID: distro.Ubuntu,
Release: "18.04", Release: "18.04",
}, ".*", kernel{}}) }, ".*", kernel{}})

View File

@ -68,7 +68,7 @@ func Images() (diis []Image, err error) {
return return
} }
func ImagePath(sk config.KernelMask) string { func ImagePath(sk config.Target) string {
return config.Dir("containers", sk.Distro.ID.String(), sk.Distro.Release) return config.Dir("containers", sk.Distro.ID.String(), sk.Distro.Release)
} }

View File

@ -229,7 +229,7 @@ func firstSupported(kcfg config.KernelConfig, ka config.Artifact,
return return
} }
ka.Targets = []config.KernelMask{km} ka.Targets = []config.Target{km}
for _, ki = range kcfg.Kernels { for _, ki = range kcfg.Kernels {
var supported bool var supported bool

View File

@ -8,11 +8,11 @@ import (
"code.dumpstack.io/tools/out-of-tree/config" "code.dumpstack.io/tools/out-of-tree/config"
) )
func Envs(km config.KernelMask) (envs []string) { func Envs(km config.Target) (envs []string) {
return return
} }
func Runs(km config.KernelMask) (commands []string) { func Runs(km config.Target) (commands []string) {
cmdf := func(f string, s ...interface{}) { cmdf := func(f string, s ...interface{}) {
commands = append(commands, fmt.Sprintf(f, s...)) commands = append(commands, fmt.Sprintf(f, s...))
} }

View File

@ -111,7 +111,7 @@ func kernelRelease(deb string) (r Release, err error) {
return return
} }
func Match(km config.KernelMask) (pkgs []string, err error) { func Match(km config.Target) (pkgs []string, err error) {
kernels, err := GetKernels() kernels, err := GetKernels()
if err != nil { if err != nil {
log.Error().Err(err).Msg("get kernels") log.Error().Err(err).Msg("get kernels")
@ -143,12 +143,12 @@ func Match(km config.KernelMask) (pkgs []string, err error) {
return return
} }
func Envs(km config.KernelMask) (envs []string) { func Envs(km config.Target) (envs []string) {
envs = append(envs, "DEBIAN_FRONTEND=noninteractive") envs = append(envs, "DEBIAN_FRONTEND=noninteractive")
return return
} }
func ContainerImage(km config.KernelMask) (image string) { func ContainerImage(km config.Target) (image string) {
image += "debian:" image += "debian:"
switch releaseFromString(km.Distro.Release) { switch releaseFromString(km.Distro.Release) {
@ -196,7 +196,7 @@ func repositories(release Release) (repos []string) {
return return
} }
func Runs(km config.KernelMask) (commands []string) { func Runs(km config.Target) (commands []string) {
release := releaseFromString(km.Distro.Release) release := releaseFromString(km.Distro.Release)
cmdf := func(f string, s ...interface{}) { cmdf := func(f string, s ...interface{}) {
@ -306,7 +306,7 @@ func ContainerKernels(d container.Image, kcfg *config.KernelConfig) (err error)
return return
} }
func Volumes(km config.KernelMask, pkgname string) (volumes container.Volumes) { func Volumes(km config.Target, pkgname string) (volumes container.Volumes) {
pkgdir := filepath.Join("volumes", km.DockerName(), pkgname) pkgdir := filepath.Join("volumes", km.DockerName(), pkgname)
volumes.LibModules = config.Dir(pkgdir, "/lib/modules") volumes.LibModules = config.Dir(pkgdir, "/lib/modules")
@ -316,7 +316,7 @@ func Volumes(km config.KernelMask, pkgname string) (volumes container.Volumes) {
return return
} }
func Install(km config.KernelMask, pkgname string, headers bool) (cmds []string, err error) { func Install(km config.Target, pkgname string, headers bool) (cmds []string, err error) {
dk, err := getCachedKernel(pkgname + ".deb") dk, err := getCachedKernel(pkgname + ".deb")
if err != nil { if err != nil {
return return
@ -352,7 +352,7 @@ func Install(km config.KernelMask, pkgname string, headers bool) (cmds []string,
return return
} }
func Cleanup(km config.KernelMask, pkgname string) { func Cleanup(km config.Target, pkgname string) {
pkgdir := config.Dir(filepath.Join("volumes", km.DockerName(), pkgname)) pkgdir := config.Dir(filepath.Join("volumes", km.DockerName(), pkgname))
log.Debug().Msgf("cleanup %s", pkgdir) log.Debug().Msgf("cleanup %s", pkgdir)

View File

@ -24,7 +24,7 @@ func TestMatch(t *testing.T) {
config.Directory = tmp config.Directory = tmp
km := config.KernelMask{ km := config.Target{
ReleaseMask: "3.2.0-4", ReleaseMask: "3.2.0-4",
Distro: distro.Distro{Release: "7"}, Distro: distro.Distro{Release: "7"},
} }

View File

@ -12,11 +12,11 @@ import (
"code.dumpstack.io/tools/out-of-tree/container" "code.dumpstack.io/tools/out-of-tree/container"
) )
func Envs(km config.KernelMask) (envs []string) { func Envs(km config.Target) (envs []string) {
return return
} }
func Runs(km config.KernelMask) (commands []string) { func Runs(km config.Target) (commands []string) {
cmdf := func(f string, s ...interface{}) { cmdf := func(f string, s ...interface{}) {
commands = append(commands, fmt.Sprintf(f, s...)) commands = append(commands, fmt.Sprintf(f, s...))
} }
@ -40,7 +40,7 @@ func Runs(km config.KernelMask) (commands []string) {
return return
} }
func Match(km config.KernelMask) (pkgs []string, err error) { func Match(km config.Target) (pkgs []string, err error) {
// FIXME timeout should be in global out-of-tree config // FIXME timeout should be in global out-of-tree config
c, err := container.New(km.DockerName(), time.Hour) c, err := container.New(km.DockerName(), time.Hour)
if err != nil { if err != nil {
@ -76,7 +76,7 @@ func Match(km config.KernelMask) (pkgs []string, err error) {
return return
} }
func Install(km config.KernelMask, pkgname string, headers bool) (commands []string, err error) { func Install(km config.Target, pkgname string, headers bool) (commands []string, err error) {
var headerspkg string var headerspkg string
if headers { if headers {
if strings.Contains(pkgname, "uek") { if strings.Contains(pkgname, "uek") {
@ -113,6 +113,6 @@ func Install(km config.KernelMask, pkgname string, headers bool) (commands []str
return return
} }
func Cleanup(km config.KernelMask, pkgname string) { func Cleanup(km config.Target, pkgname string) {
return return
} }

View File

@ -10,12 +10,12 @@ import (
"code.dumpstack.io/tools/out-of-tree/container" "code.dumpstack.io/tools/out-of-tree/container"
) )
func Envs(km config.KernelMask) (envs []string) { func Envs(km config.Target) (envs []string) {
envs = append(envs, "DEBIAN_FRONTEND=noninteractive") envs = append(envs, "DEBIAN_FRONTEND=noninteractive")
return return
} }
func Runs(km config.KernelMask) (commands []string) { func Runs(km config.Target) (commands []string) {
cmdf := func(f string, s ...interface{}) { cmdf := func(f string, s ...interface{}) {
commands = append(commands, fmt.Sprintf(f, s...)) commands = append(commands, fmt.Sprintf(f, s...))
} }
@ -53,7 +53,7 @@ func Runs(km config.KernelMask) (commands []string) {
return return
} }
func Match(km config.KernelMask) (pkgs []string, err error) { func Match(km config.Target) (pkgs []string, err error) {
// FIXME timeout should be in global out-of-tree config // FIXME timeout should be in global out-of-tree config
c, err := container.New(km.DockerName(), time.Hour) c, err := container.New(km.DockerName(), time.Hour)
if err != nil { if err != nil {
@ -83,7 +83,7 @@ func Match(km config.KernelMask) (pkgs []string, err error) {
return return
} }
func Install(km config.KernelMask, pkgname string, headers bool) (commands []string, err error) { func Install(km config.Target, pkgname string, headers bool) (commands []string, err error) {
var headerspkg string var headerspkg string
if headers { if headers {
@ -99,6 +99,6 @@ func Install(km config.KernelMask, pkgname string, headers bool) (commands []str
return return
} }
func Cleanup(km config.KernelMask, pkgname string) { func Cleanup(km config.Target, pkgname string) {
return return
} }

4
gen.go
View File

@ -32,11 +32,11 @@ func genConfig(at config.ArtifactType) (err error) {
Name: "Put name here", Name: "Put name here",
Type: at, Type: at,
} }
a.Targets = append(a.Targets, config.KernelMask{ a.Targets = append(a.Targets, config.Target{
Distro: distro.Distro{ID: distro.Ubuntu, Release: "18.04"}, Distro: distro.Distro{ID: distro.Ubuntu, Release: "18.04"},
ReleaseMask: ".*", ReleaseMask: ".*",
}) })
a.Targets = append(a.Targets, config.KernelMask{ a.Targets = append(a.Targets, config.Target{
Distro: distro.Distro{ID: distro.Debian, Release: "8"}, Distro: distro.Distro{ID: distro.Debian, Release: "8"},
ReleaseMask: ".*", ReleaseMask: ".*",
}) })

View File

@ -64,7 +64,7 @@ func (cmd *KernelListRemoteCmd) Run(kernelCmd *KernelCmd, g *Globals) (err error
return return
} }
km := config.KernelMask{ km := config.Target{
Distro: distro.Distro{ID: distroType, Release: cmd.Ver}, Distro: distro.Distro{ID: distroType, Release: cmd.Ver},
ReleaseMask: ".*", ReleaseMask: ".*",
} }
@ -149,7 +149,7 @@ func (cmd *KernelGenallCmd) Run(kernelCmd *KernelCmd, g *Globals) (err error) {
shutdown := false shutdown := false
kernel.SetSigintHandler(&shutdown) kernel.SetSigintHandler(&shutdown)
km := config.KernelMask{ km := config.Target{
Distro: distro.Distro{ID: distroType, Release: cmd.Ver}, Distro: distro.Distro{ID: distroType, Release: cmd.Ver},
ReleaseMask: ".*", ReleaseMask: ".*",
} }
@ -186,7 +186,7 @@ func (cmd *KernelInstallCmd) Run(kernelCmd *KernelCmd, g *Globals) (err error) {
shutdown := false shutdown := false
kernel.SetSigintHandler(&shutdown) kernel.SetSigintHandler(&shutdown)
km := config.KernelMask{ km := config.Target{
Distro: distro.Distro{ID: distroType, Release: cmd.Ver}, Distro: distro.Distro{ID: distroType, Release: cmd.Ver},
ReleaseMask: cmd.Kernel, ReleaseMask: cmd.Kernel,
} }

View File

@ -31,7 +31,7 @@ import (
"code.dumpstack.io/tools/out-of-tree/fs" "code.dumpstack.io/tools/out-of-tree/fs"
) )
func MatchPackages(km config.KernelMask) (pkgs []string, err error) { func MatchPackages(km config.Target) (pkgs []string, err error) {
// TODO interface for kernels match // TODO interface for kernels match
switch km.Distro.ID { switch km.Distro.ID {
case distro.Ubuntu: case distro.Ubuntu:
@ -65,7 +65,7 @@ func vsyscallAvailable() (available bool, err error) {
} }
func GenerateBaseDockerImage(registry string, commands []config.DockerCommand, func GenerateBaseDockerImage(registry string, commands []config.DockerCommand,
sk config.KernelMask, forceUpdate bool) (err error) { sk config.Target, forceUpdate bool) (err error) {
imagePath := container.ImagePath(sk) imagePath := container.ImagePath(sk)
dockerPath := imagePath + "/Dockerfile" dockerPath := imagePath + "/Dockerfile"
@ -175,7 +175,7 @@ func GenerateBaseDockerImage(registry string, commands []config.DockerCommand,
return return
} }
func installKernel(sk config.KernelMask, pkgname string, force, headers bool) (err error) { func installKernel(sk config.Target, pkgname string, force, headers bool) (err error) {
slog := log.With(). slog := log.With().
Str("distro_type", sk.Distro.ID.String()). Str("distro_type", sk.Distro.ID.String()).
Str("distro_release", sk.Distro.Release). Str("distro_release", sk.Distro.Release).
@ -510,7 +510,7 @@ func SetSigintHandler(variable *bool) {
} }
// FIXME too many parameters // FIXME too many parameters
func GenerateKernels(km config.KernelMask, registry string, func GenerateKernels(km config.Target, registry string,
commands []config.DockerCommand, max, retries int64, commands []config.DockerCommand, max, retries int64,
download, force, headers, shuffle, update bool, download, force, headers, shuffle, update bool,
shutdown *bool) (err error) { shutdown *bool) (err error) {

View File

@ -47,7 +47,7 @@ func genHostKernels(download bool) (kcfg config.KernelConfig, err error) {
// only for compatibility, docker is not really used // only for compatibility, docker is not really used
dii := container.Image{ dii := container.Image{
Name: config.KernelMask{ Name: config.Target{
Distro: distro.Distro{ Distro: distro.Distro{
ID: distroType, ID: distroType,
Release: si.OS.Version, Release: si.OS.Version,

12
pew.go
View File

@ -95,13 +95,13 @@ func (cmd *PewCmd) Run(g *Globals) (err error) {
} }
if cmd.Kernel != "" { if cmd.Kernel != "" {
var km config.KernelMask var km config.Target
km, err = kernelMask(cmd.Kernel) km, err = kernelMask(cmd.Kernel)
if err != nil { if err != nil {
return return
} }
ka.Targets = []config.KernelMask{km} ka.Targets = []config.Target{km}
} }
if cmd.Guess { if cmd.Guess {
@ -831,7 +831,7 @@ func (cmd PewCmd) performCI(ka config.Artifact) (err error) {
return return
} }
func kernelMask(kernel string) (km config.KernelMask, err error) { func kernelMask(kernel string) (km config.Target, err error) {
parts := strings.Split(kernel, ":") parts := strings.Split(kernel, ":")
if len(parts) != 2 { if len(parts) != 2 {
err = errors.New("Kernel is not 'distroType:regex'") err = errors.New("Kernel is not 'distroType:regex'")
@ -843,13 +843,13 @@ func kernelMask(kernel string) (km config.KernelMask, err error) {
return return
} }
km = config.KernelMask{Distro: distro.Distro{ID: dt}, ReleaseMask: parts[1]} km = config.Target{Distro: distro.Distro{ID: dt}, ReleaseMask: parts[1]}
return return
} }
func genAllKernels() (sk []config.KernelMask, err error) { func genAllKernels() (sk []config.Target, err error) {
for _, id := range distro.IDs { for _, id := range distro.IDs {
sk = append(sk, config.KernelMask{ sk = append(sk, config.Target{
Distro: distro.Distro{ID: id}, Distro: distro.Distro{ID: id},
ReleaseMask: ".*", ReleaseMask: ".*",
}) })

View File

@ -101,11 +101,11 @@ func buildPreload(workPath, tmp string, ki config.KernelInfo,
ka.SourcePath = workPath ka.SourcePath = workPath
km := config.KernelMask{ km := config.Target{
Distro: ki.Distro, Distro: ki.Distro,
ReleaseMask: ki.KernelRelease, ReleaseMask: ki.KernelRelease,
} }
ka.Targets = []config.KernelMask{km} ka.Targets = []config.Target{km}
if ka.Docker.Timeout.Duration != 0 { if ka.Docker.Timeout.Duration != 0 {
dockerTimeout = ka.Docker.Timeout.Duration dockerTimeout = ka.Docker.Timeout.Duration