github.com/docker/Engine@v17.12.1-ce-rc2+incompatible/integration-cli/docker_cli_secret_ls_test.go (about) 1 // +build !windows 2 3 package main 4 5 import ( 6 "strings" 7 8 "github.com/docker/docker/api/types/swarm" 9 "github.com/docker/docker/integration-cli/checker" 10 "github.com/go-check/check" 11 ) 12 13 func (s *DockerSwarmSuite) TestSecretList(c *check.C) { 14 d := s.AddDaemon(c, true, true) 15 16 testName0 := "test0" 17 testName1 := "test1" 18 19 // create secret test0 20 id0 := d.CreateSecret(c, swarm.SecretSpec{ 21 Annotations: swarm.Annotations{ 22 Name: testName0, 23 Labels: map[string]string{"type": "test"}, 24 }, 25 Data: []byte("TESTINGDATA0"), 26 }) 27 c.Assert(id0, checker.Not(checker.Equals), "", check.Commentf("secrets: %s", id0)) 28 29 secret := d.GetSecret(c, id0) 30 c.Assert(secret.Spec.Name, checker.Equals, testName0) 31 32 // create secret test1 33 id1 := d.CreateSecret(c, swarm.SecretSpec{ 34 Annotations: swarm.Annotations{ 35 Name: testName1, 36 Labels: map[string]string{"type": "production"}, 37 }, 38 Data: []byte("TESTINGDATA1"), 39 }) 40 c.Assert(id1, checker.Not(checker.Equals), "", check.Commentf("secrets: %s", id1)) 41 42 secret = d.GetSecret(c, id1) 43 c.Assert(secret.Spec.Name, checker.Equals, testName1) 44 45 // test by command `docker secret ls` 46 out, err := d.Cmd("secret", "ls") 47 c.Assert(err, checker.IsNil, check.Commentf(out)) 48 c.Assert(strings.TrimSpace(out), checker.Contains, testName0) 49 c.Assert(strings.TrimSpace(out), checker.Contains, testName1) 50 51 // test filter by name `docker secret ls --filter name=xxx` 52 args := []string{ 53 "secret", 54 "ls", 55 "--filter", 56 "name=test0", 57 } 58 out, err = d.Cmd(args...) 59 c.Assert(err, checker.IsNil, check.Commentf(out)) 60 61 c.Assert(strings.TrimSpace(out), checker.Contains, testName0) 62 c.Assert(strings.TrimSpace(out), checker.Not(checker.Contains), testName1) 63 64 // test filter by id `docker secret ls --filter id=xxx` 65 args = []string{ 66 "secret", 67 "ls", 68 "--filter", 69 "id=" + id1, 70 } 71 out, err = d.Cmd(args...) 72 c.Assert(err, checker.IsNil, check.Commentf(out)) 73 74 c.Assert(strings.TrimSpace(out), checker.Not(checker.Contains), testName0) 75 c.Assert(strings.TrimSpace(out), checker.Contains, testName1) 76 77 // test filter by label `docker secret ls --filter label=xxx` 78 args = []string{ 79 "secret", 80 "ls", 81 "--filter", 82 "label=type", 83 } 84 out, err = d.Cmd(args...) 85 c.Assert(err, checker.IsNil, check.Commentf(out)) 86 87 c.Assert(strings.TrimSpace(out), checker.Contains, testName0) 88 c.Assert(strings.TrimSpace(out), checker.Contains, testName1) 89 90 args = []string{ 91 "secret", 92 "ls", 93 "--filter", 94 "label=type=test", 95 } 96 out, err = d.Cmd(args...) 97 c.Assert(err, checker.IsNil, check.Commentf(out)) 98 99 c.Assert(strings.TrimSpace(out), checker.Contains, testName0) 100 c.Assert(strings.TrimSpace(out), checker.Not(checker.Contains), testName1) 101 102 args = []string{ 103 "secret", 104 "ls", 105 "--filter", 106 "label=type=production", 107 } 108 out, err = d.Cmd(args...) 109 c.Assert(err, checker.IsNil, check.Commentf(out)) 110 111 c.Assert(strings.TrimSpace(out), checker.Not(checker.Contains), testName0) 112 c.Assert(strings.TrimSpace(out), checker.Contains, testName1) 113 114 // test invalid filter `docker secret ls --filter noexisttype=xxx` 115 args = []string{ 116 "secret", 117 "ls", 118 "--filter", 119 "noexisttype=test0", 120 } 121 out, err = d.Cmd(args...) 122 c.Assert(err, checker.NotNil, check.Commentf(out)) 123 124 c.Assert(strings.TrimSpace(out), checker.Contains, "Error response from daemon: Invalid filter 'noexisttype'") 125 }