mirror of
https://github.com/docker/cli.git
synced 2026-09-26 09:20:58 -04:00
validate service parameter in client side to avoid api call
Signed-off-by: allencloud <allen.sun@daocloud.io> Upstream-commit: 5ba203e73a541935128e29a3babf810aac8ee004 Component: engine
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
// +build !windows
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/docker/docker/pkg/integration/checker"
|
||||
"github.com/go-check/check"
|
||||
)
|
||||
|
||||
func (s *DockerSwarmSuite) TestServiceScale(c *check.C) {
|
||||
d := s.AddDaemon(c, true, true)
|
||||
|
||||
service1Name := "TestService1"
|
||||
service1Args := append([]string{"service", "create", "--name", service1Name, defaultSleepImage}, sleepCommandForDaemonPlatform()...)
|
||||
|
||||
// global mode
|
||||
service2Name := "TestService2"
|
||||
service2Args := append([]string{"service", "create", "--name", service2Name, "--mode=global", defaultSleepImage}, sleepCommandForDaemonPlatform()...)
|
||||
|
||||
// Create services
|
||||
out, err := d.Cmd(service1Args...)
|
||||
c.Assert(err, checker.IsNil)
|
||||
|
||||
out, err = d.Cmd(service2Args...)
|
||||
c.Assert(err, checker.IsNil)
|
||||
|
||||
out, err = d.Cmd("service", "scale", "TestService1=2")
|
||||
c.Assert(err, checker.IsNil)
|
||||
|
||||
out, err = d.Cmd("service", "scale", "TestService1=foobar")
|
||||
c.Assert(err, checker.NotNil)
|
||||
|
||||
str := fmt.Sprintf("%s: invalid replicas value %s", service1Name, "foobar")
|
||||
if !strings.Contains(out, str) {
|
||||
c.Errorf("got: %s, expected has sub string: %s", out, str)
|
||||
}
|
||||
|
||||
out, err = d.Cmd("service", "scale", "TestService1=-1")
|
||||
c.Assert(err, checker.NotNil)
|
||||
|
||||
str = fmt.Sprintf("%s: invalid replicas value %s", service1Name, "-1")
|
||||
if !strings.Contains(out, str) {
|
||||
c.Errorf("got: %s, expected has sub string: %s", out, str)
|
||||
}
|
||||
|
||||
// TestService2 is a global mode
|
||||
out, err = d.Cmd("service", "scale", "TestService2=2")
|
||||
c.Assert(err, checker.NotNil)
|
||||
|
||||
str = fmt.Sprintf("%s: scale can only be used with replicated mode\n", service2Name)
|
||||
if out != str {
|
||||
c.Errorf("got: %s, expected: %s", out, str)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user