docker_cli_config_ls_test.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  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) TestConfigList(c *check.C) {
  10. testRequires(c, SameHostDaemon)
  11. d := s.AddDaemon(c, true, true)
  12. testName0 := "test0"
  13. testName1 := "test1"
  14. // create config test0
  15. id0 := d.CreateConfig(c, swarm.ConfigSpec{
  16. Annotations: swarm.Annotations{
  17. Name: testName0,
  18. Labels: map[string]string{"type": "test"},
  19. },
  20. Data: []byte("TESTINGDATA0"),
  21. })
  22. c.Assert(id0, checker.Not(checker.Equals), "", check.Commentf("configs: %s", id0))
  23. config := d.GetConfig(c, id0)
  24. c.Assert(config.Spec.Name, checker.Equals, testName0)
  25. // create config test1
  26. id1 := d.CreateConfig(c, swarm.ConfigSpec{
  27. Annotations: swarm.Annotations{
  28. Name: testName1,
  29. Labels: map[string]string{"type": "production"},
  30. },
  31. Data: []byte("TESTINGDATA1"),
  32. })
  33. c.Assert(id1, checker.Not(checker.Equals), "", check.Commentf("configs: %s", id1))
  34. config = d.GetConfig(c, id1)
  35. c.Assert(config.Spec.Name, checker.Equals, testName1)
  36. // test by command `docker config ls`
  37. out, err := d.Cmd("config", "ls")
  38. c.Assert(err, checker.IsNil, check.Commentf(out))
  39. c.Assert(strings.TrimSpace(out), checker.Contains, testName0)
  40. c.Assert(strings.TrimSpace(out), checker.Contains, testName1)
  41. // test filter by name `docker config ls --filter name=xxx`
  42. args := []string{
  43. "config",
  44. "ls",
  45. "--filter",
  46. "name=test0",
  47. }
  48. out, err = d.Cmd(args...)
  49. c.Assert(err, checker.IsNil, check.Commentf(out))
  50. c.Assert(strings.TrimSpace(out), checker.Contains, testName0)
  51. c.Assert(strings.TrimSpace(out), checker.Not(checker.Contains), testName1)
  52. // test filter by id `docker config ls --filter id=xxx`
  53. args = []string{
  54. "config",
  55. "ls",
  56. "--filter",
  57. "id=" + id1,
  58. }
  59. out, err = d.Cmd(args...)
  60. c.Assert(err, checker.IsNil, check.Commentf(out))
  61. c.Assert(strings.TrimSpace(out), checker.Not(checker.Contains), testName0)
  62. c.Assert(strings.TrimSpace(out), checker.Contains, testName1)
  63. // test filter by label `docker config ls --filter label=xxx`
  64. args = []string{
  65. "config",
  66. "ls",
  67. "--filter",
  68. "label=type",
  69. }
  70. out, err = d.Cmd(args...)
  71. c.Assert(err, checker.IsNil, check.Commentf(out))
  72. c.Assert(strings.TrimSpace(out), checker.Contains, testName0)
  73. c.Assert(strings.TrimSpace(out), checker.Contains, testName1)
  74. args = []string{
  75. "config",
  76. "ls",
  77. "--filter",
  78. "label=type=test",
  79. }
  80. out, err = d.Cmd(args...)
  81. c.Assert(err, checker.IsNil, check.Commentf(out))
  82. c.Assert(strings.TrimSpace(out), checker.Contains, testName0)
  83. c.Assert(strings.TrimSpace(out), checker.Not(checker.Contains), testName1)
  84. args = []string{
  85. "config",
  86. "ls",
  87. "--filter",
  88. "label=type=production",
  89. }
  90. out, err = d.Cmd(args...)
  91. c.Assert(err, checker.IsNil, check.Commentf(out))
  92. c.Assert(strings.TrimSpace(out), checker.Not(checker.Contains), testName0)
  93. c.Assert(strings.TrimSpace(out), checker.Contains, testName1)
  94. // test invalid filter `docker config ls --filter noexisttype=xxx`
  95. args = []string{
  96. "config",
  97. "ls",
  98. "--filter",
  99. "noexisttype=test0",
  100. }
  101. out, err = d.Cmd(args...)
  102. c.Assert(err, checker.NotNil, check.Commentf(out))
  103. c.Assert(strings.TrimSpace(out), checker.Contains, "Error response from daemon: Invalid filter 'noexisttype'")
  104. }