[server] Ajout d'une fonction de restoration des fichiers corrompus
This commit is contained in:
parent
41083f8806
commit
5b8b19fe19
1 changed files with 31 additions and 0 deletions
31
server.py
31
server.py
|
@ -157,6 +157,37 @@ def listfiles():
|
|||
files[fname] = file_dict["roles"]
|
||||
return files
|
||||
|
||||
@server_command('restorefiles')
|
||||
def restorefiles():
|
||||
"""Si un fichier a été corrompu, on restore son dernier backup valide"""
|
||||
os.chdir(serverconfig.STORE)
|
||||
|
||||
filenames = glob.glob('*.json')
|
||||
files = {}
|
||||
for filename in filenames:
|
||||
file_dict = json.loads(open(filename).read())
|
||||
if not ('-----BEGIN PGP MESSAGE-----' in file_dict["contents"]):
|
||||
fname = filename[:-5].decode('utf-8')
|
||||
with open(fname+'.bak') as f:
|
||||
line = f.readline()
|
||||
backup = ''
|
||||
while not (line==''):
|
||||
try:
|
||||
line_dict = json.loads(line)
|
||||
if ('-----BEGIN PGP MESSAGE-----' in line_dict["contents"]):
|
||||
backup = line
|
||||
except:
|
||||
pass
|
||||
line = f.readline()
|
||||
if not (backup == ''):
|
||||
files[fname] = 'restored'
|
||||
with open(fname+'.json','w') as f2:
|
||||
f2.write(backup)
|
||||
else:
|
||||
files[fname] = 'not restored'
|
||||
return files
|
||||
|
||||
|
||||
@server_command('getfile')
|
||||
def getfile(filename):
|
||||
"""Récupère le fichier ``filename``"""
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue