mirror of
https://github.com/containers/podman.git
synced 2025-10-14 01:35:29 +08:00
Merge pull request #27193 from shiavm006/fix-secret-ls-format-docs
secrets: align 'secret ls' format docs and completion
This commit is contained in:
@ -46,8 +46,8 @@ func init() {
|
|||||||
flags := lsCmd.Flags()
|
flags := lsCmd.Flags()
|
||||||
|
|
||||||
formatFlagName := "format"
|
formatFlagName := "format"
|
||||||
flags.StringVar(&listFlag.format, formatFlagName, "{{range .}}{{.ID}}\t{{.Name}}\t{{.Driver}}\t{{.CreatedAt}}\t{{.UpdatedAt}}\n{{end -}}", "Format volume output using Go template")
|
flags.StringVar(&listFlag.format, formatFlagName, "{{range .}}{{.ID}}\t{{.Name}}\t{{.Driver}}\t{{.CreatedAt}}\t{{.UpdatedAt}}\n{{end -}}", "Format secret output using Go template")
|
||||||
_ = lsCmd.RegisterFlagCompletionFunc(formatFlagName, common.AutocompleteFormat(&entities.SecretInfoReport{}))
|
_ = lsCmd.RegisterFlagCompletionFunc(formatFlagName, common.AutocompleteFormat(&entities.SecretListReport{}))
|
||||||
|
|
||||||
filterFlagName := "filter"
|
filterFlagName := "filter"
|
||||||
flags.StringArrayVarP(&listFlag.filter, filterFlagName, "f", []string{}, "Filter secret output")
|
flags.StringArrayVarP(&listFlag.filter, filterFlagName, "f", []string{}, "Filter secret output")
|
||||||
|
@ -32,16 +32,11 @@ Valid placeholders for the Go template are listed below:
|
|||||||
|
|
||||||
| **Placeholder** | **Description** |
|
| **Placeholder** | **Description** |
|
||||||
| ------------------------ | ----------------------------------------------------------------- |
|
| ------------------------ | ----------------------------------------------------------------- |
|
||||||
| .CreatedAt ... | When secret was created (relative timestamp, human-readable) |
|
| .CreatedAt | When secret was created (relative timestamp, human-readable) |
|
||||||
|
| .Driver | Driver name (string) |
|
||||||
| .ID | ID of secret |
|
| .ID | ID of secret |
|
||||||
| .SecretData | Secret Data (Displayed only with --showsecret option) |
|
| .Name | Name of secret |
|
||||||
| .Spec ... | Details of secret |
|
| .UpdatedAt | When secret was last updated (relative timestamp, human-readable) |
|
||||||
| .Spec.Driver ... | Driver info |
|
|
||||||
| .Spec.Driver.Name | Driver name (string) |
|
|
||||||
| .Spec.Driver.Options ... | Driver options (map of driver-specific options) |
|
|
||||||
| .Spec.Labels ... | Labels for this secret |
|
|
||||||
| .Spec.Name | Name of secret |
|
|
||||||
| .UpdatedAt ... | When secret was last updated (relative timestamp, human-readable) |
|
|
||||||
|
|
||||||
@@option noheading
|
@@option noheading
|
||||||
|
|
||||||
|
@ -325,6 +325,35 @@ var _ = Describe("Podman secret", func() {
|
|||||||
Expect(list.OutputToStringArray()).To(HaveLen(2), list.OutputToString())
|
Expect(list.OutputToStringArray()).To(HaveLen(2), list.OutputToString())
|
||||||
})
|
})
|
||||||
|
|
||||||
|
It("podman secret ls with valid format fields Driver/CreatedAt", func() {
|
||||||
|
secretFilePath := filepath.Join(podmanTest.TempDir, "secret")
|
||||||
|
err := os.WriteFile(secretFilePath, []byte("mysecret"), 0755)
|
||||||
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
|
||||||
|
podmanTest.PodmanExitCleanly("secret", "create", "fmt", secretFilePath)
|
||||||
|
|
||||||
|
// .Driver should be available on SecretListReport
|
||||||
|
list := podmanTest.PodmanExitCleanly("secret", "ls", "--format", "{{.Driver}}")
|
||||||
|
Expect(list.OutputToString()).ToNot(BeEmpty())
|
||||||
|
|
||||||
|
// .CreatedAt should be available and human-readable (e.g., "X ago")
|
||||||
|
list = podmanTest.PodmanExitCleanly("secret", "ls", "--format", "{{.CreatedAt}}")
|
||||||
|
Expect(list.OutputToString()).To(ContainSubstring("ago"))
|
||||||
|
})
|
||||||
|
|
||||||
|
It("podman secret ls with invalid Spec.* format should error", func() {
|
||||||
|
secretFilePath := filepath.Join(podmanTest.TempDir, "secret")
|
||||||
|
err := os.WriteFile(secretFilePath, []byte("mysecret"), 0755)
|
||||||
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
|
||||||
|
podmanTest.PodmanExitCleanly("secret", "create", "fmt2", secretFilePath)
|
||||||
|
|
||||||
|
bad := podmanTest.Podman([]string{"secret", "ls", "--format", "{{.Spec.Name}}"})
|
||||||
|
bad.WaitWithDefaultTimeout()
|
||||||
|
Expect(bad).To(Not(ExitCleanly()))
|
||||||
|
Expect(bad.ErrorToString()).To(ContainSubstring("can't evaluate field Spec"))
|
||||||
|
})
|
||||||
|
|
||||||
It("podman secret rm", func() {
|
It("podman secret rm", func() {
|
||||||
secretFilePath := filepath.Join(podmanTest.TempDir, "secret")
|
secretFilePath := filepath.Join(podmanTest.TempDir, "secret")
|
||||||
err := os.WriteFile(secretFilePath, []byte("mysecret"), 0755)
|
err := os.WriteFile(secretFilePath, []byte("mysecret"), 0755)
|
||||||
|
Reference in New Issue
Block a user