Merge pull request #6547 from kudos/bugfix/scale-zero-default

Fix scale attribute to accept 0 as a value
This commit is contained in:
Ian Campbell 2019-03-07 15:40:14 +00:00 committed by GitHub
commit 7bf9963cd6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 7 deletions

View File

@ -176,7 +176,7 @@ class Service(object):
network_mode=None, network_mode=None,
networks=None, networks=None,
secrets=None, secrets=None,
scale=None, scale=1,
pid_mode=None, pid_mode=None,
default_platform=None, default_platform=None,
**options **options
@ -191,7 +191,7 @@ class Service(object):
self.pid_mode = pid_mode or PidMode(None) self.pid_mode = pid_mode or PidMode(None)
self.networks = networks or {} self.networks = networks or {}
self.secrets = secrets or [] self.secrets = secrets or []
self.scale_num = scale or 1 self.scale_num = scale
self.default_platform = default_platform self.default_platform = default_platform
self.options = options self.options = options

View File

@ -2512,10 +2512,12 @@ class CLITestCase(DockerClientTestCase):
self.dispatch(['up', '-d']) self.dispatch(['up', '-d'])
assert len(project.get_service('web').containers()) == 2 assert len(project.get_service('web').containers()) == 2
assert len(project.get_service('db').containers()) == 1 assert len(project.get_service('db').containers()) == 1
assert len(project.get_service('worker').containers()) == 0
self.dispatch(['up', '-d', '--scale', 'web=3']) self.dispatch(['up', '-d', '--scale', 'web=3', '--scale', 'worker=1'])
assert len(project.get_service('web').containers()) == 3 assert len(project.get_service('web').containers()) == 3
assert len(project.get_service('db').containers()) == 1 assert len(project.get_service('db').containers()) == 1
assert len(project.get_service('worker').containers()) == 1
def test_up_scale_scale_down(self): def test_up_scale_scale_down(self):
self.base_dir = 'tests/fixtures/scale' self.base_dir = 'tests/fixtures/scale'
@ -2524,22 +2526,26 @@ class CLITestCase(DockerClientTestCase):
self.dispatch(['up', '-d']) self.dispatch(['up', '-d'])
assert len(project.get_service('web').containers()) == 2 assert len(project.get_service('web').containers()) == 2
assert len(project.get_service('db').containers()) == 1 assert len(project.get_service('db').containers()) == 1
assert len(project.get_service('worker').containers()) == 0
self.dispatch(['up', '-d', '--scale', 'web=1']) self.dispatch(['up', '-d', '--scale', 'web=1'])
assert len(project.get_service('web').containers()) == 1 assert len(project.get_service('web').containers()) == 1
assert len(project.get_service('db').containers()) == 1 assert len(project.get_service('db').containers()) == 1
assert len(project.get_service('worker').containers()) == 0
def test_up_scale_reset(self): def test_up_scale_reset(self):
self.base_dir = 'tests/fixtures/scale' self.base_dir = 'tests/fixtures/scale'
project = self.project project = self.project
self.dispatch(['up', '-d', '--scale', 'web=3', '--scale', 'db=3']) self.dispatch(['up', '-d', '--scale', 'web=3', '--scale', 'db=3', '--scale', 'worker=3'])
assert len(project.get_service('web').containers()) == 3 assert len(project.get_service('web').containers()) == 3
assert len(project.get_service('db').containers()) == 3 assert len(project.get_service('db').containers()) == 3
assert len(project.get_service('worker').containers()) == 3
self.dispatch(['up', '-d']) self.dispatch(['up', '-d'])
assert len(project.get_service('web').containers()) == 2 assert len(project.get_service('web').containers()) == 2
assert len(project.get_service('db').containers()) == 1 assert len(project.get_service('db').containers()) == 1
assert len(project.get_service('worker').containers()) == 0
def test_up_scale_to_zero(self): def test_up_scale_to_zero(self):
self.base_dir = 'tests/fixtures/scale' self.base_dir = 'tests/fixtures/scale'
@ -2548,10 +2554,12 @@ class CLITestCase(DockerClientTestCase):
self.dispatch(['up', '-d']) self.dispatch(['up', '-d'])
assert len(project.get_service('web').containers()) == 2 assert len(project.get_service('web').containers()) == 2
assert len(project.get_service('db').containers()) == 1 assert len(project.get_service('db').containers()) == 1
assert len(project.get_service('worker').containers()) == 0
self.dispatch(['up', '-d', '--scale', 'web=0', '--scale', 'db=0']) self.dispatch(['up', '-d', '--scale', 'web=0', '--scale', 'db=0', '--scale', 'worker=0'])
assert len(project.get_service('web').containers()) == 0 assert len(project.get_service('web').containers()) == 0
assert len(project.get_service('db').containers()) == 0 assert len(project.get_service('db').containers()) == 0
assert len(project.get_service('worker').containers()) == 0
def test_port(self): def test_port(self):
self.base_dir = 'tests/fixtures/ports-composefile' self.base_dir = 'tests/fixtures/ports-composefile'

View File

@ -5,5 +5,9 @@ services:
command: top command: top
scale: 2 scale: 2
db: db:
image: busybox image: busybox
command: top command: top
worker:
image: busybox
command: top
scale: 0