Commit Graph

55 Commits

Author SHA1 Message Date
Adrian Reber
e86981fd59 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>
2025-09-04 14:10:13 -06:00
Jonathon Anderson
66450a7dcd Simpler names for overlay methods
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-08-27 22:33:18 -06:00
Christian Goll
6f4fd60d8f refactored overlay class
overlay.GetOverlay(name) returns now an error if the overlay doesn't
exist. This is the most canonical way to act if there is no overlay.
2025-08-27 22:24:31 -06:00
Jonathon Anderson
b3a6f3d905 Fix a race condition in wwctl overlay edit
Switches to using sha256 rather than mtime to detect changes to an
overlay file.

- Fixes: #1947

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-08-01 01:57:02 -06:00
Jonathon Anderson
48bace55f6 Preserve file permissions during wwctl overlay edit
- Fixes: #1886

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-07-02 08:06:13 -06:00
Jonathon Anderson
eff5565886 wwctl overlay args and completions
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-02-09 16:13:53 -07:00
Jonathon Anderson
05923d4044 Create temporary files in overlay directory during wwctl overlay edit
- Fixes: #1473

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-02-05 20:27:55 -07:00
Jonathon Anderson
4f83885c5b Show each overlay only once #1675
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-02-01 13:40:12 +01:00
Jonathon Anderson
1fb67d666f Avoid creating directories or cloning a site overlay until edit is ready to write
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-12-20 11:12:47 +01:00
Jonathon Anderson
c03dc9436b Add an Overlay type with helper methods
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-12-20 11:12:47 +01:00
Jonathon Anderson
ac49ecef70 Rename and refactor overlay constructor functions
- Reduces redundancy
- Adds clarity

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-12-20 11:12:47 +01:00
Christian Goll
d5fc7e9320 introduce site overlays
site overlays are place in sysconfdir/overlays and take
precedence over distribution overlays with the same name.

Every `wwctl overlay` command changing overlays will create
an site overlay. distribution overlays can't be deleted or
modified with wwctl.

Signed-off-by: Christian Goll <cgoll@suse.com>
2024-12-20 11:12:41 +01:00
xu yang
97c6772e51 Return non-zero exit code on overlay sub-commands
Signed-off-by: xu yang <xyang@ciq.com>
2024-10-30 20:51:44 -06:00
Christian Goll
c9c38542f4 added completion to overlay chmod/chown/delete/edit
Signed-off-by: Christian Goll <cgoll@suse.com>
2024-08-02 13:55:56 -06:00
xu yang
cec903aeeb resovle the comments
Signed-off-by: xu yang <xyang@ciq.com>
2024-07-25 06:42:16 +00:00
xu yang
62d9b5f71d fix the failure when updating overlay files existing on different partitions
Signed-off-by: xu yang <xyang@ciq.com>
2024-07-25 02:29:29 +00:00
xu yang
371e4d63a6 Fix multiple issues in wwctl overlay edit
- Fixes #1236
- Fixes #1235

Signed-off-by: xu yang <xyang@ciq.com>
2024-07-03 17:57:25 -06:00
Jonathon Anderson
a1832ad8c1 Complete transfer of Warewulf from HPCng
Warewulf is now being maintained in its own GitHub organization at
github.com/warewulf

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-01-26 21:35:04 -07:00
Jonathon Anderson
4f41a569dd Replace development with main
The development branch has been replaced with the main branch in GitHub.
Replaces references to development in docs, commands, configuration, and
workflows.

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2023-11-25 00:27:52 -07:00
Jonathon Anderson
42842aeee1 Format entire source code using make fmt
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2023-10-23 17:56:20 -06:00
Jonathon Anderson
7e4e2a3f71 Fix and update initial overlay template
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2023-08-31 17:44:46 -06:00
Jonathon Anderson
fb49b6082e Update overlay edit with tempfile and mtime
The recent `overlay edit` command reimplementation included some
incorrect ordering that led to spurious error messages for files that
did not yet exist. This reimplementation reorders operations to avoid
such error messages and clarifies the implementation by editing in a
temporary file and using mtime to discern whether an edit has occurred.

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2023-08-31 15:55:18 -06:00
Christian Goll
5ed711490d remove list files option from edit 2023-02-13 11:25:35 +01:00
Christian Goll
d91f552473 make output less scary for new files 2023-02-13 11:11:19 +01:00
Jonathon Anderson
78b857a3e4 Whitespace cleanup
Removes trailing whitespace from all source files.

Signed-off-by: Jonathon Anderson <janderson@ciq.co>
2022-12-08 18:59:56 -07:00
Christian Goll
5413eb611d removed stray debug line 2022-10-27 12:08:32 +02:00
Christian Goll
721a52239f opening file with twi seperate descriptors 2022-10-27 12:03:10 +02:00
Christian Goll
21f7a1f8c3 fix linting 2022-10-27 11:32:30 +02:00
mslacken
12efa0cc68 check if new template file was modified 2022-10-14 18:18:58 +02:00
Jonathon Anderson
0b3e862bea Remove trailing newline from wwlog
I noticed that some wwlog calls included a trailing newline, but others
did not. I tested both in isolation and discovered that the behavior was
consistent regardless of whether a trailing newline was included. I
further confirmed in code that wwlog appends a trailing newline
automatically if it is not present; so a trailing newline is unnecessary
in individual calls.

This commit removes trailing newlines from all calls to make them
consistent. It also replaces two calls to wwlog.Printf. (see #534)

Signed-off-by: Jonathon Anderson <janderson@ciq.co>
2022-09-15 12:38:03 -06:00
Jonathon Anderson
22910958b5 Replace all instances of wwlog.Printf
wwlog provides named loggers for each level, which requires
less code and is clearer than wwlog.Printf. The code has
included a mix of both, but this commit consolidates existing
code on the per-level functions.

Signed-off-by: Jonathon Anderson <janderson@ciq.co>
2022-09-11 08:00:23 -06:00
Christian Goll
69c058f106 added bash completion for overlay commands 2022-06-08 15:49:55 +02:00
Gregory Kurtzer
00d8d42e9d First pass at a rework of the overlay subsystem in Warewulf 2021-12-29 16:11:25 -08:00
jcsiadal
0b93d6c277 Update help
Signed-off-by: jcsiadal <jeremy.c.siadal@intel.com>
2021-11-08 11:36:21 -08:00
jcsiadal
de2c882ba1 Replace HTML in help
Signed-off-by: jcsiadal <jeremy.c.siadal@intel.com>
2021-10-28 17:48:16 -07:00
Gregory Kurtzer
499582e211 Don't rebuild overlays on overlay commands automatically 2021-09-29 22:06:46 -07:00
Gregory Kurtzer
3137f477bf UI updates to include "overlay kind" 2021-09-13 13:28:44 -07:00
WestleyR
4edc16953e Fix linting issues 2021-09-07 20:48:51 -07:00
Michael L. Young
e171eae858 Clean up typos from copy and paste 2021-08-25 07:59:35 -04:00
Niko Kivel
1c35b84e74 GroupName --> ClusterName 2021-04-28 22:38:39 +02:00
Ian Kaneshiro
846b45524c Tidy up
- Ran goimports to format code and imports
- Removed unused module from go.mod
- Added .editorconfig to keep formatting standard across contributors
2021-02-16 11:54:12 -08:00
Gregory Kurtzer
72b1d8c9d8 UI Updates with a few minor fixups scattered here and there 2021-01-14 20:23:42 -08:00
Gregory Kurtzer
98e03162d3 Set vi as default editor is none is defined 2020-12-20 22:56:32 -08:00
Gregory Kurtzer
ba5887555d Minor bugfix on default template. 2020-12-13 23:38:22 -08:00
Gregory Kurtzer
6cbaa29fbd Fixes for new API 2020-12-03 17:28:28 -08:00
Gregory Kurtzer
43ad7e570c API updates and fixes to CLI 2020-12-01 23:34:24 -08:00
Gregory Kurtzer
4d752a67db Added controllers, services, and lots of various optimizations and fixes 2020-11-30 23:07:42 -08:00
Gregory Kurtzer
3caeac0c9d Updates to overlay cli for NodeDB updates 2020-11-26 19:18:28 -08:00
Gregory Kurtzer
e5e23b5868 Changed backend node API to account for default and overrides for UI 2020-11-23 23:11:20 -08:00
Gregory Kurtzer
221e71b384 A bunch of changes including reworking the assets -> node API 2020-11-20 17:59:06 -08:00