podman - fix rootless container copy no pause (#66583)

Fixes #66263

Signed-off-by: Adam Miller <admiller@redhat.com>
This commit is contained in:
Adam Miller 2020-01-17 15:41:10 -06:00 committed by Sam Doran
parent 7ae5331218
commit 077a8b4898
2 changed files with 13 additions and 3 deletions

View file

@ -0,0 +1,2 @@
bugfixes:
- podman connection plugin - fix to handle the new default copy pause rootless containers from upstream (https://github.com/ansible/ansible/issues/66263)

View file

@ -163,10 +163,18 @@ class Connection(ConnectionBase):
display.vvv("PUT %s TO %s" % (in_path, out_path), host=self._container_id)
if not self._mount_point:
rc, stdout, stderr = self._podman(
"cp", [in_path, self._container_id + ":" + out_path], use_container_id=False)
"cp", [in_path, self._container_id + ":" + out_path], use_container_id=False
)
if rc != 0:
raise AnsibleError("Failed to copy file from %s to %s in container %s\n%s" % (
in_path, out_path, self._container_id, stderr))
if 'cannot copy into running rootless container with pause set' in to_native(stderr):
rc, stdout, stderr = self._podman(
"cp", ["--pause=false", in_path, self._container_id + ":" + out_path], use_container_id=False
)
if rc != 0:
raise AnsibleError(
"Failed to copy file from %s to %s in container %s\n%s" % (
in_path, out_path, self._container_id, stderr)
)
else:
real_out_path = self._mount_point + to_bytes(out_path, errors='surrogate_or_strict')
shutil.copyfile(