runroot: Adjust permissions always
Previously commands to adjust permissions do not run when main command failed and then files can't be cleaned up due to Permission Denied problem. JIRA: RHELCMP-4253 Signed-off-by: Haibo Lin <hlin@redhat.com>
This commit is contained in:
parent
b217470464
commit
2769232b72
@ -174,10 +174,13 @@ class Runroot(kobo.log.LoggingBase):
|
||||
# by the runroot task, so the Pungi user can access them.
|
||||
if chown_paths:
|
||||
paths = " ".join(shlex_quote(pth) for pth in chown_paths)
|
||||
command += " ; EXIT_CODE=$?"
|
||||
# Make the files world readable
|
||||
command += " && chmod -R a+r %s" % paths
|
||||
command += " ; chmod -R a+r %s" % paths
|
||||
# and owned by the same user that is running the process
|
||||
command += " && chown -R %d %s" % (os.getuid(), paths)
|
||||
command += " ; chown -R %d %s" % (os.getuid(), paths)
|
||||
# Exit with code of main command
|
||||
command += " ; exit $EXIT_CODE"
|
||||
|
||||
hostname = runroot_ssh_hostnames[arch]
|
||||
user = self.compose.conf.get("runroot_ssh_username", "root")
|
||||
|
@ -142,10 +142,13 @@ class KojiWrapper(object):
|
||||
|
||||
if chown_paths:
|
||||
paths = " ".join(shlex_quote(pth) for pth in chown_paths)
|
||||
command += " ; EXIT_CODE=$?"
|
||||
# Make the files world readable
|
||||
command += " && chmod -R a+r %s" % paths
|
||||
command += " ; chmod -R a+r %s" % paths
|
||||
# and owned by the same user that is running the process
|
||||
command += " && chown -R %d %s" % (os.getuid(), paths)
|
||||
command += " ; chown -R %d %s" % (os.getuid(), paths)
|
||||
# Exit with code of main command
|
||||
command += " ; exit $EXIT_CODE"
|
||||
cmd.append(command)
|
||||
|
||||
return cmd
|
||||
|
@ -594,7 +594,7 @@ class RunrootKojiWrapperTest(KojiWrapperBaseTestCase):
|
||||
self.assertEqual(cmd[-2], "s390x")
|
||||
self.assertEqual(
|
||||
cmd[-1],
|
||||
"rm -f /var/lib/rpm/__db*; rm -rf /var/cache/yum/*; set -x; /bin/echo '&' && chmod -R a+r '/output dir' /foo && chown -R 1010 '/output dir' /foo", # noqa: E501
|
||||
"rm -f /var/lib/rpm/__db*; rm -rf /var/cache/yum/*; set -x; /bin/echo '&' ; EXIT_CODE=$? ; chmod -R a+r '/output dir' /foo ; chown -R 1010 '/output dir' /foo ; exit $EXIT_CODE", # noqa: E501
|
||||
)
|
||||
six.assertCountEqual(
|
||||
self,
|
||||
|
@ -189,8 +189,10 @@ class TestRunrootOpenSSH(helpers.PungiTestCase):
|
||||
run.assert_has_calls(
|
||||
[
|
||||
self._ssh_call(
|
||||
"run df -h && chmod -R a+r /mnt/foo/compose /mnt/foo/x && "
|
||||
"chown -R %d /mnt/foo/compose /mnt/foo/x" % os.getuid()
|
||||
"run df -h ; EXIT_CODE=$? ; "
|
||||
"chmod -R a+r /mnt/foo/compose /mnt/foo/x ; "
|
||||
"chown -R %d /mnt/foo/compose /mnt/foo/x ; exit $EXIT_CODE"
|
||||
% os.getuid()
|
||||
),
|
||||
self._ssh_call(
|
||||
"run rpm -qa --qf='%{name}-%{version}-%{release}.%{arch}\n'",
|
||||
|
Loading…
Reference in New Issue
Block a user