Do not force remove containers
Paunch does docker/podman rm -f, when removes containers. It seems it returns too early, having some leftovers (like docker service endpoints) behind or pending for it to be removed later, in case of big fat deamons. Long story short, don't do rm -f and allow it to do its job gracefully and without a hurry. Change-Id: I346c49cb204f273bd7077ca5153412cda9846534 Closes-Bug: #1860004 Co-authored-by: Sergii Golovatiuk <sgolovat@redhat.com> Signed-off-by: Bogdan Dobrelya <bdobreli@redhat.com>
This commit is contained in:
parent
0560631b2d
commit
3813fc7f2b
|
@ -283,7 +283,8 @@ class BaseRunner(object):
|
|||
def remove_container(self, container):
|
||||
if self.cont_cmd == 'podman':
|
||||
systemd.service_delete(container=container, log=self.log)
|
||||
cmd = [self.cont_cmd, 'rm', '-f', container]
|
||||
self.execute([self.cont_cmd, 'stop', container], self.log)
|
||||
cmd = [self.cont_cmd, 'rm', container]
|
||||
cmd_stdout, cmd_stderr, returncode = self.execute(cmd, self.log)
|
||||
if returncode != 0:
|
||||
self.log.error('Error removing container: %s' % container)
|
||||
|
|
|
@ -247,12 +247,18 @@ class TestBaseBuilder(base.TestCase):
|
|||
six six
|
||||
two-12345678 two
|
||||
three-12345678 three''', '', 0),
|
||||
# stop five
|
||||
('', '', 0),
|
||||
# rm five
|
||||
('', '', 0),
|
||||
# stop six
|
||||
('', '', 0),
|
||||
# rm six
|
||||
('', '', 0),
|
||||
# inspect two
|
||||
('{"start_order": 1, "image": "centos:6"}', '', 0),
|
||||
# stop two, changed config data
|
||||
('', '', 0),
|
||||
# rm two, changed config data
|
||||
('', '', 0),
|
||||
# inspect three
|
||||
|
@ -298,13 +304,16 @@ three-12345678 three''', '', 0),
|
|||
mock.ANY
|
||||
),
|
||||
# rm containers not in config
|
||||
mock.call(['docker', 'rm', '-f', 'five'], mock.ANY),
|
||||
mock.call(['docker', 'rm', '-f', 'six'], mock.ANY),
|
||||
mock.call(['docker', 'stop', 'five'], mock.ANY),
|
||||
mock.call(['docker', 'rm', 'five'], mock.ANY),
|
||||
mock.call(['docker', 'stop', 'six'], mock.ANY),
|
||||
mock.call(['docker', 'rm', 'six'], mock.ANY),
|
||||
# rm two, changed config
|
||||
mock.call(['docker', 'inspect', '--type', 'container',
|
||||
'--format', '{{index .Config.Labels "config_data"}}',
|
||||
'two-12345678'], mock.ANY, False),
|
||||
mock.call(['docker', 'rm', '-f', 'two-12345678'], mock.ANY),
|
||||
mock.call(['docker', 'stop', 'two-12345678'], mock.ANY),
|
||||
mock.call(['docker', 'rm', 'two-12345678'], mock.ANY),
|
||||
# check three, config hasn't changed
|
||||
mock.call(['docker', 'inspect', '--type', 'container',
|
||||
'--format', '{{index .Config.Labels "config_data"}}',
|
||||
|
|
|
@ -269,7 +269,7 @@ class TestBaseRunner(base.TestCase):
|
|||
|
||||
self.runner.remove_container('one')
|
||||
self.assert_execute(
|
||||
popen, ['docker', 'rm', '-f', 'one']
|
||||
popen, ['docker', 'rm', 'one']
|
||||
)
|
||||
|
||||
@mock.patch('subprocess.Popen')
|
||||
|
|
Loading…
Reference in New Issue