Académique Documents
Professionnel Documents
Culture Documents
Description du Projet :
- Première partie : classe ScriptingSystem :
Au lancement du projet lorsque on va exécuter le fichier main.py, celui-ci va
appeler le constructeur de la classe ScriptingSystem. Celui-ci prend en argument
le port sur lequel le serveur web local héberge le zip ainsi que le path relatif au
fichier config.json. La première méthode qui va ensuite être appelée est
configure(). Dans cette méthode on va initialiser l'ensemble des attributs de la
classe ScriptingSystem, à partir des données stockées dans le fichier config.
On aura en effet besoin de ces informations dans la suite du programme.
On appelle ensuite la méthode get_zip() qui va récupérer le zip stocké sur le
serveur web. On utilise pour cela la bibliothèque http de python. La méthode
extract_zip() extrait ensuite les fichiers du zip, puis on appelle la méthode
check_file() qui va vérifier que le fichier extrait est bien le fichier voulu
(dumpfile.sql dans notre cas récupéré à partir du champ ‘file’ du fichier de
config).
Par suite si le fichier récupéré est le bon on va instancier la classe SMBServer qui
récupère dans son constructeur les options de configuration du server SMB ( ip,
user, mdp, clientname, foldersharename) ainsi que le temps de sauvegarde des
fichier sur le server SMB (time_to_save définit par l’utilisateur dans le fichier de
config), et se connecte avec la librairie python smb.SMBConnection au server
SMB.
On execute ensuite la méthode send_to_smb_server() de la classe SMBServer , qui va
envoyer au server SMB, le fichier zip récupéré et formatté entre temps en .tgz
au server SMB. Puis la méthode archival_check() qui va vérifier tous les fichiers
stockés sur le server SMB et les supprimer si leur date de sauvegarde est
dépassée.
- Web Server :
Indépendamment dans le dossier web_server, le fichier web_serveur.py
permet de lancer le serveur web contenant le fichier zip, il utilise entre autres
les librairies http et socketserver et execute le lancement de ce server en
localhost sur le port 8080.
Annexe du Projet :