mirror of
https://gitlab.com/crafty-controller/crafty-4.git
synced 2024-08-30 18:23:09 +00:00
Merge branch 'xithical' into 'dev'
Backups improvements See merge request crafty-controller/crafty-commander!47
This commit is contained in:
commit
9883d980f4
@ -559,14 +559,6 @@ class Helpers:
|
||||
return json.loads(content)
|
||||
|
||||
@staticmethod
|
||||
def zip_directory(file, path, compression=zipfile.ZIP_LZMA):
|
||||
with zipfile.ZipFile(file, 'w', compression) as zf:
|
||||
for root, dirs, files in os.walk(path):
|
||||
for file in files:
|
||||
zf.write(os.path.join(root, file),
|
||||
os.path.relpath(os.path.join(root, file),
|
||||
os.path.join(path, '..')))
|
||||
@staticmethod
|
||||
def copy_files(source, dest):
|
||||
if os.path.isfile(source):
|
||||
shutil.copyfile(source, dest)
|
||||
|
@ -11,6 +11,8 @@ import schedule
|
||||
import logging.config
|
||||
import zipfile
|
||||
from threading import Thread
|
||||
import shutil
|
||||
import zlib
|
||||
import html
|
||||
|
||||
|
||||
@ -416,17 +418,15 @@ class Server:
|
||||
self.is_backingup = True
|
||||
conf = db_helper.get_backup_config(self.server_id)
|
||||
try:
|
||||
backup_filename = "{}/{}.zip".format(self.settings['backup_path'], datetime.datetime.now().strftime('%Y-%m-%d_%H-%M-%S'))
|
||||
backup_filename = "{}/{}".format(self.settings['backup_path'], datetime.datetime.now().strftime('%Y-%m-%d_%H-%M-%S'))
|
||||
logger.info("Creating backup of server '{}' (ID#{}) at '{}'".format(self.settings['server_name'], self.server_id, backup_filename))
|
||||
helper.zip_directory(backup_filename, self.server_path)
|
||||
while len(self.list_backups()) > conf["max_backups"]:
|
||||
shutil.make_archive(backup_filename, 'zip', self.server_path)
|
||||
while len(self.list_backups()) > conf["max_backups"] and conf["max_backups"] > 0:
|
||||
backup_list = self.list_backups()
|
||||
oldfile = backup_list[0]
|
||||
backup_path = self.settings['backup_path']
|
||||
old_file_name = oldfile['path']
|
||||
back_old_file = os.path.join(backup_path, old_file_name)
|
||||
logger.info("Removing old backup '{}'".format(oldfile))
|
||||
os.remove(back_old_file)
|
||||
oldfile_path = "{}/{}".format(conf['backup_path'], oldfile['path'])
|
||||
logger.info("Removing old backup '{}'".format(oldfile['path']))
|
||||
os.remove(oldfile_path)
|
||||
self.is_backingup = False
|
||||
logger.info("Backup of server: {} completed".format(self.name))
|
||||
return
|
||||
|
Loading…
Reference in New Issue
Block a user