Merge pull request #848 from docker/845-fix

Client.logs(tail=0) now shows no past logs (expected behavior)
This commit is contained in:
Joffrey F 2015-11-12 10:54:51 -08:00
commit c89d366827
2 changed files with 32 additions and 19 deletions

View File

@ -192,7 +192,7 @@ class ContainerApiMixin(object):
'follow': stream and 1 or 0, 'follow': stream and 1 or 0,
} }
if utils.compare_version('1.13', self._version) >= 0: if utils.compare_version('1.13', self._version) >= 0:
if tail != 'all' and (not isinstance(tail, int) or tail <= 0): if tail != 'all' and (not isinstance(tail, int) or tail < 0):
tail = 'all' tail = 'all'
params['tail'] = tail params['tail'] = tail
url = self._url("/containers/{0}/logs", container) url = self._url("/containers/{0}/logs", container)

View File

@ -613,8 +613,8 @@ class LogsTest(api_test.BaseTestCase):
BUSYBOX, 'echo {0}'.format(snippet) BUSYBOX, 'echo {0}'.format(snippet)
) )
id = container['Id'] id = container['Id']
self.client.start(id)
self.tmp_containers.append(id) self.tmp_containers.append(id)
self.client.start(id)
exitcode = self.client.wait(id) exitcode = self.client.wait(id)
self.assertEqual(exitcode, 0) self.assertEqual(exitcode, 0)
logs = self.client.logs(id) logs = self.client.logs(id)
@ -627,29 +627,29 @@ Line2'''
BUSYBOX, 'echo "{0}"'.format(snippet) BUSYBOX, 'echo "{0}"'.format(snippet)
) )
id = container['Id'] id = container['Id']
self.client.start(id)
self.tmp_containers.append(id) self.tmp_containers.append(id)
self.client.start(id)
exitcode = self.client.wait(id) exitcode = self.client.wait(id)
self.assertEqual(exitcode, 0) self.assertEqual(exitcode, 0)
logs = self.client.logs(id, tail=1) logs = self.client.logs(id, tail=1)
self.assertEqual(logs, ('Line2\n').encode(encoding='ascii')) self.assertEqual(logs, 'Line2\n'.encode(encoding='ascii'))
# def test_logs_streaming(self): def test_logs_streaming(self):
# snippet = 'Flowering Nights (Sakuya Iyazoi)' snippet = 'Flowering Nights (Sakuya Iyazoi)'
# container = self.client.create_container( container = self.client.create_container(
# BUSYBOX, 'echo {0}'.format(snippet) BUSYBOX, 'echo {0}'.format(snippet)
# ) )
# id = container['Id'] id = container['Id']
# self.client.start(id) self.tmp_containers.append(id)
# self.tmp_containers.append(id) self.client.start(id)
# logs = bytes() if six.PY3 else str() logs = six.binary_type()
# for chunk in self.client.logs(id, stream=True): for chunk in self.client.logs(id, stream=True):
# logs += chunk logs += chunk
# exitcode = self.client.wait(id) exitcode = self.client.wait(id)
# self.assertEqual(exitcode, 0) self.assertEqual(exitcode, 0)
# self.assertEqual(logs, (snippet + '\n').encode(encoding='ascii')) self.assertEqual(logs, (snippet + '\n').encode(encoding='ascii'))
def test_logs_with_dict_instead_of_id(self): def test_logs_with_dict_instead_of_id(self):
snippet = 'Flowering Nights (Sakuya Iyazoi)' snippet = 'Flowering Nights (Sakuya Iyazoi)'
@ -657,13 +657,26 @@ Line2'''
BUSYBOX, 'echo {0}'.format(snippet) BUSYBOX, 'echo {0}'.format(snippet)
) )
id = container['Id'] id = container['Id']
self.client.start(id)
self.tmp_containers.append(id) self.tmp_containers.append(id)
self.client.start(id)
exitcode = self.client.wait(id) exitcode = self.client.wait(id)
self.assertEqual(exitcode, 0) self.assertEqual(exitcode, 0)
logs = self.client.logs(container) logs = self.client.logs(container)
self.assertEqual(logs, (snippet + '\n').encode(encoding='ascii')) self.assertEqual(logs, (snippet + '\n').encode(encoding='ascii'))
def test_logs_with_tail_0(self):
snippet = 'Flowering Nights (Sakuya Iyazoi)'
container = self.client.create_container(
BUSYBOX, 'echo "{0}"'.format(snippet)
)
id = container['Id']
self.tmp_containers.append(id)
self.client.start(id)
exitcode = self.client.wait(id)
self.assertEqual(exitcode, 0)
logs = self.client.logs(id, tail=0)
self.assertEqual(logs, ''.encode(encoding='ascii'))
class DiffTest(api_test.BaseTestCase): class DiffTest(api_test.BaseTestCase):
def test_diff(self): def test_diff(self):