Added possibility to keep a backup of the old config + check if config is valid before starting scripts.

This commit is contained in:
Mokaddem 2017-04-25 09:32:05 +02:00
parent e75d6afdd9
commit 318a557c56
2 changed files with 33 additions and 5 deletions

View file

@ -112,9 +112,17 @@ function launching_queues {
} }
function launching_scripts { function launching_scripts {
echo -e "\t* Checking configuration"
bash -c "./Update-conf.py"
exitStatus=$?
if [ $exitStatus -ge 1 ]; then
echo -e $RED"\t* Configuration not up-to-date"$DEFAULT
exit
fi
echo -e $GREEN"\t* Configuration up-to-date"$DEFAULT
screen -dmS "Script" screen -dmS "Script"
sleep 0.1 sleep 0.1
echo -e $GREEN"\t* Launching ZMQ scripts"$DEFAULT echo -e $GREEN"\t* Launching ZMQ scripts"$DEFAULT
screen -S "Script" -X screen -t "ModuleInformation" bash -c './ModulesInformationV2.py -k 0 -c 1; read x' screen -S "Script" -X screen -t "ModuleInformation" bash -c './ModulesInformationV2.py -k 0 -c 1; read x'
@ -253,7 +261,15 @@ for i in ${!options[@]}; do
bash -c "./Shutdown.py" bash -c "./Shutdown.py"
;; ;;
Update-config) Update-config)
echo -e "\t* Checking configuration"
bash -c "./Update-conf.py" bash -c "./Update-conf.py"
exitStatus=$?
if [ $exitStatus -ge 1 ]; then
echo -e $RED"\t* Configuration not up-to-date"$DEFAULT
exit
else
echo -e $GREEN"\t* Configuration up-to-date"$DEFAULT
fi
;; ;;
esac esac
fi fi

View file

@ -5,11 +5,15 @@ import ConfigParser
from ConfigParser import ConfigParser as cfgP from ConfigParser import ConfigParser as cfgP
import os import os
from collections import OrderedDict from collections import OrderedDict
import sys
import shutil
#return true if the configuration is up-to-date
def main(): def main():
configfile = os.path.join(os.environ['AIL_BIN'], 'packages/config.cfg') configfile = os.path.join(os.environ['AIL_BIN'], 'packages/config.cfg')
configfileBackup = os.path.join(os.environ['AIL_BIN'], 'packages/config.cfg') + '.backup'
if not os.path.exists(configfile): if not os.path.exists(configfile):
raise Exception('Unable to find the configuration file. \ raise Exception('Unable to find the configuration file. \
Did you set environment variables? \ Did you set environment variables? \
@ -45,8 +49,8 @@ def main():
dicoMissingItem[sec] = list_items dicoMissingItem[sec] = list_items
if len(missingSection) == 0 and len(missingItem) == 0: if len(missingSection) == 0 and len(missingItem) == 0:
print("Configuration up-to-date") #print("Configuration up-to-date")
return return True
print("/!\\ Configuration not complete. Missing following configuration: /!\\") print("/!\\ Configuration not complete. Missing following configuration: /!\\")
print("+--------------------------------------------------------------------+") print("+--------------------------------------------------------------------+")
for section in missingSection: for section in missingSection:
@ -62,8 +66,12 @@ def main():
resp = raw_input("Do you want to auto fix it? [y/n] ") resp = raw_input("Do you want to auto fix it? [y/n] ")
if resp != 'y': if resp != 'y':
return return False
else: else:
resp2 = raw_input("Do you want to keep a backup of the old configuration file? [y/n] ")
if resp2 == 'y':
shutil.move(configfile, configfileBackup)
#Do not keep item ordering in section. New items appened #Do not keep item ordering in section. New items appened
for section in missingItem: for section in missingItem:
for item, value in dicoMissingItem[section]: for item, value in dicoMissingItem[section]:
@ -75,6 +83,7 @@ def main():
with open(configfile, 'w') as f: with open(configfile, 'w') as f:
cfg.write(f) cfg.write(f)
return True
''' Return a new dico with the section ordered as the old configuration with the updated one added ''' ''' Return a new dico with the section ordered as the old configuration with the updated one added '''
@ -96,5 +105,8 @@ def add_items_to_correct_position(sample_dico, old_dico, missingSection, dicoMis
if __name__ == "__main__": if __name__ == "__main__":
main() if main():
sys.exit()
else:
sys.exit(1)