noded: Fix /etc/hosts group ownership
authorBernardo Dal Seno <bdalseno@google.com>
Tue, 13 Dec 2011 15:01:24 +0000 (16:01 +0100)
committerBernardo Dal Seno <bdalseno@google.com>
Thu, 22 Dec 2011 13:12:41 +0000 (14:12 +0100)
When Ganeti was compiled with the option of running as a different
user/group, the group ownership of /etc/hosts was set to gnt-daemons.  Now
permissions for /etc/hosts are preserved (or set correctly).

Signed-off-by: Bernardo Dal Seno <bdalseno@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

lib/utils/nodesetup.py
test/ganeti.utils.nodesetup_unittest.py

index 0931ee3..5dfc621 100644 (file)
@@ -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):
index c3480c2..2c61489 100755 (executable)
@@ -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",