podman-docker docker compat for ansible-test (#59539)
* podman-docker docker compat for ansible-test Signed-off-by: Adam Miller <admiller@redhat.com> * remove reprs, use ex.stderr instead Signed-off-by: Adam Miller <admiller@redhat.com> * remove u''s ... not needed Signed-off-by: Adam Miller <admiller@redhat.com> * Update test/runner/lib/docker_util.py Co-Authored-By: Matt Clay <matt@mystile.com> * Update test/runner/lib/docker_util.py Co-Authored-By: Matt Clay <matt@mystile.com> * make sanity tests happy Signed-off-by: Adam Miller <admiller@redhat.com>
This commit is contained in:
parent
f7af4875d3
commit
e9d7156f53
1 changed files with 16 additions and 2 deletions
|
@ -159,7 +159,13 @@ def docker_images(args, image):
|
||||||
:param image: str
|
:param image: str
|
||||||
:rtype: list[dict[str, any]]
|
:rtype: list[dict[str, any]]
|
||||||
"""
|
"""
|
||||||
stdout, _dummy = docker_command(args, ['images', image, '--format', '{{json .}}'], capture=True, always=True)
|
try:
|
||||||
|
stdout, _dummy = docker_command(args, ['images', image, '--format', '{{json .}}'], capture=True, always=True)
|
||||||
|
except SubprocessError as ex:
|
||||||
|
if 'no such image' in ex.stderr:
|
||||||
|
stdout = '' # podman does not handle this gracefully, exits 125
|
||||||
|
else:
|
||||||
|
raise ex
|
||||||
results = [json.loads(line) for line in stdout.splitlines()]
|
results = [json.loads(line) for line in stdout.splitlines()]
|
||||||
return results
|
return results
|
||||||
|
|
||||||
|
@ -169,7 +175,13 @@ def docker_rm(args, container_id):
|
||||||
:type args: EnvironmentConfig
|
:type args: EnvironmentConfig
|
||||||
:type container_id: str
|
:type container_id: str
|
||||||
"""
|
"""
|
||||||
docker_command(args, ['rm', '-f', container_id], capture=True)
|
try:
|
||||||
|
docker_command(args, ['rm', '-f', container_id], capture=True)
|
||||||
|
except SubprocessError as ex:
|
||||||
|
if 'no such container' in ex.stderr:
|
||||||
|
pass # podman does not handle this gracefully, exits 1
|
||||||
|
else:
|
||||||
|
raise ex
|
||||||
|
|
||||||
|
|
||||||
def docker_inspect(args, container_id):
|
def docker_inspect(args, container_id):
|
||||||
|
@ -185,6 +197,8 @@ def docker_inspect(args, container_id):
|
||||||
stdout = docker_command(args, ['inspect', container_id], capture=True)[0]
|
stdout = docker_command(args, ['inspect', container_id], capture=True)[0]
|
||||||
return json.loads(stdout)
|
return json.loads(stdout)
|
||||||
except SubprocessError as ex:
|
except SubprocessError as ex:
|
||||||
|
if 'no such image' in ex.stderr:
|
||||||
|
return [] # podman does not handle this gracefully, exits 125
|
||||||
try:
|
try:
|
||||||
return json.loads(ex.stdout)
|
return json.loads(ex.stdout)
|
||||||
except Exception:
|
except Exception:
|
||||||
|
|
Loading…
Reference in a new issue