From 8b26088083cf51e1beea6ccabc5fa2f7b7d10974 Mon Sep 17 00:00:00 2001 From: Jonathon Anderson Date: Thu, 30 Jan 2025 09:30:52 -0700 Subject: [PATCH] Don't attempt to back-up an output file that doesn't exist during upgrade - Fixes: #1671 Signed-off-by: Jonathon Anderson --- CHANGELOG.md | 1 + internal/app/wwctl/upgrade/config/cobra.go | 6 ++++-- internal/app/wwctl/upgrade/nodes/cobra.go | 6 ++++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4918c797..e868e0b8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Remove a redundant "Building image" log message after image exec. #1694 - Don't populate NetDevs[].Type or NetDevs[].Netmask during upgrade. #1661 - Prefer parent profile values over child profile values. #1672 +- Don't attempt to back-up an output file that doesn't exist during upgrade. #1671 ## v4.6.0rc1, 2025-01-29 diff --git a/internal/app/wwctl/upgrade/config/cobra.go b/internal/app/wwctl/upgrade/config/cobra.go index 9755424f..f4d62409 100644 --- a/internal/app/wwctl/upgrade/config/cobra.go +++ b/internal/app/wwctl/upgrade/config/cobra.go @@ -54,8 +54,10 @@ func UpgradeNodesConf(cmd *cobra.Command, args []string) error { fmt.Print(string(upgradedYaml)) return nil } else { - if err := util.CopyFile(outputPath, outputPath+"-old"); err != nil { - return err + if util.IsFile(outputPath) { + if err := util.CopyFile(outputPath, outputPath+"-old"); err != nil { + return err + } } return upgraded.PersistToFile(outputPath) } diff --git a/internal/app/wwctl/upgrade/nodes/cobra.go b/internal/app/wwctl/upgrade/nodes/cobra.go index ebfe2fd4..1c243dbc 100644 --- a/internal/app/wwctl/upgrade/nodes/cobra.go +++ b/internal/app/wwctl/upgrade/nodes/cobra.go @@ -81,8 +81,10 @@ func UpgradeNodesConf(cmd *cobra.Command, args []string) error { fmt.Print(string(upgradedYaml)) return nil } else { - if err := util.CopyFile(outputPath, outputPath+"-old"); err != nil { - return err + if util.IsFile(outputPath) { + if err := util.CopyFile(outputPath, outputPath+"-old"); err != nil { + return err + } } return upgraded.PersistToFile(outputPath) }