mirror of https://github.com/CIRCL/AIL-framework
				
				
				
			
		
			
				
	
	
		
			74 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			74 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
| #!/usr/bin/env python3
 | |
| # -*-coding:UTF-8 -*
 | |
| 
 | |
| """
 | |
| Update AIL
 | |
| ============================
 | |
| 
 | |
| Update AIL in the background
 | |
| 
 | |
| """
 | |
| 
 | |
| import os
 | |
| import logging
 | |
| import logging.config
 | |
| import sys
 | |
| import subprocess
 | |
| 
 | |
| sys.path.append(os.environ['AIL_BIN'])
 | |
| ##################################
 | |
| # Import Project packages
 | |
| ##################################
 | |
| from lib import ail_logger
 | |
| from lib import ail_updates
 | |
| 
 | |
| logging.config.dictConfig(ail_logger.get_config(name='updates'))
 | |
| def launch_background_upgrade(version):
 | |
|     logger = logging.getLogger()
 | |
|     logger.warning(f'launching background update {version}')
 | |
|     update = ail_updates.AILBackgroundUpdate(version)
 | |
|     nb_done = update.get_nb_scripts_done()
 | |
|     update.start()
 | |
|     scripts = update.get_scripts()
 | |
|     scripts = scripts[nb_done:]
 | |
|     for script in scripts:
 | |
|         print('launching background script update', script)
 | |
|         # launch script
 | |
|         update.start_script(script)
 | |
|         script_path = update.get_script_path()
 | |
|         if script_path:
 | |
|             try:
 | |
|                 process = subprocess.run(['python', script_path])
 | |
|                 if process.returncode != 0:
 | |
|                     stderr = process.stderr
 | |
|                     if stderr:
 | |
|                         error = stderr.decode()
 | |
|                         logger.error(error)
 | |
|                         update.set_error(error)
 | |
|                     else:
 | |
|                         update.set_error('Error Updater Script')
 | |
|                         logger.error('Error Updater Script')
 | |
|                     sys.exit(0)
 | |
|             except Exception as e:
 | |
|                 update.set_error(str(e))
 | |
|                 logger.error(str(e))
 | |
|                 sys.exit(0)
 | |
| 
 | |
|         if not update.get_error():
 | |
|             update.end_script()
 | |
|         else:
 | |
|             logger.warning('Updater exited on error')
 | |
|             sys.exit(0)
 | |
| 
 | |
|     update.end()
 | |
|     logger.warning(f'ending background update {version}')
 | |
| 
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|     if ail_updates.is_update_background_running():
 | |
|         v = ail_updates.get_update_background_version()
 | |
|         launch_background_upgrade(v)
 | |
|     else:
 | |
|         for ver in ail_updates.get_update_background_to_launch():
 | |
|             launch_background_upgrade(ver)
 |