merge changeset 9346 in the 4.2 branches
[nodemanager.git] / conf_files.py
index 5d1cb56..c5d5924 100644 (file)
@@ -29,7 +29,7 @@ class conf_files:
     def system(self, cmd):
         if not self.noscripts and cmd:
             logger.log('conf_files: running command %s' % cmd)
-            return os.system(cmd)
+            return tools.fork_as(None, os.system, cmd)
         else: return 0
 
     def update_conf_file(self, cf_rec):
@@ -39,8 +39,16 @@ class conf_files:
         if dest == '/etc/proper/propd.conf': return
         err_cmd = cf_rec['error_cmd']
         mode = string.atoi(cf_rec['file_permissions'], base=8)
-        uid = pwd.getpwnam(cf_rec['file_owner'])[2]
-        gid = grp.getgrnam(cf_rec['file_group'])[2]
+        try:
+            uid = pwd.getpwnam(cf_rec['file_owner'])[2]
+        except:
+            logger.log('conf_files: cannot find user %s -- %s not updated'%(cf_rec['file_owner'],dest))
+            return
+        try:
+            gid = grp.getgrnam(cf_rec['file_group'])[2]
+        except:
+            logger.log('conf_files: cannot find group %s -- %s not updated'%(cf_rec['file_group'],dest))
+            return
         url = 'https://%s/%s' % (self.config.PLC_BOOT_HOST, cf_rec['source'])
         try:
             contents = curlwrapper.retrieve(url, self.config.cacert)