diff --git a/lib/utils/nodesetup.py b/lib/utils/nodesetup.py index 0931ee32053b687c031d8cbd33045ee044c215e0..5dfc62187ae631549de222872cde05d47bb30b92 100644 --- a/lib/utils/nodesetup.py +++ b/lib/utils/nodesetup.py @@ -62,7 +62,8 @@ def SetEtcHostsEntry(file_name, ip, hostname, aliases): out.write(line) _write_entry(written) - io.WriteFile(file_name, data=out.getvalue(), mode=0644) + io.WriteFile(file_name, data=out.getvalue(), uid=0, gid=0, mode=0644, + keep_perms=io.KP_IF_EXISTS) def AddHostToEtcHosts(hostname, ip): @@ -104,7 +105,8 @@ def RemoveEtcHostsEntry(file_name, hostname): out.write(line) - io.WriteFile(file_name, data=out.getvalue(), mode=0644) + io.WriteFile(file_name, data=out.getvalue(), uid=0, gid=0, mode=0644, + keep_perms=io.KP_IF_EXISTS) def RemoveHostFromEtcHosts(hostname): diff --git a/test/ganeti.utils.nodesetup_unittest.py b/test/ganeti.utils.nodesetup_unittest.py index c3480c2e082eea7430a62241c689042bb9c5a93a..2c6148921f940645b4dbe747172db990e633e373 100755 --- a/test/ganeti.utils.nodesetup_unittest.py +++ b/test/ganeti.utils.nodesetup_unittest.py @@ -44,6 +44,7 @@ class TestEtcHosts(testutils.GanetiTestCase): handle.write("192.0.2.1 router gw\n") finally: handle.close() + os.chmod(self.tmpname, 0644) def testSettingNewIp(self): utils.SetEtcHostsEntry(self.tmpname, "198.51.100.4", "myhost.example.com",