mirror of
https://github.com/docker/compose.git
synced 2025-04-08 17:05:13 +02:00
Refactor container retrieval / name parsing
This commit is contained in:
parent
3458dd2fad
commit
f0df5c6079
@ -23,7 +23,13 @@ class Service(object):
|
||||
|
||||
@property
|
||||
def containers(self):
|
||||
return [c for c in self.client.containers(all=True) if parse_name(get_container_name(c))[0] == self.name]
|
||||
return list(self.get_containers(all=True))
|
||||
|
||||
def get_containers(self, all):
|
||||
for container in self.client.containers(all=all):
|
||||
name = get_container_name(container)
|
||||
if is_valid_name(name) and parse_name(name)[0] == self.name:
|
||||
yield container
|
||||
|
||||
def start(self):
|
||||
if len(self.containers) == 0:
|
||||
@ -136,18 +142,20 @@ class Service(object):
|
||||
return image_id
|
||||
|
||||
|
||||
name_regex = '^(.+)_(\d+)$'
|
||||
|
||||
|
||||
def make_name(prefix, number):
|
||||
return '%s_%s' % (prefix, number)
|
||||
|
||||
|
||||
def is_valid_name(name):
|
||||
return (re.match(name_regex, name) is not None)
|
||||
|
||||
|
||||
def parse_name(name):
|
||||
match = re.match('^(.+)_(\d+)$', name)
|
||||
|
||||
if match is None:
|
||||
return (None, None)
|
||||
|
||||
match = re.match(name_regex, name)
|
||||
(service_name, suffix) = match.groups()
|
||||
|
||||
return (service_name, int(suffix))
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user