From f89293a1d6516517cd5ce36d1ea934e6a268ddd4 Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Thu, 9 Sep 2021 08:39:41 +0200 Subject: [PATCH 1/4] allow compressed kernels with gz suffix handy for aarch64 --- internal/pkg/kernel/kernel.go | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/internal/pkg/kernel/kernel.go b/internal/pkg/kernel/kernel.go index 34618db6..01edf77a 100644 --- a/internal/pkg/kernel/kernel.go +++ b/internal/pkg/kernel/kernel.go @@ -6,12 +6,12 @@ import ( "os" "os/exec" "path" - - "github.com/pkg/errors" + "strings" "github.com/hpcng/warewulf/internal/pkg/config" "github.com/hpcng/warewulf/internal/pkg/util" "github.com/hpcng/warewulf/internal/pkg/wwlog" + "github.com/pkg/errors" ) func ParentDir() string { @@ -72,28 +72,30 @@ func ListKernels() ([]string, error) { } func Build(kernelVersion string, root string) (string, error) { + kernelImage := path.Join(root, "/boot/vmlinuz-"+kernelVersion) kernelDrivers := path.Join(root, "/lib/modules/"+kernelVersion) kernelDestination := KernelImage(kernelVersion) driversDestination := KmodsImage(kernelVersion) // Create the destination paths just in case it doesn't exist - err := os.MkdirAll(path.Dir(kernelDestination), 0755) - if err != nil { - return "", fmt.Errorf("failed to create kernal dest: %s", err) - } - - err = os.MkdirAll(path.Dir(driversDestination), 0755) - if err != nil { - return "", fmt.Errorf("failed to create driver dest: %s", err) - } + os.MkdirAll(path.Dir(kernelDestination), 0755) + os.MkdirAll(path.Dir(driversDestination), 0755) if !util.IsFile(kernelImage) { - return "", errors.New("Could not locate kernel image") + // allow uncompressed kernels (can be handy for aarch64) + kernelImage = path.Join(root, "/boot/vmlinux-"+kernelVersion) + if !util.IsFile(kernelImage) { + return "", errors.New("Could not locate kernel image") + } } if !util.IsDir(kernelDrivers) { - return "", errors.New("Could not locate kernel drivers") + // strip a gz suffix + kernelDrivers = strings.TrimRight(kernelDrivers, ".gz") + if !util.IsDir(kernelDrivers) { + return "", errors.New("Could not locate kernel drivers") + } } wwlog.Printf(wwlog.VERBOSE, "Setting up Kernel\n") From 16387258cd5bc5f3b00f5cbcc29bf2d7fcc3ff1a Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Fri, 10 Sep 2021 08:52:45 +0200 Subject: [PATCH 2/4] icehck return of os.MkDir what fixes linting --- internal/pkg/kernel/kernel.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/internal/pkg/kernel/kernel.go b/internal/pkg/kernel/kernel.go index 01edf77a..3c7fe4be 100644 --- a/internal/pkg/kernel/kernel.go +++ b/internal/pkg/kernel/kernel.go @@ -79,8 +79,12 @@ func Build(kernelVersion string, root string) (string, error) { driversDestination := KmodsImage(kernelVersion) // Create the destination paths just in case it doesn't exist - os.MkdirAll(path.Dir(kernelDestination), 0755) - os.MkdirAll(path.Dir(driversDestination), 0755) + if err := os.MkdirAll(path.Dir(kernelDestination), 0755) ; err != nil { + return "", err + } + if err := os.MkdirAll(path.Dir(driversDestination), 0755) ; err != nil { + return "", err + } if !util.IsFile(kernelImage) { // allow uncompressed kernels (can be handy for aarch64) From 5772c44a0cb6d5a8722ec052f93911ea572c0a8a Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Fri, 17 Sep 2021 11:47:43 +0200 Subject: [PATCH 3/4] Added better error handling Co-authored-by: WestleyK --- internal/pkg/kernel/kernel.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/pkg/kernel/kernel.go b/internal/pkg/kernel/kernel.go index 3c7fe4be..6cd2e60f 100644 --- a/internal/pkg/kernel/kernel.go +++ b/internal/pkg/kernel/kernel.go @@ -80,7 +80,7 @@ func Build(kernelVersion string, root string) (string, error) { // Create the destination paths just in case it doesn't exist if err := os.MkdirAll(path.Dir(kernelDestination), 0755) ; err != nil { - return "", err + return "", errors.Wrap(err, "failed to create kernal dest") } if err := os.MkdirAll(path.Dir(driversDestination), 0755) ; err != nil { return "", err From ea577dda3151b69ad3cf9548519984dc8e083bb0 Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Fri, 17 Sep 2021 11:50:47 +0200 Subject: [PATCH 4/4] Added better error handling Co-authored-by: WestleyK --- internal/pkg/kernel/kernel.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/pkg/kernel/kernel.go b/internal/pkg/kernel/kernel.go index 6cd2e60f..7aae564f 100644 --- a/internal/pkg/kernel/kernel.go +++ b/internal/pkg/kernel/kernel.go @@ -83,7 +83,7 @@ func Build(kernelVersion string, root string) (string, error) { return "", errors.Wrap(err, "failed to create kernal dest") } if err := os.MkdirAll(path.Dir(driversDestination), 0755) ; err != nil { - return "", err + return "", errors.Wrap(err, "failed to create driver dest") } if !util.IsFile(kernelImage) {