Skip to content

Commit 77dd165

Browse files
Merge pull request #27193 from shiavm006/fix-secret-ls-format-docs
secrets: align 'secret ls' format docs and completion
2 parents e87e2c0 + 00309d3 commit 77dd165

File tree

3 files changed

+35
-11
lines changed

3 files changed

+35
-11
lines changed

cmd/podman/secrets/list.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ func init() {
4646
flags := lsCmd.Flags()
4747

4848
formatFlagName := "format"
49-
flags.StringVar(&listFlag.format, formatFlagName, "{{range .}}{{.ID}}\t{{.Name}}\t{{.Driver}}\t{{.CreatedAt}}\t{{.UpdatedAt}}\n{{end -}}", "Format volume output using Go template")
50-
_ = lsCmd.RegisterFlagCompletionFunc(formatFlagName, common.AutocompleteFormat(&entities.SecretInfoReport{}))
49+
flags.StringVar(&listFlag.format, formatFlagName, "{{range .}}{{.ID}}\t{{.Name}}\t{{.Driver}}\t{{.CreatedAt}}\t{{.UpdatedAt}}\n{{end -}}", "Format secret output using Go template")
50+
_ = lsCmd.RegisterFlagCompletionFunc(formatFlagName, common.AutocompleteFormat(&entities.SecretListReport{}))
5151

5252
filterFlagName := "filter"
5353
flags.StringArrayVarP(&listFlag.filter, filterFlagName, "f", []string{}, "Filter secret output")

docs/source/markdown/podman-secret-ls.1.md.in

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,11 @@ Valid placeholders for the Go template are listed below:
3232

3333
| **Placeholder** | **Description** |
3434
| ------------------------ | ----------------------------------------------------------------- |
35-
| .CreatedAt ... | When secret was created (relative timestamp, human-readable) |
35+
| .CreatedAt | When secret was created (relative timestamp, human-readable) |
36+
| .Driver | Driver name (string) |
3637
| .ID | ID of secret |
37-
| .SecretData | Secret Data (Displayed only with --showsecret option) |
38-
| .Spec ... | Details of secret |
39-
| .Spec.Driver ... | Driver info |
40-
| .Spec.Driver.Name | Driver name (string) |
41-
| .Spec.Driver.Options ... | Driver options (map of driver-specific options) |
42-
| .Spec.Labels ... | Labels for this secret |
43-
| .Spec.Name | Name of secret |
44-
| .UpdatedAt ... | When secret was last updated (relative timestamp, human-readable) |
38+
| .Name | Name of secret |
39+
| .UpdatedAt | When secret was last updated (relative timestamp, human-readable) |
4540

4641
@@option noheading
4742

test/e2e/secret_test.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,35 @@ var _ = Describe("Podman secret", func() {
325325
Expect(list.OutputToStringArray()).To(HaveLen(2), list.OutputToString())
326326
})
327327

328+
It("podman secret ls with valid format fields Driver/CreatedAt", func() {
329+
secretFilePath := filepath.Join(podmanTest.TempDir, "secret")
330+
err := os.WriteFile(secretFilePath, []byte("mysecret"), 0755)
331+
Expect(err).ToNot(HaveOccurred())
332+
333+
podmanTest.PodmanExitCleanly("secret", "create", "fmt", secretFilePath)
334+
335+
// .Driver should be available on SecretListReport
336+
list := podmanTest.PodmanExitCleanly("secret", "ls", "--format", "{{.Driver}}")
337+
Expect(list.OutputToString()).ToNot(BeEmpty())
338+
339+
// .CreatedAt should be available and human-readable (e.g., "X ago")
340+
list = podmanTest.PodmanExitCleanly("secret", "ls", "--format", "{{.CreatedAt}}")
341+
Expect(list.OutputToString()).To(ContainSubstring("ago"))
342+
})
343+
344+
It("podman secret ls with invalid Spec.* format should error", func() {
345+
secretFilePath := filepath.Join(podmanTest.TempDir, "secret")
346+
err := os.WriteFile(secretFilePath, []byte("mysecret"), 0755)
347+
Expect(err).ToNot(HaveOccurred())
348+
349+
podmanTest.PodmanExitCleanly("secret", "create", "fmt2", secretFilePath)
350+
351+
bad := podmanTest.Podman([]string{"secret", "ls", "--format", "{{.Spec.Name}}"})
352+
bad.WaitWithDefaultTimeout()
353+
Expect(bad).To(Not(ExitCleanly()))
354+
Expect(bad.ErrorToString()).To(ContainSubstring("can't evaluate field Spec"))
355+
})
356+
328357
It("podman secret rm", func() {
329358
secretFilePath := filepath.Join(podmanTest.TempDir, "secret")
330359
err := os.WriteFile(secretFilePath, []byte("mysecret"), 0755)

0 commit comments

Comments
 (0)