From 4e5e82a4d400cc13368fb0e668c372040c92a8e4 Mon Sep 17 00:00:00 2001 From: "liheng.zms" Date: Fri, 20 Oct 2023 13:05:48 +0800 Subject: [PATCH] go format Signed-off-by: liheng.zms --- .../util/writer/atomic/atomic_writer.go | 63 +++++++++++-------- 1 file changed, 36 insertions(+), 27 deletions(-) diff --git a/pkg/webhook/util/writer/atomic/atomic_writer.go b/pkg/webhook/util/writer/atomic/atomic_writer.go index e8649283..21323e2b 100644 --- a/pkg/webhook/util/writer/atomic/atomic_writer.go +++ b/pkg/webhook/util/writer/atomic/atomic_writer.go @@ -42,9 +42,9 @@ const ( // // Note: // -// 1. Writer reserves the set of pathnames starting with `..`. -// 2. Writer offers no concurrency guarantees and must be synchronized -// by the caller. +// 1. Writer reserves the set of pathnames starting with `..`. +// 2. Writer offers no concurrency guarantees and must be synchronized +// by the caller. // // The visible files in this volume are symlinks to files in the writer's data // directory. Actual files are stored in a hidden timestamped directory which @@ -86,33 +86,42 @@ const ( // // The Write algorithm is: // -// 1. The payload is validated; if the payload is invalid, the function returns -// 2. The current timestamped directory is detected by reading the data directory -// symlink -// 3. The old version of the volume is walked to determine whether any -// portion of the payload was deleted and is still present on disk. -// 4. The data in the current timestamped directory is compared to the projected -// data to determine if an update is required. -// 5. A new timestamped dir is created -// 6. The payload is written to the new timestamped directory -// 7. Symlinks and directory for new user-visible files are created (if needed). +// 1. The payload is validated; if the payload is invalid, the function returns // -// For example, consider the files: -// /podName -// /user/labels -// /k8s/annotations +// 2. The current timestamped directory is detected by reading the data directory +// symlink // -// The user visible files are symbolic links into the internal data directory: -// /podName -> ..data/podName -// /usr -> ..data/usr -// /k8s -> ..data/k8s +// 3. The old version of the volume is walked to determine whether any +// portion of the payload was deleted and is still present on disk. +// +// 4. The data in the current timestamped directory is compared to the projected +// data to determine if an update is required. +// +// 5. A new timestamped dir is created +// +// 6. The payload is written to the new timestamped directory +// +// 7. Symlinks and directory for new user-visible files are created (if needed). +// +// For example, consider the files: +// /podName +// /user/labels +// /k8s/annotations +// +// The user visible files are symbolic links into the internal data directory: +// /podName -> ..data/podName +// /usr -> ..data/usr +// /k8s -> ..data/k8s +// +// The data directory itself is a link to a timestamped directory with +// the real data: +// /..data -> ..2016_02_01_15_04_05.12345678/ +// +// 8. A symlink to the new timestamped directory ..data_tmp is created that will +// become the new data directory +// +// 9. The new data directory symlink is renamed to the data directory; rename is atomic // -// The data directory itself is a link to a timestamped directory with -// the real data: -// /..data -> ..2016_02_01_15_04_05.12345678/ -// 8. A symlink to the new timestamped directory ..data_tmp is created that will -// become the new data directory -// 9. The new data directory symlink is renamed to the data directory; rename is atomic // 10. Old paths are removed from the user-visible portion of the target directory // 11. The previous timestamped directory is removed, if it exists func (w *Writer) Write(payload map[string]FileProjection) error {