github.com/rita33cool1/iot-system-gateway@v0.0.0-20200911033302-e65bde238cc5/docker-engine/integration-cli/docker_cli_secret_create_test.go (about) 1 // +build !windows 2 3 package main 4 5 import ( 6 "io/ioutil" 7 "os" 8 "strings" 9 10 "github.com/docker/docker/api/types/swarm" 11 "github.com/docker/docker/integration-cli/checker" 12 "github.com/go-check/check" 13 ) 14 15 // Test case for 28884 16 func (s *DockerSwarmSuite) TestSecretCreateResolve(c *check.C) { 17 d := s.AddDaemon(c, true, true) 18 19 name := "test_secret" 20 id := d.CreateSecret(c, swarm.SecretSpec{ 21 Annotations: swarm.Annotations{ 22 Name: name, 23 }, 24 Data: []byte("foo"), 25 }) 26 c.Assert(id, checker.Not(checker.Equals), "", check.Commentf("secrets: %s", id)) 27 28 fake := d.CreateSecret(c, swarm.SecretSpec{ 29 Annotations: swarm.Annotations{ 30 Name: id, 31 }, 32 Data: []byte("fake foo"), 33 }) 34 c.Assert(fake, checker.Not(checker.Equals), "", check.Commentf("secrets: %s", fake)) 35 36 out, err := d.Cmd("secret", "ls") 37 c.Assert(err, checker.IsNil) 38 c.Assert(out, checker.Contains, name) 39 c.Assert(out, checker.Contains, fake) 40 41 out, err = d.Cmd("secret", "rm", id) 42 c.Assert(out, checker.Contains, id) 43 44 // Fake one will remain 45 out, err = d.Cmd("secret", "ls") 46 c.Assert(err, checker.IsNil) 47 c.Assert(out, checker.Not(checker.Contains), name) 48 c.Assert(out, checker.Contains, fake) 49 50 // Remove based on name prefix of the fake one 51 // (which is the same as the ID of foo one) should not work 52 // as search is only done based on: 53 // - Full ID 54 // - Full Name 55 // - Partial ID (prefix) 56 out, err = d.Cmd("secret", "rm", id[:5]) 57 c.Assert(out, checker.Not(checker.Contains), id) 58 out, err = d.Cmd("secret", "ls") 59 c.Assert(err, checker.IsNil) 60 c.Assert(out, checker.Not(checker.Contains), name) 61 c.Assert(out, checker.Contains, fake) 62 63 // Remove based on ID prefix of the fake one should succeed 64 out, err = d.Cmd("secret", "rm", fake[:5]) 65 c.Assert(out, checker.Contains, fake[:5]) 66 out, err = d.Cmd("secret", "ls") 67 c.Assert(err, checker.IsNil) 68 c.Assert(out, checker.Not(checker.Contains), name) 69 c.Assert(out, checker.Not(checker.Contains), id) 70 c.Assert(out, checker.Not(checker.Contains), fake) 71 } 72 73 func (s *DockerSwarmSuite) TestSecretCreateWithFile(c *check.C) { 74 d := s.AddDaemon(c, true, true) 75 76 testFile, err := ioutil.TempFile("", "secretCreateTest") 77 c.Assert(err, checker.IsNil, check.Commentf("failed to create temporary file")) 78 defer os.Remove(testFile.Name()) 79 80 testData := "TESTINGDATA" 81 _, err = testFile.Write([]byte(testData)) 82 c.Assert(err, checker.IsNil, check.Commentf("failed to write to temporary file")) 83 84 testName := "test_secret" 85 out, err := d.Cmd("secret", "create", testName, testFile.Name()) 86 c.Assert(err, checker.IsNil) 87 c.Assert(strings.TrimSpace(out), checker.Not(checker.Equals), "", check.Commentf(out)) 88 89 id := strings.TrimSpace(out) 90 secret := d.GetSecret(c, id) 91 c.Assert(secret.Spec.Name, checker.Equals, testName) 92 }