Skip to content

Commit

Permalink
Merge pull request #24861 from Luap99/debian-fixes
Browse files Browse the repository at this point in the history
Some debian test fixes
  • Loading branch information
openshift-merge-bot[bot] authored Dec 19, 2024
2 parents 7ba410a + f2f6eb8 commit 0642bb1
Show file tree
Hide file tree
Showing 8 changed files with 47 additions and 40 deletions.
5 changes: 4 additions & 1 deletion cmd/podman/common/completion.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import (
"github.com/containers/common/pkg/config"
"github.com/containers/common/pkg/ssh"
"github.com/containers/image/v5/pkg/sysregistriesv2"
imageTypes "github.com/containers/image/v5/types"
"github.com/containers/podman/v5/cmd/podman/registry"
"github.com/containers/podman/v5/libpod/define"
"github.com/containers/podman/v5/libpod/events"
Expand Down Expand Up @@ -276,7 +277,9 @@ func getSecrets(cmd *cobra.Command, toComplete string, cType completeType) ([]st
}

func getRegistries() ([]string, cobra.ShellCompDirective) {
regs, err := sysregistriesv2.UnqualifiedSearchRegistries(nil)
sysCtx := &imageTypes.SystemContext{}
SetRegistriesConfPath(sysCtx)
regs, err := sysregistriesv2.UnqualifiedSearchRegistries(sysCtx)
if err != nil {
cobra.CompErrorln(err.Error())
return nil, cobra.ShellCompDirectiveNoFileComp
Expand Down
24 changes: 24 additions & 0 deletions cmd/podman/common/registries.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package common

import (
"os"

"github.com/containers/image/v5/types"
)

// SetRegistriesConfPath sets the registries.conf path for the specified context.
// NOTE: this is a verbatim copy from c/common/libimage which we're not using
// to prevent leaking c/storage into this file. Maybe this should go into c/image?
func SetRegistriesConfPath(systemContext *types.SystemContext) {
if systemContext.SystemRegistriesConfPath != "" {
return
}
if envOverride, ok := os.LookupEnv("CONTAINERS_REGISTRIES_CONF"); ok {
systemContext.SystemRegistriesConfPath = envOverride
return
}
if envOverride, ok := os.LookupEnv("REGISTRIES_CONFIG_PATH"); ok {
systemContext.SystemRegistriesConfPath = envOverride
return
}
}
19 changes: 1 addition & 18 deletions cmd/podman/login.go
Original file line number Diff line number Diff line change
Expand Up @@ -98,24 +98,7 @@ func login(cmd *cobra.Command, args []string) error {
sysCtx := &types.SystemContext{
DockerInsecureSkipTLSVerify: skipTLS,
}
setRegistriesConfPath(sysCtx)
common.SetRegistriesConfPath(sysCtx)
loginOptions.GetLoginSet = cmd.Flag("get-login").Changed
return auth.Login(context.Background(), sysCtx, &loginOptions.LoginOptions, args)
}

// setRegistriesConfPath sets the registries.conf path for the specified context.
// NOTE: this is a verbatim copy from c/common/libimage which we're not using
// to prevent leaking c/storage into this file. Maybe this should go into c/image?
func setRegistriesConfPath(systemContext *types.SystemContext) {
if systemContext.SystemRegistriesConfPath != "" {
return
}
if envOverride, ok := os.LookupEnv("CONTAINERS_REGISTRIES_CONF"); ok {
systemContext.SystemRegistriesConfPath = envOverride
return
}
if envOverride, ok := os.LookupEnv("REGISTRIES_CONFIG_PATH"); ok {
systemContext.SystemRegistriesConfPath = envOverride
return
}
}
2 changes: 1 addition & 1 deletion cmd/podman/logout.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,6 @@ func init() {
// Implementation of podman-logout.
func logout(cmd *cobra.Command, args []string) error {
sysCtx := &types.SystemContext{}
setRegistriesConfPath(sysCtx)
common.SetRegistriesConfPath(sysCtx)
return auth.Logout(sysCtx, &logoutOptions, args)
}
10 changes: 0 additions & 10 deletions test/e2e/common_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ import (
"strconv"
"strings"
"sync"
"syscall"
"testing"
"time"

Expand Down Expand Up @@ -1469,11 +1468,6 @@ func CopyDirectory(srcDir, dest string) error {
return err
}

stat, ok := fileInfo.Sys().(*syscall.Stat_t)
if !ok {
return fmt.Errorf("failed to get raw syscall.Stat_t data for %q", sourcePath)
}

switch fileInfo.Mode() & os.ModeType {
case os.ModeDir:
if err := os.MkdirAll(destPath, 0755); err != nil {
Expand All @@ -1492,10 +1486,6 @@ func CopyDirectory(srcDir, dest string) error {
}
}

if err := os.Lchown(destPath, int(stat.Uid), int(stat.Gid)); err != nil {
return err
}

fInfo, err := entry.Info()
if err != nil {
return err
Expand Down
10 changes: 2 additions & 8 deletions test/e2e/system_dial_stdio_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,6 @@ var _ = Describe("podman system dial-stdio", func() {
Expect(session.OutputToString()).To(ContainSubstring("Examples: podman system dial-stdio"))
})

It("podman system dial-stdio while service is not running", func() {
if IsRemote() {
Skip("this test is only for non-remote")
}
session := podmanTest.Podman([]string{"system", "dial-stdio"})
session.WaitWithDefaultTimeout()
Expect(session).Should(ExitWithError(125, "Error: failed to open connection to podman"))
})
// TODO: this should have a proper connection test where we spawn a server
// and the use dial-stdio to connect to it and send data.
})
9 changes: 7 additions & 2 deletions test/system/600-completion.bats
Original file line number Diff line number Diff line change
Expand Up @@ -168,10 +168,10 @@ function check_shell_completion() {

*REGISTRY*)
run_completion "$@" $cmd "${extra_args[@]}" ""
### FIXME how can we get the configured registries?
_check_completion_end NoFileComp
### FIXME this fails if no registries are configured
assert "${#lines[@]}" -gt 2 "$* $cmd: No REGISTRIES found in suggestions"
# We can assume quay.io as we force our own CONTAINERS_REGISTRIES_CONF below.
assert "${lines[0]}" == "quay.io" "unqualified-search-registries from registries.conf listed"

match=true
# resume
Expand Down Expand Up @@ -311,6 +311,11 @@ function _check_no_suggestions() {
# create secret
run_podman secret create $random_secret_name $secret_file

# create our own registries.conf so we know what registry is set
local CONTAINERS_REGISTRIES_CONF="$PODMAN_TMPDIR/registries.conf"
echo 'unqualified-search-registries = ["quay.io"]' > "$CONTAINERS_REGISTRIES_CONF"
export CONTAINERS_REGISTRIES_CONF

# Called with no args -- start with 'podman --help'. check_shell_completion() will
# recurse for any subcommands.
check_shell_completion
Expand Down
8 changes: 8 additions & 0 deletions test/system/700-play.bats
Original file line number Diff line number Diff line change
Expand Up @@ -1001,6 +1001,14 @@ _EOF
# Remove the local image to make sure it will be pulled again
run_podman image rm --ignore $from_image

# The error below assumes unqualified-search registries exist, however the default
# distro config may not set some and thus resulting in a different error message.
# We could try to match a third or or simply force a know static config to trigger
# the right error.
local CONTAINERS_REGISTRIES_CONF="$PODMAN_TMPDIR/registries.conf"
echo 'unqualified-search-registries = ["quay.io"]' > "$CONTAINERS_REGISTRIES_CONF"
export CONTAINERS_REGISTRIES_CONF

_write_test_yaml command=id image=$userimage
run_podman 125 play kube --build --start=false $TESTYAML
assert "$output" "=~" \
Expand Down

0 comments on commit 0642bb1

Please sign in to comment.