mirror of
https://github.com/docker/cli.git
synced 2026-10-05 21:47:15 -04:00
Support multiple service IDs on "docker service ps"
This fix tries to address issue raised in 25228 to support multiple service IDs on `docker service ps`. Multiple IDs are allowed with `docker service ps ...`, and related documentation has been updated. A test has been added to cover the changes. This fix fixes 25228. Signed-off-by: Yong Tang <yong.tang.github@outlook.com> Upstream-commit: 70942352d56779b6c428efa1c2d4cb8a45c1dfa1 Component: engine
This commit is contained in:
@@ -1555,3 +1555,73 @@ func (s *DockerSwarmSuite) TestSwarmNetworkCreateDup(c *check.C) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (s *DockerSwarmSuite) TestSwarmServicePsMultipleServiceIDs(c *check.C) {
|
||||
d := s.AddDaemon(c, true, true)
|
||||
|
||||
name1 := "top1"
|
||||
out, err := d.Cmd("service", "create", "--name", name1, "--replicas=3", "busybox", "top")
|
||||
c.Assert(err, checker.IsNil)
|
||||
c.Assert(strings.TrimSpace(out), checker.Not(checker.Equals), "")
|
||||
id1 := strings.TrimSpace(out)
|
||||
|
||||
name2 := "top2"
|
||||
out, err = d.Cmd("service", "create", "--name", name2, "--replicas=3", "busybox", "top")
|
||||
c.Assert(err, checker.IsNil)
|
||||
c.Assert(strings.TrimSpace(out), checker.Not(checker.Equals), "")
|
||||
id2 := strings.TrimSpace(out)
|
||||
|
||||
// make sure task has been deployed.
|
||||
waitAndAssert(c, defaultReconciliationTimeout, d.CheckActiveContainerCount, checker.Equals, 6)
|
||||
|
||||
out, err = d.Cmd("service", "ps", name1)
|
||||
c.Assert(err, checker.IsNil)
|
||||
c.Assert(out, checker.Contains, name1+".1")
|
||||
c.Assert(out, checker.Contains, name1+".2")
|
||||
c.Assert(out, checker.Contains, name1+".3")
|
||||
c.Assert(out, checker.Not(checker.Contains), name2+".1")
|
||||
c.Assert(out, checker.Not(checker.Contains), name2+".2")
|
||||
c.Assert(out, checker.Not(checker.Contains), name2+".3")
|
||||
|
||||
out, err = d.Cmd("service", "ps", name1, name2)
|
||||
c.Assert(err, checker.IsNil)
|
||||
c.Assert(out, checker.Contains, name1+".1")
|
||||
c.Assert(out, checker.Contains, name1+".2")
|
||||
c.Assert(out, checker.Contains, name1+".3")
|
||||
c.Assert(out, checker.Contains, name2+".1")
|
||||
c.Assert(out, checker.Contains, name2+".2")
|
||||
c.Assert(out, checker.Contains, name2+".3")
|
||||
|
||||
// Name Prefix
|
||||
out, err = d.Cmd("service", "ps", "to")
|
||||
c.Assert(err, checker.IsNil)
|
||||
c.Assert(out, checker.Contains, name1+".1")
|
||||
c.Assert(out, checker.Contains, name1+".2")
|
||||
c.Assert(out, checker.Contains, name1+".3")
|
||||
c.Assert(out, checker.Contains, name2+".1")
|
||||
c.Assert(out, checker.Contains, name2+".2")
|
||||
c.Assert(out, checker.Contains, name2+".3")
|
||||
|
||||
// Name Prefix (no hit)
|
||||
out, err = d.Cmd("service", "ps", "noname")
|
||||
c.Assert(err, checker.NotNil)
|
||||
c.Assert(out, checker.Contains, "no such services: noname")
|
||||
|
||||
out, err = d.Cmd("service", "ps", id1)
|
||||
c.Assert(err, checker.IsNil)
|
||||
c.Assert(out, checker.Contains, name1+".1")
|
||||
c.Assert(out, checker.Contains, name1+".2")
|
||||
c.Assert(out, checker.Contains, name1+".3")
|
||||
c.Assert(out, checker.Not(checker.Contains), name2+".1")
|
||||
c.Assert(out, checker.Not(checker.Contains), name2+".2")
|
||||
c.Assert(out, checker.Not(checker.Contains), name2+".3")
|
||||
|
||||
out, err = d.Cmd("service", "ps", id1, id2)
|
||||
c.Assert(err, checker.IsNil)
|
||||
c.Assert(out, checker.Contains, name1+".1")
|
||||
c.Assert(out, checker.Contains, name1+".2")
|
||||
c.Assert(out, checker.Contains, name1+".3")
|
||||
c.Assert(out, checker.Contains, name2+".1")
|
||||
c.Assert(out, checker.Contains, name2+".2")
|
||||
c.Assert(out, checker.Contains, name2+".3")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user