backup sequencer pour sauvegarde LVM barbed ! #1
No reviewers
Labels
No labels
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
barbedfr/backup-tools!1
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/backupsequencer"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Une première version du backup sequencer -- voir README.md pour les infos.
Je rajouterai des commits pour étoffer le logging et les commentaires, mais prière de préciser si vous en voulez à des endroits spécifiques.
Quelques stats:
Le 0% de couverture sur
app.pyest dû au fait que je suis en train de voir pour écrire des tests d'intégration mais l'infra est lourde (2 machines, l'une avec une partition LVM)J'aurais pu faire des unitaires sur la méthode principale mais elle n'est pas très complexe et ça viendra en son temps.
@ -0,0 +52,4 @@for job_id, time_exec, result in async_results:try:result.get() # materialise the subprocess resultDe la part de @ookami:
Le problème ici est qu'il est théoriquement possible qu'une tâche de backup dans un process enfant devienne zombie ou prenne simplement trop de temps, bloquant les itération successives du backupsequencer.
Python expose un timeout sur
multiprocessing.pool.AsyncResult.get: https://docs.python.org/3.5/library/multiprocessing.html#multiprocessing.pool.AsyncResult.getÀ décider: quelle valeur pour le timeout ?
À étudier: qu'arrive-t-il en pratique quand un timeout est déclenché ?
@karthanistyr:
@ -0,0 +26,4 @@return current_time > last_backup_timedef check_running_pid(job_id):De la part de @ookami:
Un lockfile serait un fichier créé puis supprimé à la sortie du process. Il n'a pas besoin de contenu.
@ -0,0 +84,4 @@create_pid_file(job_id)archive_file_path = create_backup_archive(job_id, job_data, time_started)send_to_repository(archive_file_path, config['network'])De la part de @ookami:
Décision à prendre: garde-t-on les archives dont le transfert a échoué ?
J'ai ajouté un long commentaire signifiant qu'on garde les archives non-envoyées. On dépendra initialement d'un système externe pour observer si les archives s'accumulent (ou si le backup échoue de manière répétée).
Feu vert:
@Draak
@ookami
WIP: backup sequencer pour sauvegarde LVM barbed !to backup sequencer pour sauvegarde LVM barbed !