import tempfile
import time
-base="/srv/static.debian.org"
serialname = '.serial'
had_warnings = False
+conffile = '/etc/staticsync.conf'
+config={}
+
+with open(conffile) as f:
+ for line in f:
+ line = line.rstrip()
+ if not line or line.startswith("#"): continue
+ (name, value) = line.split("=")
+ config[name] = value
+
+for key in ('base',):
+ if not key in config:
+ raise Exception("Configuration element '%s' not found in config file %s"%(key, conffile))
+
allclients = set()
with open('/etc/static-clients.conf') as f:
for line in f:
stage2(pipes, status, 'abort', clients)
return False
- failedmirrorsfile = os.path.join(base, 'master', component + "-failedmirrors")
+ failedmirrorsfile = os.path.join(config['base'], 'master', component + "-failedmirrors")
if 'failed' in cnt:
log("WARNING: %d clients failed! Continuing anyway!"%(cnt['failed'],))
global had_warnings
clients = allclients - meta['extraignoreclients']
# setup
- basemaster = os.path.join(base, 'master')
+ basemaster = os.path.join(config['base'], 'master')
componentdir = os.path.join(basemaster, component)
cur = componentdir + '-current-push'
live = componentdir + '-current-live'
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())