diff --git a/scripts/StagingUserAssignation.py b/scripts/StagingUserAssignation.py index 80403b3..b6ae25b 100644 --- a/scripts/StagingUserAssignation.py +++ b/scripts/StagingUserAssignation.py @@ -2,6 +2,7 @@ import os import argparse import logging +import time from functions import getSettings from includes.airwatchAPI import * from includes.GLPIAPI import * @@ -66,13 +67,21 @@ if(args.staginguser != None): stagingUser = args.staginguser # ====================================== # - - + # Vérification de la présence du verrou avant de continuer if(os.path.isfile(lockFile) and not args.force): - logger.debug('Lock file exists, exiting...') - exit(0) + # Récupération du temps de création de verrou en minutes + lockTime = (time.time() - os.path.getmtime(lockFile)) // 60 + # Recréation du verrou s'il existe depuis plus de 3 heures (crash) + # sinon on quitte, une synchro est déjà en cours + if(lockTime > 180): + os.remove(lockFile) + open(lockFile, "w").close() + else: + logger.debug('Lock file exists, exiting...') + exit(0) else: + # Création du verrou s'il n'existe pas open(lockFile, "w").close() # Initialisation de l'api Airwatch diff --git a/scripts/syncGLPI.py b/scripts/syncGLPI.py index 8787a7c..e66685c 100644 --- a/scripts/syncGLPI.py +++ b/scripts/syncGLPI.py @@ -2,6 +2,7 @@ import os import argparse import logging +import time from datetime import datetime from functions import getSettings from includes.airwatchAPI import * @@ -105,11 +106,21 @@ platformFilterOut = [12] # ====================================== # + # Vérification de la présence du verrou avant de continuer if(os.path.isfile(lockFile) and not args.force): - logger.debug('Lock file exists, exiting...') - exit(0) + # Récupération du temps de création de verrou en minutes + lockTime = (time.time() - os.path.getmtime(lockFile)) // 60 + # Recréation du verrou s'il existe depuis plus de 3 heures (crash) + # sinon on quitte, une synchro est déjà en cours + if(lockTime > 180): + os.remove(lockFile) + open(lockFile, "w").close() + else: + logger.debug('Lock file exists, exiting...') + exit(0) else: + # Création du verrou s'il n'existe pas open(lockFile, "w").close() logger.info("========= Synchronization started =========")