github.com/AbhinandanKurakure/podman/v3@v3.4.10/test/e2e/secret_test.go (about) 1 package integration 2 3 import ( 4 "io/ioutil" 5 "os" 6 "path/filepath" 7 8 . "github.com/containers/podman/v3/test/utils" 9 . "github.com/onsi/ginkgo" 10 . "github.com/onsi/gomega" 11 . "github.com/onsi/gomega/gexec" 12 ) 13 14 var _ = Describe("Podman secret", func() { 15 var ( 16 tempdir string 17 err error 18 podmanTest *PodmanTestIntegration 19 ) 20 21 BeforeEach(func() { 22 tempdir, err = CreateTempDirInTempDir() 23 if err != nil { 24 os.Exit(1) 25 } 26 podmanTest = PodmanTestCreate(tempdir) 27 podmanTest.Setup() 28 podmanTest.SeedImages() 29 }) 30 31 AfterEach(func() { 32 podmanTest.CleanupSecrets() 33 f := CurrentGinkgoTestDescription() 34 processTestResult(f) 35 36 }) 37 38 It("podman secret create", func() { 39 secretFilePath := filepath.Join(podmanTest.TempDir, "secret") 40 err := ioutil.WriteFile(secretFilePath, []byte("mysecret"), 0755) 41 Expect(err).To(BeNil()) 42 43 session := podmanTest.Podman([]string{"secret", "create", "--driver-opts", "opt1=val", "a", secretFilePath}) 44 session.WaitWithDefaultTimeout() 45 secrID := session.OutputToString() 46 Expect(session).Should(Exit(0)) 47 48 inspect := podmanTest.Podman([]string{"secret", "inspect", "--format", "{{.ID}}", secrID}) 49 inspect.WaitWithDefaultTimeout() 50 Expect(inspect).Should(Exit(0)) 51 Expect(inspect.OutputToString()).To(Equal(secrID)) 52 inspect = podmanTest.Podman([]string{"secret", "inspect", "--format", "{{.Spec.Driver.Options}}", secrID}) 53 inspect.WaitWithDefaultTimeout() 54 Expect(inspect).Should(Exit(0)) 55 Expect(inspect.OutputToString()).To(ContainSubstring("opt1:val")) 56 }) 57 58 It("podman secret create bad name should fail", func() { 59 secretFilePath := filepath.Join(podmanTest.TempDir, "secret") 60 err := ioutil.WriteFile(secretFilePath, []byte("mysecret"), 0755) 61 Expect(err).To(BeNil()) 62 63 session := podmanTest.Podman([]string{"secret", "create", "?!", secretFilePath}) 64 session.WaitWithDefaultTimeout() 65 Expect(session).To(ExitWithError()) 66 }) 67 68 It("podman secret inspect", func() { 69 secretFilePath := filepath.Join(podmanTest.TempDir, "secret") 70 err := ioutil.WriteFile(secretFilePath, []byte("mysecret"), 0755) 71 Expect(err).To(BeNil()) 72 73 session := podmanTest.Podman([]string{"secret", "create", "a", secretFilePath}) 74 session.WaitWithDefaultTimeout() 75 secrID := session.OutputToString() 76 Expect(session).Should(Exit(0)) 77 78 inspect := podmanTest.Podman([]string{"secret", "inspect", secrID}) 79 inspect.WaitWithDefaultTimeout() 80 Expect(inspect).Should(Exit(0)) 81 Expect(inspect.IsJSONOutputValid()).To(BeTrue()) 82 }) 83 84 It("podman secret inspect with --format", func() { 85 secretFilePath := filepath.Join(podmanTest.TempDir, "secret") 86 err := ioutil.WriteFile(secretFilePath, []byte("mysecret"), 0755) 87 Expect(err).To(BeNil()) 88 89 session := podmanTest.Podman([]string{"secret", "create", "a", secretFilePath}) 90 session.WaitWithDefaultTimeout() 91 secrID := session.OutputToString() 92 Expect(session).Should(Exit(0)) 93 94 inspect := podmanTest.Podman([]string{"secret", "inspect", "--format", "{{.ID}}", secrID}) 95 inspect.WaitWithDefaultTimeout() 96 Expect(inspect).Should(Exit(0)) 97 Expect(inspect.OutputToString()).To(Equal(secrID)) 98 }) 99 100 It("podman secret inspect multiple secrets", func() { 101 secretFilePath := filepath.Join(podmanTest.TempDir, "secret") 102 err := ioutil.WriteFile(secretFilePath, []byte("mysecret"), 0755) 103 Expect(err).To(BeNil()) 104 105 session := podmanTest.Podman([]string{"secret", "create", "a", secretFilePath}) 106 session.WaitWithDefaultTimeout() 107 secrID := session.OutputToString() 108 Expect(session).Should(Exit(0)) 109 110 session2 := podmanTest.Podman([]string{"secret", "create", "b", secretFilePath}) 111 session2.WaitWithDefaultTimeout() 112 secrID2 := session2.OutputToString() 113 Expect(session2).Should(Exit(0)) 114 115 inspect := podmanTest.Podman([]string{"secret", "inspect", secrID, secrID2}) 116 inspect.WaitWithDefaultTimeout() 117 Expect(inspect).Should(Exit(0)) 118 Expect(inspect.IsJSONOutputValid()).To(BeTrue()) 119 }) 120 121 It("podman secret inspect bogus", func() { 122 secretFilePath := filepath.Join(podmanTest.TempDir, "secret") 123 err := ioutil.WriteFile(secretFilePath, []byte("mysecret"), 0755) 124 Expect(err).To(BeNil()) 125 126 inspect := podmanTest.Podman([]string{"secret", "inspect", "bogus"}) 127 inspect.WaitWithDefaultTimeout() 128 Expect(inspect).To(ExitWithError()) 129 130 }) 131 132 It("podman secret ls", func() { 133 secretFilePath := filepath.Join(podmanTest.TempDir, "secret") 134 err := ioutil.WriteFile(secretFilePath, []byte("mysecret"), 0755) 135 Expect(err).To(BeNil()) 136 137 session := podmanTest.Podman([]string{"secret", "create", "a", secretFilePath}) 138 session.WaitWithDefaultTimeout() 139 Expect(session).Should(Exit(0)) 140 141 list := podmanTest.Podman([]string{"secret", "ls"}) 142 list.WaitWithDefaultTimeout() 143 Expect(list).Should(Exit(0)) 144 Expect(len(list.OutputToStringArray())).To(Equal(2)) 145 146 }) 147 148 It("podman secret ls with Go template", func() { 149 secretFilePath := filepath.Join(podmanTest.TempDir, "secret") 150 err := ioutil.WriteFile(secretFilePath, []byte("mysecret"), 0755) 151 Expect(err).To(BeNil()) 152 153 session := podmanTest.Podman([]string{"secret", "create", "a", secretFilePath}) 154 session.WaitWithDefaultTimeout() 155 Expect(session).Should(Exit(0)) 156 157 list := podmanTest.Podman([]string{"secret", "ls", "--format", "table {{.Name}}"}) 158 list.WaitWithDefaultTimeout() 159 160 Expect(list).Should(Exit(0)) 161 Expect(len(list.OutputToStringArray())).To(Equal(2), list.OutputToString()) 162 }) 163 164 It("podman secret rm", func() { 165 secretFilePath := filepath.Join(podmanTest.TempDir, "secret") 166 err := ioutil.WriteFile(secretFilePath, []byte("mysecret"), 0755) 167 Expect(err).To(BeNil()) 168 169 session := podmanTest.Podman([]string{"secret", "create", "a", secretFilePath}) 170 session.WaitWithDefaultTimeout() 171 secrID := session.OutputToString() 172 Expect(session).Should(Exit(0)) 173 174 removed := podmanTest.Podman([]string{"secret", "rm", "a"}) 175 removed.WaitWithDefaultTimeout() 176 Expect(removed).Should(Exit(0)) 177 Expect(removed.OutputToString()).To(Equal(secrID)) 178 179 session = podmanTest.Podman([]string{"secret", "ls"}) 180 session.WaitWithDefaultTimeout() 181 Expect(session).Should(Exit(0)) 182 Expect(len(session.OutputToStringArray())).To(Equal(1)) 183 }) 184 185 It("podman secret rm --all", func() { 186 secretFilePath := filepath.Join(podmanTest.TempDir, "secret") 187 err := ioutil.WriteFile(secretFilePath, []byte("mysecret"), 0755) 188 Expect(err).To(BeNil()) 189 190 session := podmanTest.Podman([]string{"secret", "create", "a", secretFilePath}) 191 session.WaitWithDefaultTimeout() 192 Expect(session).Should(Exit(0)) 193 session = podmanTest.Podman([]string{"secret", "create", "b", secretFilePath}) 194 session.WaitWithDefaultTimeout() 195 Expect(session).Should(Exit(0)) 196 197 removed := podmanTest.Podman([]string{"secret", "rm", "-a"}) 198 removed.WaitWithDefaultTimeout() 199 Expect(removed).Should(Exit(0)) 200 201 session = podmanTest.Podman([]string{"secret", "ls"}) 202 session.WaitWithDefaultTimeout() 203 Expect(session).Should(Exit(0)) 204 Expect(len(session.OutputToStringArray())).To(Equal(1)) 205 }) 206 207 It("podman secret creates from environment variable", func() { 208 // no env variable set, should fail 209 session := podmanTest.Podman([]string{"secret", "create", "--env", "a", "MYENVVAR"}) 210 session.WaitWithDefaultTimeout() 211 secrID := session.OutputToString() 212 Expect(session).To(ExitWithError()) 213 214 os.Setenv("MYENVVAR", "somedata") 215 if IsRemote() { 216 podmanTest.RestartRemoteService() 217 } 218 219 session = podmanTest.Podman([]string{"secret", "create", "--env", "a", "MYENVVAR"}) 220 session.WaitWithDefaultTimeout() 221 secrID = session.OutputToString() 222 Expect(session).Should(Exit(0)) 223 224 inspect := podmanTest.Podman([]string{"secret", "inspect", "--format", "{{.ID}}", secrID}) 225 inspect.WaitWithDefaultTimeout() 226 Expect(inspect).Should(Exit(0)) 227 Expect(inspect.OutputToString()).To(Equal(secrID)) 228 }) 229 230 })