mirror of https://github.com/containers/podman.git
commit
95ff349de2
|
|
@ -45,7 +45,6 @@ linters:
|
|||
- gocyclo
|
||||
- lll
|
||||
- unconvert
|
||||
- errcheck
|
||||
- gosec
|
||||
- maligned
|
||||
- gomoddirectives
|
||||
|
|
@ -65,4 +64,4 @@ linters:
|
|||
linters-settings:
|
||||
errcheck:
|
||||
check-blank: false
|
||||
ignore: encoding/json:^Unmarshal,fmt:.*
|
||||
ignore: fmt:.*
|
||||
|
|
|
|||
|
|
@ -214,7 +214,7 @@ func create(cmd *cobra.Command, args []string) error {
|
|||
ret, err := parsers.ParseUintList(copy)
|
||||
copy = ""
|
||||
if err != nil {
|
||||
errors.Wrapf(err, "could not parse list")
|
||||
return errors.Wrapf(err, "could not parse list")
|
||||
}
|
||||
var vals []int
|
||||
for ind, val := range ret {
|
||||
|
|
|
|||
|
|
@ -153,7 +153,9 @@ func persistentPreRunE(cmd *cobra.Command, args []string) error {
|
|||
*runtime,
|
||||
)
|
||||
}
|
||||
runtimeFlag.Value.Set(*runtime)
|
||||
if err := runtimeFlag.Value.Set(*runtime); err != nil {
|
||||
return err
|
||||
}
|
||||
runtimeFlag.Changed = true
|
||||
logrus.Debugf("Checkpoint was created using '%s'. Restore will use the same runtime", *runtime)
|
||||
} else if cfg.RuntimePath != *runtime {
|
||||
|
|
|
|||
|
|
@ -61,7 +61,9 @@ func inspect(cmd *cobra.Command, args []string) error {
|
|||
return err
|
||||
}
|
||||
defer w.Flush()
|
||||
tmpl.Execute(w, inspected)
|
||||
if err := tmpl.Execute(w, inspected); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
buf, err := json.MarshalIndent(inspected, "", " ")
|
||||
if err != nil {
|
||||
|
|
|
|||
|
|
@ -81,7 +81,10 @@ func reset(cmd *cobra.Command, args []string) {
|
|||
}
|
||||
|
||||
// Purge all the external containers with storage
|
||||
registry.ContainerEngine().ContainerRm(registry.Context(), listCtnIds, entities.RmOptions{Force: true, All: true, Ignore: true, Volumes: true})
|
||||
_, err := registry.ContainerEngine().ContainerRm(registry.Context(), listCtnIds, entities.RmOptions{Force: true, All: true, Ignore: true, Volumes: true})
|
||||
if err != nil {
|
||||
logrus.Error(err)
|
||||
}
|
||||
// Shutdown all running engines, `reset` will hijack repository
|
||||
registry.ContainerEngine().Shutdown(registry.Context())
|
||||
registry.ImageEngine().Shutdown(registry.Context())
|
||||
|
|
|
|||
1
go.mod
1
go.mod
|
|
@ -42,7 +42,6 @@ require (
|
|||
github.com/json-iterator/go v1.1.12
|
||||
github.com/mattn/go-isatty v0.0.14
|
||||
github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6
|
||||
github.com/mrunalp/fileutils v0.5.0
|
||||
github.com/nxadm/tail v1.4.8
|
||||
github.com/onsi/ginkgo v1.16.5
|
||||
github.com/onsi/gomega v1.19.0
|
||||
|
|
|
|||
1
go.sum
1
go.sum
|
|
@ -1030,7 +1030,6 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A=
|
|||
github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=
|
||||
github.com/mozilla/scribe v0.0.0-20180711195314-fb71baf557c1/go.mod h1:FIczTrinKo8VaLxe6PWTPEXRXDIHz2QAwiaBaP5/4a8=
|
||||
github.com/mozilla/tls-observatory v0.0.0-20210609171429-7bc42856d2e5/go.mod h1:FUqVoUPHSEdDR0MnFM3Dh8AU0pZHLXUD127SAJGER/s=
|
||||
github.com/mrunalp/fileutils v0.5.0 h1:NKzVxiH7eSk+OQ4M+ZYW1K6h27RUV3MI6NUTsHhU6Z4=
|
||||
github.com/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ=
|
||||
github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
|
||||
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
|
||||
|
|
|
|||
|
|
@ -48,7 +48,11 @@ func (c *Container) copyFromArchive(path string, chown bool, rename map[string]s
|
|||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
unmount = func() { c.unmount(false) }
|
||||
unmount = func() {
|
||||
if err := c.unmount(false); err != nil {
|
||||
logrus.Errorf("Failed to unmount container: %v", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if c.state.State == define.ContainerStateRunning {
|
||||
|
|
@ -117,7 +121,11 @@ func (c *Container) copyToArchive(path string, writer io.Writer) (func() error,
|
|||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
unmount = func() { c.unmount(false) }
|
||||
unmount = func() {
|
||||
if err := c.unmount(false); err != nil {
|
||||
logrus.Errorf("Failed to unmount container: %v", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
statInfo, resolvedRoot, resolvedPath, err := c.stat(mountPoint, path)
|
||||
|
|
|
|||
|
|
@ -1180,7 +1180,11 @@ func (c *Container) createCheckpointImage(ctx context.Context, options Container
|
|||
return err
|
||||
}
|
||||
// Clean-up buildah working container
|
||||
defer importBuilder.Delete()
|
||||
defer func() {
|
||||
if err := importBuilder.Delete(); err != nil {
|
||||
logrus.Errorf("Image builder delete failed: %v", err)
|
||||
}
|
||||
}()
|
||||
|
||||
if err := c.prepareCheckpointExport(); err != nil {
|
||||
return err
|
||||
|
|
@ -1201,7 +1205,9 @@ func (c *Container) createCheckpointImage(ctx context.Context, options Container
|
|||
|
||||
// Copy checkpoint from temporary tar file in the image
|
||||
addAndCopyOptions := buildah.AddAndCopyOptions{}
|
||||
importBuilder.Add("", true, addAndCopyOptions, options.TargetFile)
|
||||
if err := importBuilder.Add("", true, addAndCopyOptions, options.TargetFile); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := c.addCheckpointImageMetadata(importBuilder); err != nil {
|
||||
return err
|
||||
|
|
@ -1543,7 +1549,11 @@ func (c *Container) importCheckpointImage(ctx context.Context, imageID string) e
|
|||
}
|
||||
|
||||
mountPoint, err := img.Mount(ctx, nil, "")
|
||||
defer img.Unmount(true)
|
||||
defer func() {
|
||||
if err := c.unmount(true); err != nil {
|
||||
logrus.Errorf("Failed to unmount container: %v", err)
|
||||
}
|
||||
}()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1034,7 +1034,11 @@ func generateKubeSecurityContext(c *Container) (*v1.SecurityContext, error) {
|
|||
if err != nil {
|
||||
return nil, errors.Wrapf(err, "failed to mount %s mountpoint", c.ID())
|
||||
}
|
||||
defer c.unmount(false)
|
||||
defer func() {
|
||||
if err := c.unmount(false); err != nil {
|
||||
logrus.Errorf("Failed to unmount container: %v", err)
|
||||
}
|
||||
}()
|
||||
}
|
||||
logrus.Debugf("Looking in container for user: %s", c.User())
|
||||
|
||||
|
|
|
|||
|
|
@ -488,7 +488,7 @@ func (r *Runtime) GetRootlessNetNs(new bool) (*RootlessNetNS, error) {
|
|||
pid := strconv.Itoa(cmd.Process.Pid)
|
||||
err = ioutil.WriteFile(filepath.Join(rootlessNetNsDir, rootlessNetNsSilrp4netnsPidFile), []byte(pid), 0700)
|
||||
if err != nil {
|
||||
errors.Wrap(err, "unable to write rootless-netns slirp4netns pid file")
|
||||
return nil, errors.Wrap(err, "unable to write rootless-netns slirp4netns pid file")
|
||||
}
|
||||
|
||||
defer func() {
|
||||
|
|
|
|||
|
|
@ -274,11 +274,15 @@ func readStdio(conn *net.UnixConn, streams *define.AttachStreams, receiveStdoutE
|
|||
var err error
|
||||
select {
|
||||
case err = <-receiveStdoutError:
|
||||
conn.CloseWrite()
|
||||
if err := conn.CloseWrite(); err != nil {
|
||||
logrus.Errorf("Failed to close stdin: %v", err)
|
||||
}
|
||||
return err
|
||||
case err = <-stdinDone:
|
||||
if err == define.ErrDetach {
|
||||
conn.CloseWrite()
|
||||
if err := conn.CloseWrite(); err != nil {
|
||||
logrus.Errorf("Failed to close stdin: %v", err)
|
||||
}
|
||||
return err
|
||||
}
|
||||
if err == nil {
|
||||
|
|
|
|||
|
|
@ -513,7 +513,9 @@ func (r *Runtime) setupContainer(ctx context.Context, ctr *Container) (_ *Contai
|
|||
case define.NoLogging, define.PassthroughLogging:
|
||||
break
|
||||
case define.JournaldLogging:
|
||||
ctr.initializeJournal(ctx)
|
||||
if err := ctr.initializeJournal(ctx); err != nil {
|
||||
return nil, fmt.Errorf("failed to initialize journal: %w", err)
|
||||
}
|
||||
default:
|
||||
if ctr.config.LogPath == "" {
|
||||
ctr.config.LogPath = filepath.Join(ctr.config.StaticDir, "ctr.log")
|
||||
|
|
|
|||
|
|
@ -55,8 +55,11 @@ func WaitForFile(path string, chWait chan error, timeout time.Duration) (bool, e
|
|||
if err := watcher.Add(filepath.Dir(path)); err == nil {
|
||||
inotifyEvents = watcher.Events
|
||||
}
|
||||
defer watcher.Close()
|
||||
defer watcher.Remove(filepath.Dir(path))
|
||||
defer func() {
|
||||
if err := watcher.Close(); err != nil {
|
||||
logrus.Errorf("Failed to close fsnotify watcher: %v", err)
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
var timeoutChan <-chan time.Time
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ func NewAPIDecoder() *schema.Decoder {
|
|||
d.RegisterConverter(map[string][]string{}, convertURLValuesString)
|
||||
d.RegisterConverter(time.Time{}, convertTimeString)
|
||||
d.RegisterConverter(define.ContainerStatus(0), convertContainerStatusString)
|
||||
d.RegisterConverter(map[string]string{}, convertStringMap)
|
||||
|
||||
var Signal syscall.Signal
|
||||
d.RegisterConverter(Signal, convertSignal)
|
||||
|
|
@ -48,6 +49,15 @@ func convertURLValuesString(query string) reflect.Value {
|
|||
return reflect.ValueOf(f)
|
||||
}
|
||||
|
||||
func convertStringMap(query string) reflect.Value {
|
||||
res := make(map[string]string)
|
||||
err := json.Unmarshal([]byte(query), &res)
|
||||
if err != nil {
|
||||
logrus.Infof("convertStringMap: Failed to Unmarshal %s: %s", query, err.Error())
|
||||
}
|
||||
return reflect.ValueOf(res)
|
||||
}
|
||||
|
||||
func convertContainerStatusString(query string) reflect.Value {
|
||||
result, err := define.StringToContainerStatus(query)
|
||||
if err != nil {
|
||||
|
|
|
|||
|
|
@ -1,9 +1,7 @@
|
|||
package libpod
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
"reflect"
|
||||
|
||||
"github.com/containers/podman/v4/libpod"
|
||||
"github.com/containers/podman/v4/pkg/api/handlers/utils"
|
||||
|
|
@ -20,12 +18,6 @@ func CreateSecret(w http.ResponseWriter, r *http.Request) {
|
|||
decoder = r.Context().Value(api.DecoderKey).(*schema.Decoder)
|
||||
)
|
||||
|
||||
decoder.RegisterConverter(map[string]string{}, func(str string) reflect.Value {
|
||||
res := make(map[string]string)
|
||||
json.Unmarshal([]byte(str), &res)
|
||||
return reflect.ValueOf(res)
|
||||
})
|
||||
|
||||
query := struct {
|
||||
Name string `schema:"name"`
|
||||
Driver string `schema:"driver"`
|
||||
|
|
|
|||
|
|
@ -641,7 +641,11 @@ func (ic *ContainerEngine) ContainerRestore(ctx context.Context, namesOrIds []st
|
|||
}
|
||||
restoreOptions.CheckpointImageID = img.ID()
|
||||
mountPoint, err := img.Mount(ctx, nil, "")
|
||||
defer img.Unmount(true)
|
||||
defer func() {
|
||||
if err := img.Unmount(true); err != nil {
|
||||
logrus.Errorf("Failed to unmount image: %v", err)
|
||||
}
|
||||
}()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -68,9 +68,15 @@ func TestNewMachineFile(t *testing.T) {
|
|||
|
||||
p := "/var/tmp/podman/my.sock"
|
||||
longp := filepath.Join(longTemp, utils.RandomString(100), "my.sock")
|
||||
os.MkdirAll(filepath.Dir(longp), 0755)
|
||||
f, _ := os.Create(longp)
|
||||
f.Close()
|
||||
err = os.MkdirAll(filepath.Dir(longp), 0755)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
f, err := os.Create(longp)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
_ = f.Close()
|
||||
sym := "my.sock"
|
||||
longSym := filepath.Join(homedir, ".podman", sym)
|
||||
|
||||
|
|
@ -120,14 +126,15 @@ func TestNewMachineFile(t *testing.T) {
|
|||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
tt := tt
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
got, err := machine.NewMachineFile(tt.args.path, tt.args.symlink) //nolint: scopelint
|
||||
if (err != nil) != tt.wantErr { //nolint: scopelint
|
||||
t.Errorf("NewMachineFile() error = %v, wantErr %v", err, tt.wantErr) //nolint: scopelint
|
||||
got, err := machine.NewMachineFile(tt.args.path, tt.args.symlink)
|
||||
if (err != nil) != tt.wantErr {
|
||||
t.Errorf("NewMachineFile() error = %v, wantErr %v", err, tt.wantErr)
|
||||
return
|
||||
}
|
||||
if !reflect.DeepEqual(got, tt.want) { //nolint: scopelint
|
||||
t.Errorf("NewMachineFile() got = %v, want %v", got, tt.want) //nolint: scopelint
|
||||
if !reflect.DeepEqual(got, tt.want) {
|
||||
t.Errorf("NewMachineFile() got = %v, want %v", got, tt.want)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -484,12 +484,11 @@ func (v *MachineVM) Start(name string, _ machine.StartOptions) error {
|
|||
if err := v.writeConfig(); err != nil {
|
||||
return fmt.Errorf("writing JSON file: %w", err)
|
||||
}
|
||||
defer func() error {
|
||||
defer func() {
|
||||
v.Starting = false
|
||||
if err := v.writeConfig(); err != nil {
|
||||
return fmt.Errorf("writing JSON file: %w", err)
|
||||
logrus.Errorf("Writing JSON file: %v", err)
|
||||
}
|
||||
return nil
|
||||
}()
|
||||
if v.isIncompatible() {
|
||||
logrus.Errorf("machine %q is incompatible with this release of podman and needs to be recreated, starting for recovery only", v.Name)
|
||||
|
|
|
|||
|
|
@ -22,8 +22,6 @@ var _ = Describe("Podman attach", func() {
|
|||
Expect(err).To(BeNil())
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
err = podmanTest.SeedImages()
|
||||
Expect(err).To(BeNil())
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -66,7 +66,6 @@ var _ = Describe("Podman Benchmark Suite", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
|
||||
timedir, err = CreateTempDirInTempDir()
|
||||
if err != nil {
|
||||
os.Exit(1)
|
||||
|
|
|
|||
|
|
@ -533,7 +533,10 @@ subdir**`
|
|||
|
||||
// make cwd as context root path
|
||||
Expect(os.Chdir(contextDir)).ToNot(HaveOccurred())
|
||||
defer os.Chdir(cwd)
|
||||
defer func() {
|
||||
err := os.Chdir(cwd)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
}()
|
||||
|
||||
By("Test .containerignore filtering subdirectory")
|
||||
err = ioutil.WriteFile(filepath.Join(contextDir, ".containerignore"), []byte(`subdir/`), 0644)
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@ var _ = Describe("Podman checkpoint", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
// Check if the runtime implements checkpointing. Currently only
|
||||
// runc's checkpoint/restore implementation is supported.
|
||||
cmd := exec.Command(podmanTest.OCIRuntime, "checkpoint", "--help")
|
||||
|
|
|
|||
|
|
@ -41,8 +41,6 @@ var _ = Describe("Podman checkpoint", func() {
|
|||
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
err = podmanTest.SeedImages()
|
||||
Expect(err).To(BeNil())
|
||||
// Check if the runtime implements checkpointing. Currently only
|
||||
// runc's checkpoint/restore implementation is supported.
|
||||
cmd := exec.Command(podmanTest.OCIRuntime, "checkpoint", "--help")
|
||||
|
|
|
|||
|
|
@ -24,8 +24,6 @@ var _ = Describe("Podman commit", func() {
|
|||
Expect(err).To(BeNil())
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
err = podmanTest.SeedImages()
|
||||
Expect(err).To(BeNil())
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -861,9 +861,6 @@ func (p *PodmanTestIntegration) makeOptions(args []string, noEvents, noCache boo
|
|||
|
||||
podmanOptions := strings.Split(fmt.Sprintf("%s--root %s --runroot %s --runtime %s --conmon %s --network-config-dir %s --cgroup-manager %s --tmpdir %s --events-backend %s",
|
||||
debug, p.Root, p.RunRoot, p.OCIRuntime, p.ConmonBinary, p.NetworkConfigDir, p.CgroupManager, p.TmpDir, eventsType), " ")
|
||||
if os.Getenv("HOOK_OPTION") != "" {
|
||||
podmanOptions = append(podmanOptions, os.Getenv("HOOK_OPTION"))
|
||||
}
|
||||
|
||||
if !p.RemoteTest {
|
||||
podmanOptions = append(podmanOptions, "--network-backend", p.NetworkBackend.ToString())
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@ var _ = Describe("Podman container clone", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -83,7 +83,6 @@ var _ = Describe("Podman create data volume", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -25,7 +25,6 @@ var _ = Describe("Podman container inspect", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@ var _ = Describe("Verify podman containers.conf usage", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
os.Setenv("CONTAINERS_CONF", "config/containers.conf")
|
||||
if IsRemote() {
|
||||
podmanTest.RestartRemoteService()
|
||||
|
|
|
|||
|
|
@ -31,7 +31,6 @@ var _ = Describe("Podman cp", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -25,7 +25,6 @@ var _ = Describe("Podman create with --ip flag", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
// Cleanup the CNI networks used by the tests
|
||||
os.RemoveAll("/var/lib/cni/networks/podman")
|
||||
})
|
||||
|
|
|
|||
|
|
@ -25,7 +25,6 @@ var _ = Describe("Podman run with --mac-address flag", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
// Cleanup the CNI networks used by the tests
|
||||
os.RemoveAll("/var/lib/cni/networks/podman")
|
||||
})
|
||||
|
|
|
|||
|
|
@ -27,8 +27,6 @@ var _ = Describe("Podman create", func() {
|
|||
Expect(err).To(BeNil())
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
err = podmanTest.SeedImages()
|
||||
Expect(err).To(BeNil())
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
@ -176,7 +174,8 @@ var _ = Describe("Podman create", func() {
|
|||
// tests are passing inside a container.
|
||||
|
||||
mountPath := filepath.Join(podmanTest.TempDir, "secrets")
|
||||
os.Mkdir(mountPath, 0755)
|
||||
err := os.Mkdir(mountPath, 0755)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
session := podmanTest.Podman([]string{"create", "--log-driver", "k8s-file", "--name", "test", "--mount", fmt.Sprintf("type=bind,src=%s,target=/create/test", mountPath), ALPINE, "grep", "/create/test", "/proc/self/mountinfo"})
|
||||
session.WaitWithDefaultTimeout()
|
||||
Expect(session).Should(Exit(0))
|
||||
|
|
@ -212,7 +211,8 @@ var _ = Describe("Podman create", func() {
|
|||
Expect(session.OutputToString()).To(ContainSubstring("shared"))
|
||||
|
||||
mountPath = filepath.Join(podmanTest.TempDir, "scratchpad")
|
||||
os.Mkdir(mountPath, 0755)
|
||||
err = os.Mkdir(mountPath, 0755)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
session = podmanTest.Podman([]string{"create", "--log-driver", "k8s-file", "--name", "test_tmpfs", "--mount", "type=tmpfs,target=/create/test", ALPINE, "grep", "/create/test", "/proc/self/mountinfo"})
|
||||
session.WaitWithDefaultTimeout()
|
||||
Expect(session).Should(Exit(0))
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ var _ = Describe("Podman diff", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@ var _ = Describe("Podman events", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -27,7 +27,6 @@ var _ = Describe("Podman exec", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@ var _ = Describe("Podman export", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@ var _ = Describe("Podman generate kube", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@ var _ = Describe("Podman generate systemd", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
@ -581,6 +580,7 @@ var _ = Describe("Podman generate systemd", func() {
|
|||
})
|
||||
|
||||
It("podman generate systemd --new create command with double curly braces", func() {
|
||||
SkipIfInContainer("journald inside a container doesn't work")
|
||||
// Regression test for #9034
|
||||
session := podmanTest.Podman([]string{"create", "--name", "foo", "--log-driver=journald", "--log-opt=tag={{.Name}}", ALPINE})
|
||||
session.WaitWithDefaultTimeout()
|
||||
|
|
|
|||
|
|
@ -28,14 +28,13 @@ var _ = Describe("Podman healthcheck run", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
podmanTest.Cleanup()
|
||||
f := CurrentGinkgoTestDescription()
|
||||
timedResult := fmt.Sprintf("Test: %s completed in %f seconds", f.TestText, f.Duration.Seconds())
|
||||
GinkgoWriter.Write([]byte(timedResult))
|
||||
_, _ = GinkgoWriter.Write([]byte(timedResult))
|
||||
|
||||
})
|
||||
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@ var _ = Describe("Podman history", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
"cmd" : [".*"],
|
||||
"hook" : "/tmp/checkhook.sh",
|
||||
"stage" : [ "prestart" ]
|
||||
}
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
#!/bin/sh
|
||||
echo $@ >> /run/hookscheck
|
||||
read line
|
||||
echo $line >> /run/hookscheck
|
||||
|
|
@ -28,8 +28,6 @@ var _ = Describe("Podman image sign", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
|
||||
tempGNUPGHOME := filepath.Join(podmanTest.TempDir, "tmpGPG")
|
||||
err := os.Mkdir(tempGNUPGHOME, os.ModePerm)
|
||||
Expect(err).To(BeNil())
|
||||
|
|
|
|||
|
|
@ -27,7 +27,6 @@ var _ = Describe("Podman images", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@ var _ = Describe("Podman import", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@ var _ = Describe("Podman init", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@ var _ = Describe("Podman inspect", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/containers/podman/v4/pkg/rootless"
|
||||
. "github.com/onsi/gomega"
|
||||
)
|
||||
|
||||
func IsRemote() bool {
|
||||
|
|
@ -57,7 +58,8 @@ func (p *PodmanTestIntegration) setDefaultRegistriesConfigEnv() {
|
|||
func (p *PodmanTestIntegration) setRegistriesConfigEnv(b []byte) {
|
||||
outfile := filepath.Join(p.TempDir, "registries.conf")
|
||||
os.Setenv("CONTAINERS_REGISTRIES_CONF", outfile)
|
||||
ioutil.WriteFile(outfile, b, 0644)
|
||||
err := ioutil.WriteFile(outfile, b, 0644)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
}
|
||||
|
||||
func resetRegistriesConfigEnv() {
|
||||
|
|
@ -71,7 +73,8 @@ func PodmanTestCreate(tempDir string) *PodmanTestIntegration {
|
|||
|
||||
func (p *PodmanTestIntegration) StartRemoteService() {
|
||||
if os.Geteuid() == 0 {
|
||||
os.MkdirAll("/run/podman", 0755)
|
||||
err := os.MkdirAll("/run/podman", 0755)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
}
|
||||
|
||||
args := []string{}
|
||||
|
|
@ -88,7 +91,8 @@ func (p *PodmanTestIntegration) StartRemoteService() {
|
|||
command.Stdout = os.Stdout
|
||||
command.Stderr = os.Stderr
|
||||
fmt.Printf("Running: %s %s\n", p.PodmanBinary, strings.Join(podmanOptions, " "))
|
||||
command.Start()
|
||||
err := command.Start()
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
command.SysProcAttr = &syscall.SysProcAttr{Setpgid: true}
|
||||
p.RemoteCommand = command
|
||||
p.RemoteSession = command.Process
|
||||
|
|
@ -134,9 +138,6 @@ func getRemoteOptions(p *PodmanTestIntegration, args []string) []string {
|
|||
networkDir := p.NetworkConfigDir
|
||||
podmanOptions := strings.Split(fmt.Sprintf("--root %s --runroot %s --runtime %s --conmon %s --network-config-dir %s --cgroup-manager %s",
|
||||
p.Root, p.RunRoot, p.OCIRuntime, p.ConmonBinary, networkDir, p.CgroupManager), " ")
|
||||
if os.Getenv("HOOK_OPTION") != "" {
|
||||
podmanOptions = append(podmanOptions, os.Getenv("HOOK_OPTION"))
|
||||
}
|
||||
if p.NetworkBackend.ToString() == "netavark" {
|
||||
podmanOptions = append(podmanOptions, "--network-backend", "netavark")
|
||||
}
|
||||
|
|
@ -145,11 +146,6 @@ func getRemoteOptions(p *PodmanTestIntegration, args []string) []string {
|
|||
return podmanOptions
|
||||
}
|
||||
|
||||
// SeedImages restores all the artifacts into the main store for remote tests
|
||||
func (p *PodmanTestIntegration) SeedImages() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// RestoreArtifact puts the cached image into our test store
|
||||
func (p *PodmanTestIntegration) RestoreArtifact(image string) error {
|
||||
tarball := imageTarPath(image)
|
||||
|
|
@ -159,8 +155,12 @@ func (p *PodmanTestIntegration) RestoreArtifact(image string) error {
|
|||
podmanOptions := getRemoteOptions(p, args)
|
||||
command := exec.Command(p.PodmanBinary, podmanOptions...)
|
||||
fmt.Printf("Running: %s %s\n", p.PodmanBinary, strings.Join(podmanOptions, " "))
|
||||
command.Start()
|
||||
command.Wait()
|
||||
if err := command.Start(); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := command.Wait(); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import (
|
|||
"path/filepath"
|
||||
|
||||
"github.com/containers/podman/v4/pkg/rootless"
|
||||
. "github.com/onsi/gomega"
|
||||
)
|
||||
|
||||
func IsRemote() bool {
|
||||
|
|
@ -40,13 +41,15 @@ func (p *PodmanTestIntegration) PodmanExtraFiles(args []string, extraFiles []*os
|
|||
|
||||
func (p *PodmanTestIntegration) setDefaultRegistriesConfigEnv() {
|
||||
defaultFile := filepath.Join(INTEGRATION_ROOT, "test/registries.conf")
|
||||
os.Setenv("CONTAINERS_REGISTRIES_CONF", defaultFile)
|
||||
err := os.Setenv("CONTAINERS_REGISTRIES_CONF", defaultFile)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
}
|
||||
|
||||
func (p *PodmanTestIntegration) setRegistriesConfigEnv(b []byte) {
|
||||
outfile := filepath.Join(p.TempDir, "registries.conf")
|
||||
os.Setenv("CONTAINERS_REGISTRIES_CONF", outfile)
|
||||
ioutil.WriteFile(outfile, b, 0644)
|
||||
err := ioutil.WriteFile(outfile, b, 0644)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
}
|
||||
|
||||
func resetRegistriesConfigEnv() {
|
||||
|
|
@ -70,11 +73,6 @@ func (p *PodmanTestIntegration) RestoreArtifact(image string) error {
|
|||
|
||||
func (p *PodmanTestIntegration) StopRemoteService() {}
|
||||
|
||||
// SeedImages is a no-op for localized testing
|
||||
func (p *PodmanTestIntegration) SeedImages() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// We don't support running API service when local
|
||||
func (p *PodmanTestIntegration) StartRemoteService() {
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,7 +36,8 @@ var _ = Describe("Podman login and logout", func() {
|
|||
podmanTest = PodmanTestCreate(tempdir)
|
||||
|
||||
authPath = filepath.Join(podmanTest.TempDir, "auth")
|
||||
os.Mkdir(authPath, os.ModePerm)
|
||||
err := os.Mkdir(authPath, os.ModePerm)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
|
||||
if IsCommandAvailable("getenforce") {
|
||||
ge := SystemExec("getenforce", []string{})
|
||||
|
|
@ -55,11 +56,14 @@ var _ = Describe("Podman login and logout", func() {
|
|||
session.WaitWithDefaultTimeout()
|
||||
Expect(session).Should(Exit(0))
|
||||
|
||||
f, _ := os.Create(filepath.Join(authPath, "htpasswd"))
|
||||
f, err := os.Create(filepath.Join(authPath, "htpasswd"))
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
defer f.Close()
|
||||
|
||||
f.WriteString(session.OutputToString())
|
||||
f.Sync()
|
||||
_, err = f.WriteString(session.OutputToString())
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
err = f.Sync()
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
port := GetPort()
|
||||
server = strings.Join([]string{"localhost", strconv.Itoa(port)}, ":")
|
||||
|
||||
|
|
@ -68,7 +72,8 @@ var _ = Describe("Podman login and logout", func() {
|
|||
testImg = strings.Join([]string{server, "test-alpine"}, "/")
|
||||
|
||||
certDirPath = filepath.Join(os.Getenv("HOME"), ".config/containers/certs.d", server)
|
||||
os.MkdirAll(certDirPath, os.ModePerm)
|
||||
err = os.MkdirAll(certDirPath, os.ModePerm)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
cwd, _ := os.Getwd()
|
||||
certPath = filepath.Join(cwd, "../", "certs")
|
||||
|
||||
|
|
@ -207,7 +212,8 @@ var _ = Describe("Podman login and logout", func() {
|
|||
})
|
||||
It("podman login and logout with --cert-dir", func() {
|
||||
certDir := filepath.Join(podmanTest.TempDir, "certs")
|
||||
os.MkdirAll(certDir, os.ModePerm)
|
||||
err := os.MkdirAll(certDir, os.ModePerm)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
|
||||
setup := SystemExec("cp", []string{filepath.Join(certPath, "domain.crt"), filepath.Join(certDir, "ca.crt")})
|
||||
setup.WaitWithDefaultTimeout()
|
||||
|
|
@ -226,7 +232,8 @@ var _ = Describe("Podman login and logout", func() {
|
|||
})
|
||||
It("podman login and logout with multi registry", func() {
|
||||
certDir := filepath.Join(os.Getenv("HOME"), ".config/containers/certs.d", "localhost:9001")
|
||||
os.MkdirAll(certDir, os.ModePerm)
|
||||
err = os.MkdirAll(certDir, os.ModePerm)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
|
||||
cwd, _ := os.Getwd()
|
||||
certPath = filepath.Join(cwd, "../", "certs")
|
||||
|
|
|
|||
|
|
@ -37,9 +37,6 @@ var _ = Describe("Podman logs", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
if err := podmanTest.SeedImages(); err != nil {
|
||||
os.Exit(1)
|
||||
}
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -36,7 +36,6 @@ var _ = Describe("Podman manifest", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -25,7 +25,6 @@ var _ = Describe("Podman mount", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@ var _ = Describe("Podman namespaces", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@ var _ = Describe("Podman network create", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -45,7 +45,6 @@ var _ = Describe("Podman pause", func() {
|
|||
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@ var _ = Describe("Podman play kube with build", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -1206,8 +1206,6 @@ var _ = Describe("Podman play kube", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
|
||||
kubeYaml = filepath.Join(podmanTest.TempDir, "kube.yaml")
|
||||
})
|
||||
|
||||
|
|
@ -2744,6 +2742,7 @@ MemoryReservation: {{ .HostConfig.MemoryReservation }}`})
|
|||
})
|
||||
|
||||
It("podman play kube applies log driver to containers", func() {
|
||||
SkipIfInContainer("journald inside a container doesn't work")
|
||||
pod := getPod()
|
||||
err := generateKubeYaml("pod", pod, kubeYaml)
|
||||
Expect(err).To(BeNil())
|
||||
|
|
|
|||
|
|
@ -35,7 +35,6 @@ var _ = Describe("Podman pod create", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@ var _ = Describe("Podman pod create", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ var _ = Describe("Podman init containers", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -25,7 +25,6 @@ var _ = Describe("Podman pod inspect", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@ var _ = Describe("Podman pod kill", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ var _ = Describe("Podman pod pause", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@ var _ = Describe("Podman pod create", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@ var _ = Describe("Podman pod prune", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ var _ = Describe("Podman ps", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@ var _ = Describe("Podman pod restart", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@ var _ = Describe("Podman pod rm", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -27,7 +27,6 @@ var _ = Describe("Podman pod start", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@ var _ = Describe("Podman pod stats", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@ var _ = Describe("Podman pod stop", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -25,7 +25,6 @@ var _ = Describe("Podman top", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -25,7 +25,6 @@ var _ = Describe("Podman port", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -35,7 +35,6 @@ var _ = Describe("Podman prune", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@ var _ = Describe("Podman ps", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -345,7 +345,8 @@ var _ = Describe("Podman pull", func() {
|
|||
|
||||
podmanTest.AddImageToRWStore(cirros)
|
||||
dirpath := filepath.Join(podmanTest.TempDir, "cirros")
|
||||
os.MkdirAll(dirpath, os.ModePerm)
|
||||
err = os.MkdirAll(dirpath, os.ModePerm)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
imgPath := fmt.Sprintf("dir:%s", dirpath)
|
||||
|
||||
session := podmanTest.Podman([]string{"push", "cirros", imgPath})
|
||||
|
|
@ -368,7 +369,8 @@ var _ = Describe("Podman pull", func() {
|
|||
|
||||
podmanTest.AddImageToRWStore(cirros)
|
||||
dirpath := filepath.Join(podmanTest.TempDir, "cirros")
|
||||
os.MkdirAll(dirpath, os.ModePerm)
|
||||
err = os.MkdirAll(dirpath, os.ModePerm)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
imgPath := fmt.Sprintf("oci:%s", dirpath)
|
||||
|
||||
session := podmanTest.Podman([]string{"push", "cirros", imgPath})
|
||||
|
|
@ -387,7 +389,8 @@ var _ = Describe("Podman pull", func() {
|
|||
})
|
||||
|
||||
It("podman pull check quiet", func() {
|
||||
podmanTest.RestoreArtifact(ALPINE)
|
||||
err := podmanTest.RestoreArtifact(ALPINE)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
setup := podmanTest.Podman([]string{"images", ALPINE, "-q", "--no-trunc"})
|
||||
setup.WaitWithDefaultTimeout()
|
||||
Expect(setup).Should(Exit(0))
|
||||
|
|
@ -428,8 +431,10 @@ var _ = Describe("Podman pull", func() {
|
|||
|
||||
// We already tested pulling, so we can save some energy and
|
||||
// just restore local artifacts and tag them.
|
||||
podmanTest.RestoreArtifact(ALPINE)
|
||||
podmanTest.RestoreArtifact(BB)
|
||||
err := podmanTest.RestoreArtifact(ALPINE)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
err = podmanTest.RestoreArtifact(BB)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
|
||||
// What we want is at least two images which have the same name
|
||||
// and are prefixed with two different unqualified-search
|
||||
|
|
|
|||
|
|
@ -101,7 +101,8 @@ var _ = Describe("Podman push", func() {
|
|||
Skip("No registry image for ppc64le")
|
||||
}
|
||||
if rootless.IsRootless() {
|
||||
podmanTest.RestoreArtifact(registry)
|
||||
err := podmanTest.RestoreArtifact(registry)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
}
|
||||
lock := GetPortLock("5000")
|
||||
defer lock.Unlock()
|
||||
|
|
@ -132,8 +133,10 @@ var _ = Describe("Podman push", func() {
|
|||
Skip("No registry image for ppc64le")
|
||||
}
|
||||
authPath := filepath.Join(podmanTest.TempDir, "auth")
|
||||
os.Mkdir(authPath, os.ModePerm)
|
||||
os.MkdirAll("/etc/containers/certs.d/localhost:5000", os.ModePerm)
|
||||
err = os.Mkdir(authPath, os.ModePerm)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
err = os.MkdirAll("/etc/containers/certs.d/localhost:5000", os.ModePerm)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
defer os.RemoveAll("/etc/containers/certs.d/localhost:5000")
|
||||
|
||||
cwd, _ := os.Getwd()
|
||||
|
|
@ -157,11 +160,14 @@ var _ = Describe("Podman push", func() {
|
|||
session.WaitWithDefaultTimeout()
|
||||
Expect(session).Should(Exit(0))
|
||||
|
||||
f, _ := os.Create(filepath.Join(authPath, "htpasswd"))
|
||||
f, err := os.Create(filepath.Join(authPath, "htpasswd"))
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
defer f.Close()
|
||||
|
||||
f.WriteString(session.OutputToString())
|
||||
f.Sync()
|
||||
_, err = f.WriteString(session.OutputToString())
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
err = f.Sync()
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
|
||||
session = podmanTest.Podman([]string{"run", "-d", "-p", "5000:5000", "--name", "registry", "-v",
|
||||
strings.Join([]string{authPath, "/auth"}, ":"), "-e", "REGISTRY_AUTH=htpasswd", "-e",
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@ var _ = Describe("podman rename", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@ var _ = Describe("Podman restart", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@ var _ = Describe("Podman rm", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -25,7 +25,6 @@ var _ = Describe("Podman run networking", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
SkipIfCNI(podmanTest)
|
||||
})
|
||||
|
||||
|
|
|
|||
|
|
@ -42,7 +42,6 @@ var _ = Describe("Podman run", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -30,7 +30,6 @@ var _ = Describe("Podman run with --cgroup-parent", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -23,7 +23,8 @@ var _ = Describe("Podman run exit", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.RestoreArtifact(ALPINE)
|
||||
err = podmanTest.RestoreArtifact(ALPINE)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -33,7 +33,6 @@ var _ = Describe("Podman run cpu", func() {
|
|||
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@ var _ = Describe("Podman run device", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@ var _ = Describe("Podman run dns", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@ var _ = Describe("Podman run entrypoint", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@ var _ = Describe("Podman run", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -25,7 +25,6 @@ var _ = Describe("Podman run exit", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ var _ = Describe("Podman run memory", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@ var _ = Describe("Podman run networking", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
@ -747,11 +746,12 @@ EXPOSE 2004-2005/tcp`, ALPINE)
|
|||
routeAdd := func(gateway string) {
|
||||
gw := net.ParseIP(gateway)
|
||||
route := &netlink.Route{Dst: nil, Gw: gw}
|
||||
netlink.RouteAdd(route)
|
||||
err = netlink.RouteAdd(route)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
}
|
||||
|
||||
setupNetworkNs := func(networkNSName string) {
|
||||
ns.WithNetNSPath("/run/netns/"+networkNSName, func(_ ns.NetNS) error {
|
||||
_ = ns.WithNetNSPath("/run/netns/"+networkNSName, func(_ ns.NetNS) error {
|
||||
loopbackup()
|
||||
linkup("eth0", "46:7f:45:6e:4f:c8", []string{"10.25.40.0/24", "fd04:3e42:4a4e:3381::/64"})
|
||||
linkup("eth1", "56:6e:35:5d:3e:a8", []string{"10.88.0.0/16"})
|
||||
|
|
|
|||
|
|
@ -25,7 +25,6 @@ var _ = Describe("Podman run ns", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@ var _ = Describe("Podman run passwd", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -49,7 +49,6 @@ var _ = Describe("Podman privileged container tests", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@ var _ = Describe("Podman run restart containers", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@ var _ = Describe("Podman run", func() {
|
|||
}
|
||||
podmanTest = PodmanTestCreate(tempdir)
|
||||
podmanTest.Setup()
|
||||
podmanTest.SeedImages()
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue