123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- // +build experimental
- package main
- import (
- "fmt"
- "strings"
- "github.com/go-check/check"
- )
- func assertSrvIsAvailable(c *check.C, sname, name string) {
- if !isSrvPresent(c, sname, name) {
- c.Fatalf("Service %s on network %s not found in service ls o/p", sname, name)
- }
- }
- func assertSrvNotAvailable(c *check.C, sname, name string) {
- if isSrvPresent(c, sname, name) {
- c.Fatalf("Found service %s on network %s in service ls o/p", sname, name)
- }
- }
- func isSrvPresent(c *check.C, sname, name string) bool {
- out, _, _ := dockerCmdWithStdoutStderr(c, "service", "ls")
- lines := strings.Split(out, "\n")
- for i := 1; i < len(lines)-1; i++ {
- if strings.Contains(lines[i], sname) && strings.Contains(lines[i], name) {
- return true
- }
- }
- return false
- }
- func isCntPresent(c *check.C, cname, sname, name string) bool {
- out, _, _ := dockerCmdWithStdoutStderr(c, "service", "ls", "--no-trunc")
- lines := strings.Split(out, "\n")
- for i := 1; i < len(lines)-1; i++ {
- fmt.Println(lines)
- if strings.Contains(lines[i], name) && strings.Contains(lines[i], sname) && strings.Contains(lines[i], cname) {
- return true
- }
- }
- return false
- }
- func (s *DockerSuite) TestDockerServiceCreateDelete(c *check.C) {
- dockerCmdWithStdoutStderr(c, "network", "create", "test")
- assertNwIsAvailable(c, "test")
- dockerCmdWithStdoutStderr(c, "service", "publish", "s1.test")
- assertSrvIsAvailable(c, "s1", "test")
- dockerCmdWithStdoutStderr(c, "service", "unpublish", "s1.test")
- assertSrvNotAvailable(c, "s1", "test")
- dockerCmdWithStdoutStderr(c, "network", "rm", "test")
- assertNwNotAvailable(c, "test")
- }
- func (s *DockerSuite) TestDockerPublishServiceFlag(c *check.C) {
- // Run saying the container is the backend for the specified service on the specified network
- out, _ := dockerCmd(c, "run", "-d", "--expose=23", "--publish-service", "telnet.production", "busybox", "top")
- cid := strings.TrimSpace(out)
- // Verify container is attached in service ps o/p
- assertSrvIsAvailable(c, "telnet", "production")
- dockerCmd(c, "rm", "-f", cid)
- }
|