Skip to content

Commit

Permalink
Merge pull request #5084 from flouthoc/run-use-gettempdir
Browse files Browse the repository at this point in the history
run: use `internal.GetTempDir` with `os.MkdirTemp` for root and bundle path
  • Loading branch information
flouthoc committed Oct 12, 2023
2 parents 21badab + 9c99d7c commit 3c8a3a2
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 6 deletions.
3 changes: 2 additions & 1 deletion image.go
Expand Up @@ -17,6 +17,7 @@ import (
"github.com/containers/buildah/define"
"github.com/containers/buildah/docker"
"github.com/containers/buildah/internal/mkcw"
"github.com/containers/buildah/internal/tmpdir"
"github.com/containers/image/v5/docker/reference"
"github.com/containers/image/v5/image"
"github.com/containers/image/v5/manifest"
Expand Down Expand Up @@ -374,7 +375,7 @@ func (i *containerImageRef) NewImageSource(ctx context.Context, sc *types.System
logrus.Debugf("layer list: %q", layers)

// Make a temporary directory to hold blobs.
path, err := os.MkdirTemp(os.TempDir(), define.Package)
path, err := os.MkdirTemp(tmpdir.GetTempDir(), define.Package)
if err != nil {
return nil, fmt.Errorf("creating temporary directory to hold layer blobs: %w", err)
}
Expand Down
9 changes: 9 additions & 0 deletions internal/tmpdir/tmpdir_test.go
Expand Up @@ -2,6 +2,7 @@ package tmpdir

import (
"os"
"path/filepath"
"testing"

"github.com/containers/common/pkg/config"
Expand All @@ -26,6 +27,14 @@ func TestGetTempDir(t *testing.T) {
err = os.Unsetenv("TMPDIR")
require.NoError(t, err)

// relative TMPDIR should be automatically converted to absolute
err = os.Setenv("TMPDIR", ".")
require.NoError(t, err)
tmpdir = GetTempDir()
assert.True(t, filepath.IsAbs(tmpdir), "path from GetTempDir should always be absolute")
err = os.Unsetenv("TMPDIR")
require.NoError(t, err)

f, err := os.CreateTemp("", "containers.conf-")
require.NoError(t, err)
// close and remove the temporary file at the end of the program
Expand Down
3 changes: 2 additions & 1 deletion pkg/sshagent/sshagent.go
Expand Up @@ -11,6 +11,7 @@ import (
"sync"
"time"

"github.com/containers/buildah/internal/tmpdir"
"github.com/opencontainers/selinux/go-selinux"
"github.com/sirupsen/logrus"
"golang.org/x/crypto/ssh"
Expand Down Expand Up @@ -79,7 +80,7 @@ func (a *AgentServer) Serve(processLabel string) (string, error) {
if err != nil {
return "", err
}
serveDir, err := os.MkdirTemp("", ".buildah-ssh-sock")
serveDir, err := os.MkdirTemp(tmpdir.GetTempDir(), ".buildah-ssh-sock")
if err != nil {
return "", err
}
Expand Down
3 changes: 2 additions & 1 deletion run_freebsd.go
Expand Up @@ -16,6 +16,7 @@ import (
"github.com/containers/buildah/copier"
"github.com/containers/buildah/define"
"github.com/containers/buildah/internal"
"github.com/containers/buildah/internal/tmpdir"
"github.com/containers/buildah/pkg/jail"
"github.com/containers/buildah/pkg/overlay"
"github.com/containers/buildah/pkg/parse"
Expand Down Expand Up @@ -72,7 +73,7 @@ func setChildProcess() error {
}

func (b *Builder) Run(command []string, options RunOptions) error {
p, err := os.MkdirTemp("", Package)
p, err := os.MkdirTemp(tmpdir.GetTempDir(), define.Package)
if err != nil {
return err
}
Expand Down
7 changes: 4 additions & 3 deletions run_linux.go
Expand Up @@ -19,6 +19,7 @@ import (
"github.com/containers/buildah/copier"
"github.com/containers/buildah/define"
"github.com/containers/buildah/internal"
"github.com/containers/buildah/internal/tmpdir"
"github.com/containers/buildah/internal/volumes"
"github.com/containers/buildah/pkg/overlay"
"github.com/containers/buildah/pkg/parse"
Expand Down Expand Up @@ -71,7 +72,7 @@ func setChildProcess() error {

// Run runs the specified command in the container's root filesystem.
func (b *Builder) Run(command []string, options RunOptions) error {
p, err := os.MkdirTemp("", define.Package)
p, err := os.MkdirTemp(tmpdir.GetTempDir(), define.Package)
if err != nil {
return err
}
Expand Down Expand Up @@ -499,7 +500,7 @@ func setupSlirp4netnsNetwork(config *config.Config, netns, cid string, options [
Mask: res.Subnet.Mask,
}}
netStatus := map[string]nettypes.StatusBlock{
slirp4netns.BinaryName: nettypes.StatusBlock{
slirp4netns.BinaryName: {
Interfaces: map[string]nettypes.NetInterface{
"tap0": {
Subnets: []nettypes.NetAddress{{IPNet: subnet}},
Expand Down Expand Up @@ -541,7 +542,7 @@ func setupPasta(config *config.Config, netns string, options []string) (func(),
Mask: net.IPv4Mask(255, 255, 255, 0),
}}
netStatus := map[string]nettypes.StatusBlock{
slirp4netns.BinaryName: nettypes.StatusBlock{
slirp4netns.BinaryName: {
Interfaces: map[string]nettypes.NetInterface{
"tap0": {
Subnets: []nettypes.NetAddress{{IPNet: subnet}},
Expand Down

1 comment on commit 3c8a3a2

@packit-as-a-service
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

podman-next COPR build failed. @containers/packit-build please check.

Please sign in to comment.