8
# all changes mean we should regen the file
10
rl = subprocess.Popen("relation-list",stdout=subprocess.PIPE)
11
for memcached_unit in rl.stdout:
12
p = subprocess.Popen(["relation-get", "--format", "json", "-", memcached_unit],
13
stdout=subprocess.PIPE, close_fds=True)
14
settings = json.loads(p.stdout.read().strip())
16
if len(settings['ip']) and len(settings['port']):
17
memcached_ips.append("'"+settings['ip']+":"+settings['port']+"'")
19
print memcached_unit + " has no settings. ["+str(settings)+"]"
23
pprint.pprint(memcached_ips)
25
memcache_template = """<?php
26
$wgMainCacheType = CACHE_MEMCACHED;
27
$wgMemCachedServers = array(%s);
28
$wgSessionsInMemcached = true;
31
with tempfile.NamedTemporaryFile(dir='/etc/mediawiki',delete=False) as settings:
32
subprocess.call(["chmod","0644",settings.name])
33
if len(memcached_ips):
34
settings.write(memcache_template % ','.join(memcached_ips))
36
settings.write("<?php\n#No Memcached Servers\n")
39
os.unlink('/etc/mediawiki/memcached_settings.php.old')
42
os.rename('/etc/mediawiki/memcached_settings.php','/etc/mediawiki/memcached_settings.php.old')
43
os.rename(settings.name, '/etc/mediawiki/memcached_settings.php')