diff --git a/cerise_manager/service.py b/cerise_manager/service.py index f4aab69..d2c35c7 100644 --- a/cerise_manager/service.py +++ b/cerise_manager/service.py @@ -7,7 +7,7 @@ import time import docker -import cerise_client.service as ccs +from cerise_client import Service from cerise_manager import errors @@ -234,7 +234,7 @@ def service_from_dict(srv_dict): return get_service(srv_dict['name']) -class ManagedService(ccs.Service): +class ManagedService(Service): """A managed service in a Docker container. """ def __init__(self, name, port): @@ -307,11 +307,10 @@ def get_log(self): container = dc.containers.get(self._name) stream, stat = container.get_archive('/var/log/cerise/cerise_backend.log') with tempfile.TemporaryFile() as tmp: - tmp.write(stream.read()) + for chunk in stream: + tmp.write(chunk) tmp.seek(0) with tarfile.open(fileobj=tmp) as archive: - # Scope guard does not work in Python 2 - logfile = archive.extractfile('cerise_backend.log') - service_log = logfile.read().decode('utf-8') - logfile.close() + with archive.extractfile('cerise_backend.log') as logfile: + service_log = logfile.read().decode('utf-8') return service_log diff --git a/setup.py b/setup.py index bfdf4ad..883b8fa 100644 --- a/setup.py +++ b/setup.py @@ -43,7 +43,7 @@ ], test_suite='tests', install_requires=[ - 'cerise_client', + 'cerise_client>=0.3.0', 'defusedxml==0.5.0', 'docker<4', 'future',