Browse Source

Fix scale not binding ports

Ben Firshman 11 years ago
parent
commit
b9c8e3e057
2 changed files with 8 additions and 1 deletions
  1. 1 1
      fig/service.py
  2. 7 0
      tests/service_test.py

+ 1 - 1
fig/service.py

@@ -111,7 +111,7 @@ class Service(object):
         while len(running_containers) < desired_num:
             c = stopped_containers.pop(0)
             log.info("Starting %s..." % c.name)
-            c.start()
+            self.start_container(c)
             running_containers.append(c)
 
 

+ 7 - 0
tests/service_test.py

@@ -229,5 +229,12 @@ class ServiceTest(DockerClientTestCase):
         service = self.create_service('web', ports=['8000:8000'])
         self.assertRaises(CannotBeScaledError, lambda: service.scale(1))
 
+    def test_scale_sets_ports(self):
+        service = self.create_service('web', ports=['8000'])
+        service.scale(2)
+        containers = service.containers()
+        self.assertEqual(len(containers), 2)
+        for container in containers:
+            self.assertEqual(list(container.inspect()['HostConfig']['PortBindings'].keys()), ['8000/tcp'])