mirror of
https://github.com/containers/podman.git
synced 2025-06-26 04:46:57 +08:00
Merge pull request #19182 from Luap99/slow-remote-version
test/e2e: wait for socket
This commit is contained in:
@ -13,7 +13,6 @@ import (
|
||||
"github.com/containers/podman/v4/pkg/domain/entities"
|
||||
"github.com/containers/podman/v4/pkg/domain/entities/types"
|
||||
"github.com/containers/podman/v4/version"
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
func VersionHandler(w http.ResponseWriter, r *http.Request) {
|
||||
@ -45,30 +44,20 @@ func VersionHandler(w http.ResponseWriter, r *http.Request) {
|
||||
"MinAPIVersion": version.APIVersion[version.Libpod][version.MinimalAPI].String(),
|
||||
"Os": goRuntime.GOOS,
|
||||
},
|
||||
}, {
|
||||
Name: "Conmon",
|
||||
Version: info.Host.Conmon.Version,
|
||||
Details: map[string]string{
|
||||
"Package": info.Host.Conmon.Package,
|
||||
},
|
||||
}, {
|
||||
Name: fmt.Sprintf("OCI Runtime (%s)", info.Host.OCIRuntime.Name),
|
||||
Version: info.Host.OCIRuntime.Version,
|
||||
Details: map[string]string{
|
||||
"Package": info.Host.OCIRuntime.Package,
|
||||
},
|
||||
}}
|
||||
|
||||
if conmon, oci, err := runtime.DefaultOCIRuntime().RuntimeInfo(); err != nil {
|
||||
logrus.Warnf("Failed to retrieve Conmon and OCI Information: %q", err.Error())
|
||||
} else {
|
||||
additional := []types.ComponentVersion{
|
||||
{
|
||||
Name: "Conmon",
|
||||
Version: conmon.Version,
|
||||
Details: map[string]string{
|
||||
"Package": conmon.Package,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: fmt.Sprintf("OCI Runtime (%s)", oci.Name),
|
||||
Version: oci.Version,
|
||||
Details: map[string]string{
|
||||
"Package": oci.Package,
|
||||
},
|
||||
},
|
||||
}
|
||||
components = append(components, additional...)
|
||||
}
|
||||
|
||||
apiVersion := version.APIVersion[version.Compat][version.CurrentAPI]
|
||||
minVersion := version.APIVersion[version.Compat][version.MinimalAPI]
|
||||
|
||||
|
@ -57,7 +57,6 @@ type PodmanTestIntegration struct {
|
||||
CgroupManager string
|
||||
Host HostOS
|
||||
TmpDir string
|
||||
RemoteStartErr error
|
||||
}
|
||||
|
||||
var LockTmpDir string
|
||||
|
@ -6,6 +6,7 @@ package integration
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"net"
|
||||
"os"
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
@ -94,7 +95,8 @@ func (p *PodmanTestIntegration) StartRemoteService() {
|
||||
command.SysProcAttr = &syscall.SysProcAttr{Setpgid: true}
|
||||
p.RemoteCommand = command
|
||||
p.RemoteSession = command.Process
|
||||
p.RemoteStartErr = p.DelayForService()
|
||||
err = p.DelayForService()
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
}
|
||||
|
||||
func (p *PodmanTestIntegration) StopRemoteService() {
|
||||
@ -145,16 +147,15 @@ func (p *PodmanTestIntegration) RestoreArtifact(image string) error {
|
||||
}
|
||||
|
||||
func (p *PodmanTestIntegration) DelayForService() error {
|
||||
var session *PodmanSessionIntegration
|
||||
for i := 0; i < 5; i++ {
|
||||
session = p.Podman([]string{"info"})
|
||||
session.WaitWithDefaultTimeout()
|
||||
if session.ExitCode() == 0 {
|
||||
var err error
|
||||
var conn net.Conn
|
||||
for i := 0; i < 100; i++ {
|
||||
conn, err = net.Dial("unix", strings.TrimPrefix(p.RemoteSocket, "unix:"))
|
||||
if err == nil {
|
||||
conn.Close()
|
||||
return nil
|
||||
} else if i == 4 {
|
||||
break
|
||||
}
|
||||
time.Sleep(2 * time.Second)
|
||||
time.Sleep(100 * time.Millisecond)
|
||||
}
|
||||
return fmt.Errorf("service not detected, exit code(%d)", session.ExitCode())
|
||||
return fmt.Errorf("service socket not detected, timeout after 10 seconds: %w", err)
|
||||
}
|
||||
|
Reference in New Issue
Block a user