Files
moby/integration-cli/docker_cli_service_scale_test.go
Sebastiaan van Stijn 6aea8c2591 Dockerfile: update integration-cli CLI to v25.0.5
Now that we're raising the minimum API version, we can also update
the CLI used in our integration-cli tests.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-10-31 09:22:40 +01:00

53 lines
1.6 KiB
Go

//go:build !windows
package main
import (
"testing"
"github.com/moby/moby/v2/internal/testutil"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
)
func (s *DockerSwarmSuite) TestServiceScale(c *testing.T) {
ctx := testutil.GetContext(c)
d := s.AddDaemon(ctx, c, true, true)
service1Name := "TestService1"
service1Args := append([]string{"service", "create", "--detach", "--no-resolve-image", "--name", service1Name, "busybox"}, sleepCommandForDaemonPlatform()...)
// global mode
service2Name := "TestService2"
service2Args := append([]string{"service", "create", "--detach", "--no-resolve-image", "--name", service2Name, "--mode=global", "busybox"}, sleepCommandForDaemonPlatform()...)
// Create services
_, err := d.Cmd(service1Args...)
assert.NilError(c, err)
_, err = d.Cmd(service2Args...)
assert.NilError(c, err)
_, err = d.Cmd("service", "scale", "TestService1=2")
assert.NilError(c, err)
out, err := d.Cmd("service", "scale", "TestService1=foobar")
assert.ErrorContains(c, err, "")
assert.Check(c, is.Contains(out, service1Name))
expected := "invalid replicas value"
assert.Check(c, is.Contains(out, expected))
out, err = d.Cmd("service", "scale", "TestService1=-1")
assert.ErrorContains(c, err, "")
assert.Check(c, is.Contains(out, service1Name))
expected = "invalid replicas value"
assert.Check(c, is.Contains(out, expected))
// TestService2 is a global mode
out, err = d.Cmd("service", "scale", "TestService2=2")
assert.ErrorContains(c, err, "")
assert.Check(c, is.Contains(out, service2Name))
expected = "scale can only be used with replicated or replicated-job mode"
assert.Check(c, is.Contains(out, expected))
}