Sfoglia il codice sorgente

[ADD] delete old backups

robert 5 anni fa
parent
commit
a59be7313b
1 ha cambiato i file con 22 aggiunte e 5 eliminazioni
  1. 22 5
      backup.py

+ 22 - 5
backup.py

@@ -7,6 +7,7 @@ from dropbox.files import WriteMode
 from dropbox.exceptions import ApiError, AuthError
 from docker.errors import NotFound, APIError
 from io import BytesIO
+from datetime import datetime, timedelta
 import time
 
 BACKUP_AGE = 30
@@ -34,8 +35,23 @@ def get_dropbox_connection():
 '''
 def delete_dropbox_old_folder(dbx=None):
     if dbx == None:
-        return
+        return False
+
+    try:
+        result = dbx.files_list_folder('')
+        date_now = datetime.now()
+        
+        for folder in result.entries:
+            create_date = datetime.strptime(folder.name, '%Y_%m_%d')
+
+            if create_date <= date_now - timedelta(BACKUP_AGE):
+                # dbx.files_delete(folder.path_lower)
+                dbx.files_permanently_delete(folder.path_lower)
 
+        return True
+    except ApiError:
+        return False
+    
 '''
 '''
 def create_folder_path():
@@ -53,7 +69,7 @@ def create_dropbox_folder(folder_path, dbx=None):
         if len(result.matches) > 0:
             return False
 
-        dbx.files_create_folder(folder_path)
+        dbx.files_create_folder_v2(folder_path)
         return True
     except ApiError:
         return False
@@ -143,8 +159,8 @@ def upload_to_dropbox(backup_file_name, backup_path, docket_client, dbx):
 
         remote_path = ('%s/%s') % (backup_path, backup_file_name)
         dbx.files_upload(raw_data.read(), remote_path, mode=WriteMode('overwrite'))
-        raw_data.close()
 
+        raw_data.close()
         return True
     except (APIError, ApiError):
         return False
@@ -163,7 +179,6 @@ def delete_backup_file(backup_name, docker_client):
     if result.exit_code == -1:
         return False
 
-    print(result.output)
     return True
     
 
@@ -205,4 +220,6 @@ def run_backup():
 
     docker_client.close()
 
-run_backup()
+# run_backup()
+dbx = get_dropbox_connection()
+delete_dropbox_old_folder(dbx)