From 9e8e1c1df3660f869c7fbd49135a8cd6bf91fe7c Mon Sep 17 00:00:00 2001 From: Stefan Berger Date: Mon, 14 Aug 2023 23:44:08 -0400 Subject: [PATCH] ctr: Sync code with containerd v1.6.23 ctr Signed-off-by: Stefan Berger --- .golangci.yml | 3 +++ cmd/ctr/commands/commands.go | 9 +++++---- cmd/ctr/commands/run/run.go | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/.golangci.yml b/.golangci.yml index d8e7865d..75576578 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -17,6 +17,9 @@ run: - cmd/ctr/commands/images - cmd\\ctr\\commands\\run - cmd\\ctr\\commands\\images + skip-files: + - cmd/ctr/commands/commands.go + - cmd\\ctr\\commands\\commands.go linters-settings: depguard: diff --git a/cmd/ctr/commands/commands.go b/cmd/ctr/commands/commands.go index 8c6b640d..096a9c15 100644 --- a/cmd/ctr/commands/commands.go +++ b/cmd/ctr/commands/commands.go @@ -24,6 +24,8 @@ import ( "strings" "github.com/containerd/containerd/defaults" + "github.com/containerd/containerd/pkg/atomicfile" + "github.com/urfave/cli" ) @@ -275,15 +277,14 @@ func WritePidFile(path string, pid int) error { if err != nil { return err } - tempPath := filepath.Join(filepath.Dir(path), fmt.Sprintf(".%s", filepath.Base(path))) - f, err := os.OpenFile(tempPath, os.O_RDWR|os.O_CREATE|os.O_EXCL|os.O_SYNC, 0666) + f, err := atomicfile.New(path, 0o666) if err != nil { return err } _, err = fmt.Fprintf(f, "%d", pid) - f.Close() if err != nil { + f.Cancel() return err } - return os.Rename(tempPath, path) + return f.Close() } diff --git a/cmd/ctr/commands/run/run.go b/cmd/ctr/commands/run/run.go index a2eb3969..5f60ab44 100644 --- a/cmd/ctr/commands/run/run.go +++ b/cmd/ctr/commands/run/run.go @@ -130,7 +130,7 @@ var Command = cli.Command{ }, }, append(platformRunFlags, append(append(append(commands.SnapshotterFlags, []cli.Flag{commands.SnapshotterLabels}...), - commands.ContainerFlags...),flags.ImageDecryptionFlags...)...)...), + commands.ContainerFlags...), flags.ImageDecryptionFlags...)...)...), Action: func(context *cli.Context) error { var ( err error