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