Add a new fig command for retrieving the locally bound port of a service.

Signed-off-by: Daniel Nephin <dnephin@gmail.com>
This commit is contained in:
Daniel Nephin 2014-08-08 09:41:52 -07:00 • committed by Daniel Nephin
commit c48ee5caef
9 changed files with 164 additions and 51 deletions

View file

@ -78,9 +78,22 @@ class Service(object):
name = get_container_name(container)
if not name or not is_valid_name(name, one_off):
return False
project, name, number = parse_name(name)
project, name, _number = parse_name(name)
return project == self.project and name == self.name
def get_container(self, number=1):
"""Return a :class:`fig.container.Container` for this service. The
container must be active, and match `number`.
"""
for container in self.client.containers():
if not self.has_container(container):
continue
_, _, container_number = parse_name(get_container_name(container))
if container_number == number:
return Container.from_ps(self.client, container)
raise ValueError("No container found for %s_%s" % (self.name, number))
def start(self, **options):
for c in self.containers(stopped=True):
self.start_container_if_stopped(c, **options)