fix(wwctl): Create overlay edit tempfile in tmpdir
When editing an overlay, the temporary file was created within the overlay directory structure. This could lead to the temporary file being included in the overlay if not cleaned up properly. This change modifies the behavior to create the temporary file in the system's default temporary directory, avoiding any potential issues with the overlay itself. Not using this change the temporary file can be seen in the overlay: DEBUG : Using temporary file /usr/share/warewulf/overlays/host/ww-overlay-edit-2879742493 DEBUG : Checking if path exists as a file: /usr/share/warewulf/overlays/host/rootfs/etc/hosts.ww DEBUG : ExecInteractive(tee, [/usr/share/warewulf/overlays/host/ww-overlay-edit-2879742493]) # find /srv | grep ww-overlay /srv/warewulf/overlays/host/ww-overlay-edit-2879742493 With this patch applied: DEBUG : Using temporary file /tmp/ww-overlay-edit-266752840 DEBUG : Checking if path exists as a file: /usr/share/warewulf/overlays/host/rootfs/etc/hosts.ww DEBUG : ExecInteractive(tee, [/tmp/ww-overlay-edit-266752840]) # find /srv | grep ww-overlay Assisted-by: Gemini 2.5 Pro Signed-off-by: Adrian Reber <areber@redhat.com>
This commit is contained in:
committed by
Jonathon Anderson
parent
1f88d93f7e
commit
e86981fd59
@@ -20,6 +20,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
||||
- Refactored overlay class. #1968
|
||||
- `wwclient` places files from the runtime overlay atomically. #1307, #1975
|
||||
- `wwclient` skips files that do not appear to have been modified. #1984
|
||||
- `wwctl overlay edit` again writes temporary files to the default location.
|
||||
(After #1886 better resolves the underlying issue from #1473.) #1946
|
||||
|
||||
### Fixed
|
||||
|
||||
|
||||
@@ -48,3 +48,4 @@
|
||||
* Rafael Lopez <raflopez1@gmail.com> @rafalop
|
||||
* Arian Cabrera [@acabrera86](https://github.com/acabrera86)
|
||||
* Dacian Reece-Stremtan <dacianstremtan@gmail.com> [@dacianstremtan](https://github.com/dacianstremtan)
|
||||
* Adrian Reber <areber@redhat.com>
|
||||
|
||||
@@ -47,7 +47,7 @@ func CobraRunE(cmd *cobra.Command, args []string) (err error) {
|
||||
return fmt.Errorf("%s does not exist. Use '--parents' option to create automatically", overlayFileDir)
|
||||
}
|
||||
|
||||
tempFile, tempFileErr := os.CreateTemp(myOverlay.Path(), "ww-overlay-edit-")
|
||||
tempFile, tempFileErr := os.CreateTemp("", "ww-overlay-edit-")
|
||||
if tempFileErr != nil {
|
||||
return fmt.Errorf("unable to create temporary file for editing: %s", tempFileErr)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user