9
"github.com/containers/podman/v5/pkg/bindings"
10
"github.com/containers/podman/v5/pkg/bindings/secrets"
11
. "github.com/onsi/ginkgo/v2"
12
. "github.com/onsi/gomega"
13
"github.com/onsi/gomega/gexec"
16
var _ = Describe("Podman secrets", func() {
20
connText context.Context
26
bt.RestoreImagesFromCache()
27
s = bt.startAPIService()
28
time.Sleep(1 * time.Second)
29
connText, err = bindings.NewConnection(context.Background(), bt.sock)
30
Expect(err).ToNot(HaveOccurred())
39
It("create secret", func() {
40
r := strings.NewReader("mysecret")
42
opts := &secrets.CreateOptions{
45
_, err := secrets.Create(connText, r, opts)
46
Expect(err).ToNot(HaveOccurred())
48
// should not be allowed to create duplicate secret name
49
_, err = secrets.Create(connText, r, opts)
50
Expect(err).To(HaveOccurred())
53
It("inspect secret", func() {
54
r := strings.NewReader("mysecret")
56
opts := &secrets.CreateOptions{
59
_, err := secrets.Create(connText, r, opts)
60
Expect(err).ToNot(HaveOccurred())
62
data, err := secrets.Inspect(connText, name, nil)
63
Expect(err).ToNot(HaveOccurred())
64
Expect(data.Spec.Name).To(Equal(name))
66
// inspecting non-existent secret should fail
67
_, err = secrets.Inspect(connText, "notasecret", nil)
68
code, _ := bindings.CheckResponseCode(err)
69
Expect(code).To(BeNumerically("==", http.StatusNotFound))
72
It("list secret", func() {
73
r := strings.NewReader("mysecret")
75
opts := &secrets.CreateOptions{
78
_, err := secrets.Create(connText, r, opts)
79
Expect(err).ToNot(HaveOccurred())
81
data, err := secrets.List(connText, nil)
82
Expect(err).ToNot(HaveOccurred())
83
Expect(data[0].Spec.Name).To(Equal(name))
86
It("list multiple secret", func() {
87
r := strings.NewReader("mysecret")
89
opts := &secrets.CreateOptions{
92
_, err := secrets.Create(connText, r, opts)
93
Expect(err).ToNot(HaveOccurred())
95
r2 := strings.NewReader("mysecret2")
97
opts2 := &secrets.CreateOptions{
100
_, err = secrets.Create(connText, r2, opts2)
101
Expect(err).ToNot(HaveOccurred())
103
data, err := secrets.List(connText, nil)
104
Expect(err).ToNot(HaveOccurred())
105
Expect(data).To(HaveLen(2))
108
It("list no secrets", func() {
109
data, err := secrets.List(connText, nil)
110
Expect(err).ToNot(HaveOccurred())
111
Expect(data).To(BeEmpty())
114
It("remove secret", func() {
115
r := strings.NewReader("mysecret")
117
opts := &secrets.CreateOptions{
120
_, err := secrets.Create(connText, r, opts)
121
Expect(err).ToNot(HaveOccurred())
123
err = secrets.Remove(connText, name)
124
Expect(err).ToNot(HaveOccurred())
126
// removing non-existent secret should fail
127
err = secrets.Remove(connText, "nosecret")
128
Expect(err).To(HaveOccurred())
129
code, _ := bindings.CheckResponseCode(err)
130
Expect(code).To(BeNumerically("==", http.StatusNotFound))