spiegel_podman/cmd/podman/logout.go
Daniel J Walsh 5cbb0b8a66
Fix handling of overridden paths from database
If the first time you run podman in a user account you do a
su - USER, and the second time, you run as the logged in USER
podman fails, because it is not handling the tmpdir definition
in the database. This PR fixes this problem.

vendor containers/common v0.11.1

This should fix a couple of issues we have seen in podman 1.9.1
with handling of libpod.conf.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-05-08 09:27:39 -04:00

51 lines
1.5 KiB
Go

package main
import (
"os"
"github.com/containers/common/pkg/auth"
"github.com/containers/image/v5/types"
"github.com/containers/libpod/cmd/podman/registry"
"github.com/containers/libpod/pkg/domain/entities"
"github.com/containers/libpod/pkg/registries"
"github.com/spf13/cobra"
)
var (
logoutOptions = auth.LogoutOptions{}
logoutCommand = &cobra.Command{
Use: "logout [flags] [REGISTRY]",
Short: "Logout of a container registry",
Long: "Remove the cached username and password for the registry.",
RunE: logout,
Args: cobra.MaximumNArgs(1),
Example: `podman logout quay.io
podman logout --authfile dir/auth.json quay.io
podman logout --all`,
}
)
func init() {
// Note that the local and the remote client behave the same: both
// store credentials locally while the remote client will pass them
// over the wire to the endpoint.
registry.Commands = append(registry.Commands, registry.CliCommand{
Mode: []entities.EngineMode{entities.ABIMode, entities.TunnelMode},
Command: logoutCommand,
})
flags := logoutCommand.Flags()
// Flags from the auth package.
flags.AddFlagSet(auth.GetLogoutFlags(&logoutOptions))
logoutOptions.Stdout = os.Stdout
logoutOptions.AcceptUnspecifiedRegistry = true
}
// Implementation of podman-logout.
func logout(cmd *cobra.Command, args []string) error {
sysCtx := types.SystemContext{
AuthFilePath: logoutOptions.AuthFile,
SystemRegistriesConfPath: registries.SystemRegistriesConfPath(),
}
return auth.Logout(&sysCtx, &logoutOptions, args)
}