docker_cli_secret_ls_test.go 3.2 KB

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