wafer wants to be able to write its log, make it run with the debconf-web gid
[mirror/dsa-puppet.git] / modules / roles / files / static-mirroring / static-master-run
index e7e8b2d..95c9355 100755 (executable)
@@ -22,9 +22,9 @@ with open(conffile) as f:
     (name, value) = line.split("=")
     config[name] = value
 
-for key in ('base'):
+for key in ('base',):
   if not key in config:
-    raise Exception("Configuration element '%s' not found in config file %s", key, conffile)
+    raise Exception("Configuration element '%s' not found in config file %s"%(key, conffile))
 
 allclients = set()
 with open('/etc/static-clients.conf') as f:
@@ -174,14 +174,25 @@ def run_mirror(component):
   os.chmod(tmpdir_new, 0755)
 
   locks = []
-  for p in (componentdir, live, tmpdir_new):
-    if not os.path.exists(p): os.mkdir(p, 0755)
+  lockfiles = [ os.path.join(basemaster, component + ".lock") ]
+  for p in lockfiles:
     fd = os.open(p, os.O_RDONLY)
     log("Acquiring lock for %s(%d)."%(p,fd))
     fcntl.flock(fd, fcntl.LOCK_EX)
     locks.append(fd)
   log("All locks acquired.")
 
+  for p in (live, ):
+    if not os.path.exists(p): os.mkdir(p, 0755)
+
+  #for p in (componentdir, live, tmpdir_new):
+  #  if not os.path.exists(p): os.mkdir(p, 0755)
+  #  fd = os.open(p, os.O_RDONLY)
+  #  log("Acquiring lock for %s(%d)."%(p,fd))
+  #  fcntl.flock(fd, fcntl.LOCK_EX)
+  #  locks.append(fd)
+  #log("All locks acquired.")
+
   serialfile = os.path.join(componentdir, serialname)
   try:
     with open(serialfile) as f: serial = int(f.read())