mirror of
https://github.com/containers/podman.git
synced 2025-08-06 19:44:14 +08:00
Merge pull request #12213 from flouthoc/system-connection-rm-all
system: Adds support for removing all named destination via `--all`
This commit is contained in:
@ -5,14 +5,14 @@ import (
|
|||||||
"github.com/containers/podman/v3/cmd/podman/common"
|
"github.com/containers/podman/v3/cmd/podman/common"
|
||||||
"github.com/containers/podman/v3/cmd/podman/registry"
|
"github.com/containers/podman/v3/cmd/podman/registry"
|
||||||
"github.com/containers/podman/v3/cmd/podman/system"
|
"github.com/containers/podman/v3/cmd/podman/system"
|
||||||
|
"github.com/pkg/errors"
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
// Skip creating engines since this command will obtain connection information to said engines
|
// Skip creating engines since this command will obtain connection information to said engines
|
||||||
rmCmd = &cobra.Command{
|
rmCmd = &cobra.Command{
|
||||||
Use: "remove NAME",
|
Use: "remove [options] NAME",
|
||||||
Args: cobra.ExactArgs(1),
|
|
||||||
Aliases: []string{"rm"},
|
Aliases: []string{"rm"},
|
||||||
Long: `Delete named destination from podman configuration`,
|
Long: `Delete named destination from podman configuration`,
|
||||||
Short: "Delete named destination",
|
Short: "Delete named destination",
|
||||||
@ -21,6 +21,10 @@ var (
|
|||||||
Example: `podman system connection remove devl
|
Example: `podman system connection remove devl
|
||||||
podman system connection rm devl`,
|
podman system connection rm devl`,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rmOpts = struct {
|
||||||
|
All bool
|
||||||
|
}{}
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
@ -28,14 +32,31 @@ func init() {
|
|||||||
Command: rmCmd,
|
Command: rmCmd,
|
||||||
Parent: system.ConnectionCmd,
|
Parent: system.ConnectionCmd,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
flags := rmCmd.Flags()
|
||||||
|
flags.BoolVarP(&rmOpts.All, "all", "a", false, "Remove all connections")
|
||||||
}
|
}
|
||||||
|
|
||||||
func rm(_ *cobra.Command, args []string) error {
|
func rm(cmd *cobra.Command, args []string) error {
|
||||||
cfg, err := config.ReadCustomConfig()
|
cfg, err := config.ReadCustomConfig()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if rmOpts.All {
|
||||||
|
if cfg.Engine.ServiceDestinations != nil {
|
||||||
|
for k := range cfg.Engine.ServiceDestinations {
|
||||||
|
delete(cfg.Engine.ServiceDestinations, k)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
cfg.Engine.ActiveService = ""
|
||||||
|
return cfg.Write()
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(args) != 1 {
|
||||||
|
return errors.New("accepts 1 arg(s), received 0")
|
||||||
|
}
|
||||||
|
|
||||||
if cfg.Engine.ServiceDestinations != nil {
|
if cfg.Engine.ServiceDestinations != nil {
|
||||||
delete(cfg.Engine.ServiceDestinations, args[0])
|
delete(cfg.Engine.ServiceDestinations, args[0])
|
||||||
}
|
}
|
||||||
|
@ -4,11 +4,17 @@
|
|||||||
podman\-system\-connection\-remove - Delete named destination
|
podman\-system\-connection\-remove - Delete named destination
|
||||||
|
|
||||||
## SYNOPSIS
|
## SYNOPSIS
|
||||||
**podman system connection remove** *name*
|
**podman system connection remove** [*options*] *name*
|
||||||
|
|
||||||
## DESCRIPTION
|
## DESCRIPTION
|
||||||
Delete named ssh destination.
|
Delete named ssh destination.
|
||||||
|
|
||||||
|
## OPTIONS
|
||||||
|
|
||||||
|
#### **--all**=*false*, **-a**
|
||||||
|
|
||||||
|
Remove all connections.
|
||||||
|
|
||||||
## EXAMPLE
|
## EXAMPLE
|
||||||
```
|
```
|
||||||
$ podman system connection remove production
|
$ podman system connection remove production
|
||||||
|
@ -181,6 +181,31 @@ var _ = Describe("podman system connection", func() {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
It("remove --all", func() {
|
||||||
|
cmd := []string{"system", "connection", "add",
|
||||||
|
"--default",
|
||||||
|
"--identity", "~/.ssh/id_rsa",
|
||||||
|
"QA",
|
||||||
|
"ssh://root@server.fubar.com:2222/run/podman/podman.sock",
|
||||||
|
}
|
||||||
|
session := podmanTest.Podman(cmd)
|
||||||
|
session.WaitWithDefaultTimeout()
|
||||||
|
Expect(session).Should(Exit(0))
|
||||||
|
|
||||||
|
cmd = []string{"system", "connection", "remove", "--all"}
|
||||||
|
session = podmanTest.Podman(cmd)
|
||||||
|
session.WaitWithDefaultTimeout()
|
||||||
|
Expect(session).Should(Exit(0))
|
||||||
|
Expect(session.Out).Should(Say(""))
|
||||||
|
|
||||||
|
cmd = []string{"system", "connection", "list"}
|
||||||
|
session = podmanTest.Podman(cmd)
|
||||||
|
session.WaitWithDefaultTimeout()
|
||||||
|
Expect(session).Should(Exit(0))
|
||||||
|
Expect(session.Out).Should(Say(""))
|
||||||
|
Expect(session.Err).Should(Say(""))
|
||||||
|
})
|
||||||
|
|
||||||
It("default", func() {
|
It("default", func() {
|
||||||
for _, name := range []string{"devl", "qe"} {
|
for _, name := range []string{"devl", "qe"} {
|
||||||
cmd := []string{"system", "connection", "add",
|
cmd := []string{"system", "connection", "add",
|
||||||
|
@ -34,10 +34,7 @@ function teardown() {
|
|||||||
| xargs -l1 --no-run-if-empty umount
|
| xargs -l1 --no-run-if-empty umount
|
||||||
|
|
||||||
# Remove all system connections
|
# Remove all system connections
|
||||||
run_podman system connection ls --format json
|
run_podman system connection rm --all
|
||||||
while read name; do
|
|
||||||
run_podman system connection rm "$name"
|
|
||||||
done < <(jq -r '.[].Name' <<<"$output")
|
|
||||||
|
|
||||||
basic_teardown
|
basic_teardown
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user