Add methods for excluded backup directories

Adds get, add, and delete methods for excluded backup directories
This commit is contained in:
xithical 2022-02-27 12:35:48 -06:00
parent 54d8ee4b7d
commit 29800eee3c

View File

@ -125,7 +125,7 @@ class Schedules(Model):
# Backups Class
#************************************************************************************************
class Backups(Model):
directories = CharField(null=True)
excluded_dirs = CharField(null=True)
max_backups = IntegerField()
server_id = ForeignKeyField(Servers, backref='backups_server')
class Meta:
@ -311,28 +311,28 @@ class helpers_management:
row = Backups.select().where(Backups.server_id == server_id).join(Servers)[0]
conf = {
"backup_path": row.server_id.backup_path,
"directories": row.directories,
"excluded_dirs": row.excluded_dirs,
"max_backups": row.max_backups,
"server_id": row.server_id.server_id
}
except IndexError:
conf = {
"backup_path": None,
"directories": None,
"excluded_dirs": None,
"max_backups": 0,
"server_id": server_id
}
return conf
@staticmethod
def set_backup_config(server_id: int, backup_path: str = None, max_backups: int = None):
def set_backup_config(server_id: int, backup_path: str = None, max_backups: int = None, excluded_dirs: list = None):
logger.debug(f"Updating server {server_id} backup config with {locals()}")
if Backups.select().where(Backups.server_id == server_id).count() != 0:
new_row = False
conf = {}
else:
conf = {
"directories": None,
"excluded_dirs": None,
"max_backups": 0,
"server_id": server_id
}
@ -354,6 +354,32 @@ class helpers_management:
Servers.update(backup_path=backup_path).where(Servers.server_id == server_id)
Backups.create(**conf)
logger.debug("Creating new backup record.")
@staticmethod
def get_excluded_backup_dirs(server_id: int):
excluded_dirs = Backups.select(Backups.excluded_dirs).where(Backups.server_id == server_id).execute()
dir_list = excluded_dirs.split(",")
return dir_list
@staticmethod
def add_excluded_backup_dir(server_id: int, dir_to_add: str):
dir_list = management_helper.get_excluded_backup_dirs()
if dir_to_add not in dir_list:
dir_list.append(dir_to_add)
excluded_dirs = ",".join(dir_list)
management_helper.set_backup_config(server_id=server_id, excluded_dirs=excluded_dirs)
else:
logger.debug(f"Not adding {dir_to_add} to excluded directories - already in the excluded directory list for server ID {server_id}")
@staticmethod
def del_excluded_backup_dir(server_id: int, dir_to_del: str):
dir_list = management_helper.get_excluded_backup_dirs()
if dir_to_del in dir_list:
dir_list.remove(dir_to_del)
excluded_dirs = ",".join(dir_list)
management_helper.set_backup_config(server_id=server_id, excluded_dirs=excluded_dirs)
else:
logger.debug(f"Not removing {dir_to_del} from excluded directories - not in the excluded directory list for server ID {server_id}")
management_helper = helpers_management()