Added script that checks configuration and may auto-fix it + added missing field in config.cfg.sample

This commit is contained in:
Mokaddem 2017-03-15 16:36:51 +01:00
parent 3261eca836
commit e225090e07
3 changed files with 84 additions and 1 deletions

View file

@ -183,7 +183,7 @@ islogged=`screen -ls | awk '/\.Logging\t/ {print strtonum($1)}'`
isqueued=`screen -ls | awk '/\.Queue\t/ {print strtonum($1)}'`
isscripted=`screen -ls | awk '/\.Script\t/ {print strtonum($1)}'`
options=("Redis" "LevelDB" "Logs" "Queues" "Scripts" "Killall" "Shutdown")
options=("Redis" "LevelDB" "Logs" "Queues" "Scripts" "Killall" "Shutdown" "Update-config")
menu() {
echo "What do you want to Launch?:"
@ -252,6 +252,9 @@ for i in ${!options[@]}; do
Shutdown)
bash -c "./Shutdown.py"
;;
Update-config)
bash -c "./Update-conf.py"
;;
esac
fi
done

79
bin/Update-conf.py Executable file
View file

@ -0,0 +1,79 @@
#!/usr/bin/env python2
# -*-coding:UTF-8 -*
import ConfigParser
from ConfigParser import RawConfigParser
import os
def main():
configfile = os.path.join(os.environ['AIL_BIN'], 'packages/config.cfg')
if not os.path.exists(configfile):
raise Exception('Unable to find the configuration file. \
Did you set environment variables? \
Or activate the virtualenv.')
configfileSample = os.path.join(os.environ['AIL_BIN'], 'packages/config.cfg.sample')
cfg = ConfigParser.ConfigParser()
cfg.read(configfile)
cfgSample = ConfigParser.ConfigParser()
cfgSample.read(configfileSample)
sections = RawConfigParser.sections(cfg)
sectionsSample = RawConfigParser.sections(cfgSample)
missingSection = []
dicoMissingSection = {}
missingItem = []
dicoMissingItem = {}
for sec in sectionsSample:
if sec not in sections:
missingSection += [sec]
dicoMissingSection[sec] = RawConfigParser.items(cfgSample, sec)
else:
setSample = set(RawConfigParser.options(cfgSample, sec))
setNormal = set(RawConfigParser.options(cfg, sec))
if setSample != setNormal:
missing_items = list(setSample.difference(setNormal))
missingItem += [sec]
list_items = []
for i in missing_items:
list_items.append( (i, cfgSample.get(sec, i)) )
dicoMissingItem[sec] = list_items
if len(missingSection) == 0 and len(missingItem) == 0:
print("Configuration up-to-date")
return
print("/!\\ Configuration not complete. Missing following configuration: /!\\")
print("+--------------------------------------------------------------------+")
for section in missingSection:
print("["+section+"]")
for item in dicoMissingSection[section]:
print(" - "+item[0])
for section in missingItem:
print("["+section+"]")
for item in dicoMissingItem[section]:
print(" - "+item[0])
print("+--------------------------------------------------------------------+")
resp = raw_input("Do you want to auto fix it? [y/n] ")
if resp != 'y':
return
else:
for section in missingSection:
cfg.add_section(section)
for item, value in dicoMissingSection[section]:
cfg.set(section, item, value)
for section in missingItem:
for item, value in dicoMissingItem[section]:
cfg.set(section, item, value)
with open(configfile, 'w') as f:
cfg.write(f)
if __name__ == "__main__":
main()

View file

@ -123,6 +123,7 @@ cc_tld = r'\.de$'
[Indexer]
type = whoosh
path = indexdir
register = indexdir/all_index.txt
#size in Mb
index_max_size = 2000