From 036f4267c92faaa7c21ce2722768c0290217d6f6 Mon Sep 17 00:00:00 2001 From: Quentin Duchemin <quentinduchemin@tuta.io> Date: Thu, 11 Jun 2020 20:12:49 +0200 Subject: [PATCH] [DBBackup] Fix weekpad db, rebuild image for PG12 and cron to 3AM --- pica-db-backup/CHANGELOG.md | 4 ++ pica-db-backup/Dockerfile | 4 +- pica-db-backup/backup_env_var.py | 62 ++++++++++++------------ pica-db-backup/config/backup_config.json | 2 +- pica-db-backup/docker-compose.yml | 2 +- 5 files changed, 38 insertions(+), 36 deletions(-) create mode 100644 pica-db-backup/CHANGELOG.md diff --git a/pica-db-backup/CHANGELOG.md b/pica-db-backup/CHANGELOG.md new file mode 100644 index 00000000..553af7a9 --- /dev/null +++ b/pica-db-backup/CHANGELOG.md @@ -0,0 +1,4 @@ +## Version 1.3 + +* Update for PG12+ +* Default cron hour at 03:00AM diff --git a/pica-db-backup/Dockerfile b/pica-db-backup/Dockerfile index 2520e769..7d91ec66 100644 --- a/pica-db-backup/Dockerfile +++ b/pica-db-backup/Dockerfile @@ -3,7 +3,7 @@ FROM python:3-slim-buster RUN apt-get update && \ apt-get install -y --no-install-recommends \ iputils-ping \ - postgresql-client \ + postgresql-client-12 \ default-mysql-client \ mongo-tools \ cron && \ @@ -15,7 +15,7 @@ COPY mysql-run.sh /scripts/mysql/mysql-run.sh COPY postgres-run.sh /scripts/postgresql/postgres-run.sh COPY mongo-run.sh /scripts/mongodb/mongo-run.sh -ENV CRON_TIME="0 0 * * *" +ENV CRON_TIME="0 3 * * *" VOLUME ["/backup"] diff --git a/pica-db-backup/backup_env_var.py b/pica-db-backup/backup_env_var.py index dc9f6029..3afd0fc5 100755 --- a/pica-db-backup/backup_env_var.py +++ b/pica-db-backup/backup_env_var.py @@ -6,17 +6,17 @@ import json # Take a variable and set it as environment variable def add_value_to_key(value, key): if "MONGO" in key: - if(flag_mongo): + if flag_mongo: os.environ[key] = os.environ[key] + "," + value else: os.environ[key] = value if "MYSQL" in key: - if(flag_mysql): + if flag_mysql: os.environ[key] = os.environ[key] + "," + value else: os.environ[key] = value if "POSTGRES" in key: - if(flag_postgres): + if flag_postgres: os.environ[key] = os.environ[key] + "," + value else: os.environ[key] = value @@ -24,7 +24,7 @@ def add_value_to_key(value, key): CONFIG_FILE = '/config/backup_config.json' # Check if config file exists -if not(os.path.isfile(CONFIG_FILE)): +if not os.path.isfile(CONFIG_FILE): sys.stderr.write("Error : {0} config file not found".format(CONFIG_FILE)) sys.exit() @@ -39,58 +39,56 @@ for service in services_list: if services_list[service]["Type"] == "mongo": # Mongo DB handling - add_value_to_key(service,"MONGO_SERVICE_NAME_LIST") - add_value_to_key(services_list[service]["Host"],"MONGO_HOST_LIST") - add_value_to_key(services_list[service]["Port"],"MONGO_PORT_LIST") - add_value_to_key(services_list[service]["Database"],"MONGO_DB_LIST") - add_value_to_key(services_list[service]["Init-Backup"],"MONGO_INIT_BACKUP_LIST") - add_value_to_key(services_list[service]["Cron"],"MONGO_CRON_TIME_LIST") - add_value_to_key(services_list[service]["Folder"],"MONGO_BACKUP_FOLDER_LIST") + add_value_to_key(service, "MONGO_SERVICE_NAME_LIST") + add_value_to_key(services_list[service]["Host"], "MONGO_HOST_LIST") + add_value_to_key(services_list[service]["Port"], "MONGO_PORT_LIST") + add_value_to_key(services_list[service]["Database"], "MONGO_DB_LIST") + add_value_to_key(services_list[service]["Init-Backup"], "MONGO_INIT_BACKUP_LIST") + add_value_to_key(services_list[service]["Cron"], "MONGO_CRON_TIME_LIST") + add_value_to_key(services_list[service]["Folder"], "MONGO_BACKUP_FOLDER_LIST") flag_mongo = True - if services_list[service]["Type"] == "mysql": # MySQL DB handling - add_value_to_key(service,"MYSQL_SERVICE_NAME_LIST") - add_value_to_key(services_list[service]["Host"],"MYSQL_HOST_LIST") - add_value_to_key(services_list[service]["Port"],"MYSQL_PORT_LIST") + add_value_to_key(service, "MYSQL_SERVICE_NAME_LIST") + add_value_to_key(services_list[service]["Host"], "MYSQL_HOST_LIST") + add_value_to_key(services_list[service]["Port"], "MYSQL_PORT_LIST") user = services_list[service]["User"] if user in os.environ: user = os.environ[user] - add_value_to_key(user,"MYSQL_USER_LIST") + add_value_to_key(user, "MYSQL_USER_LIST") password = services_list[service]["Password"] if password in os.environ: password = os.environ[password] - add_value_to_key(password,"MYSQL_PASS_LIST") - add_value_to_key(services_list[service]["Database"],"MYSQL_DB_LIST") - add_value_to_key(services_list[service]["Init-Backup"],"MYSQL_INIT_BACKUP_LIST") - add_value_to_key(services_list[service]["Cron"],"MYSQL_CRON_TIME_LIST") - add_value_to_key(services_list[service]["Folder"],"MYSQL_BACKUP_FOLDER_LIST") - add_value_to_key(services_list[service]["Options"],"MYSQL_EXTRA_OPTS_LIST") + add_value_to_key(password, "MYSQL_PASS_LIST") + add_value_to_key(services_list[service]["Database"], "MYSQL_DB_LIST") + add_value_to_key(services_list[service]["Init-Backup"], "MYSQL_INIT_BACKUP_LIST") + add_value_to_key(services_list[service]["Cron"], "MYSQL_CRON_TIME_LIST") + add_value_to_key(services_list[service]["Folder"], "MYSQL_BACKUP_FOLDER_LIST") + add_value_to_key(services_list[service]["Options"], "MYSQL_EXTRA_OPTS_LIST") flag_mysql = True - if services_list[service]["Type"] == "postgres": # PostgreSQL handling - add_value_to_key(service,"POSTGRES_SERVICE_NAME_LIST") - add_value_to_key(services_list[service]["Host"],"POSTGRES_HOST_LIST") - add_value_to_key(services_list[service]["Port"],"POSTGRES_PORT_LIST") + add_value_to_key(service, "POSTGRES_SERVICE_NAME_LIST") + add_value_to_key(services_list[service]["Host"], "POSTGRES_HOST_LIST") + add_value_to_key(services_list[service]["Port"], "POSTGRES_PORT_LIST") user = services_list[service]["User"] if user in os.environ: user = os.environ[user] - add_value_to_key(user,"POSTGRES_USER_LIST") + add_value_to_key(user, "POSTGRES_USER_LIST") password = services_list[service]["Password"] if password in os.environ: password = os.environ[password] - add_value_to_key(password,"POSTGRES_PASS_LIST") - add_value_to_key(services_list[service]["Database"],"POSTGRES_DB_LIST") - add_value_to_key(services_list[service]["Init-Backup"],"POSTGRES_INIT_BACKUP_LIST") - add_value_to_key(services_list[service]["Cron"],"POSTGRES_CRON_TIME_LIST") - add_value_to_key(services_list[service]["Folder"],"POSTGRES_BACKUP_FOLDER_LIST") + add_value_to_key(password, "POSTGRES_PASS_LIST") + add_value_to_key(services_list[service]["Database"], "POSTGRES_DB_LIST") + add_value_to_key(services_list[service]["Init-Backup"], "POSTGRES_INIT_BACKUP_LIST") + add_value_to_key(services_list[service]["Cron"], "POSTGRES_CRON_TIME_LIST") + add_value_to_key(services_list[service]["Folder"], "POSTGRES_BACKUP_FOLDER_LIST") flag_postgres = True # Closing config file diff --git a/pica-db-backup/config/backup_config.json b/pica-db-backup/config/backup_config.json index b45c9396..5459bb70 100644 --- a/pica-db-backup/config/backup_config.json +++ b/pica-db-backup/config/backup_config.json @@ -27,7 +27,7 @@ "Port": "5432", "User": "ETHERPAD_WEEK_DB_USER", "Password": "ETHERPAD_WEEK_DB_PASSWORD", - "Database": "--all-databases", + "Database": "weekpad", "Type": "postgres", "Folder": "etherpad-week", "Cron": "0 1 * * *", diff --git a/pica-db-backup/docker-compose.yml b/pica-db-backup/docker-compose.yml index 17a168af..08d1ec88 100644 --- a/pica-db-backup/docker-compose.yml +++ b/pica-db-backup/docker-compose.yml @@ -13,7 +13,7 @@ networks: services: db-backup: - image: registry.picasoft.net/pica-db-backup:1.2 + image: registry.picasoft.net/pica-db-backup:1.3 container_name: db-backup volumes: - /DATA/BACKUP/:/backup/ -- GitLab