mirror of
https://github.com/frappe/frappe_docker.git
synced 2024-12-24 19:10:25 +00:00
fix: restore encryption key on site restore
if encryption key exists for a site, it will now be restored to the site config while restoring site Signed-off-by: Chinmay D. Pai <chinmaydpai@gmail.com>
This commit is contained in:
parent
a42c0d1f40
commit
bdbcf40702
@ -1,5 +1,6 @@
|
|||||||
import os
|
import os
|
||||||
import datetime
|
import datetime
|
||||||
|
import json
|
||||||
import tarfile
|
import tarfile
|
||||||
import hashlib
|
import hashlib
|
||||||
import frappe
|
import frappe
|
||||||
@ -8,7 +9,7 @@ import boto3
|
|||||||
from new import get_password
|
from new import get_password
|
||||||
from push_backup import DATE_FORMAT, check_environment_variables
|
from push_backup import DATE_FORMAT, check_environment_variables
|
||||||
from frappe.utils import get_sites, random_string
|
from frappe.utils import get_sites, random_string
|
||||||
from frappe.installer import make_conf, get_conf_params, make_site_dirs
|
from frappe.installer import make_conf, get_conf_params, make_site_dirs, update_site_config
|
||||||
from check_connection import get_site_config, get_config
|
from check_connection import get_site_config, get_config
|
||||||
|
|
||||||
|
|
||||||
@ -38,7 +39,7 @@ def decompress_db(files_base, site):
|
|||||||
os.system(command)
|
os.system(command)
|
||||||
|
|
||||||
|
|
||||||
def restore_database(files_base, site):
|
def restore_database(files_base, site_config_path, site):
|
||||||
db_root_password = get_password('MYSQL_ROOT_PASSWORD')
|
db_root_password = get_password('MYSQL_ROOT_PASSWORD')
|
||||||
if not db_root_password:
|
if not db_root_password:
|
||||||
print('Variable MYSQL_ROOT_PASSWORD not set')
|
print('Variable MYSQL_ROOT_PASSWORD not set')
|
||||||
@ -96,6 +97,15 @@ def restore_database(files_base, site):
|
|||||||
print('Restoring database for site: {}'.format(site))
|
print('Restoring database for site: {}'.format(site))
|
||||||
os.system(command)
|
os.system(command)
|
||||||
|
|
||||||
|
if os.path.exists(site_config_path):
|
||||||
|
with open(site_config_path, 'r') as sc:
|
||||||
|
site_config = json.load(sc)
|
||||||
|
encryption_key = site_config.get("encryption_key")
|
||||||
|
if encryption_key:
|
||||||
|
print('Restoring site config for site: {}'.format(site))
|
||||||
|
update_site_config('encryption_key', encryption_key,
|
||||||
|
site_config_path=os.path.join(os.getcwd(), site, "site_config.json"))
|
||||||
|
|
||||||
|
|
||||||
def restore_files(files_base):
|
def restore_files(files_base):
|
||||||
public_files = files_base + '-files.tar'
|
public_files = files_base + '-files.tar'
|
||||||
@ -180,8 +190,9 @@ def main():
|
|||||||
latest_backup = max(backups).strftime(DATE_FORMAT)
|
latest_backup = max(backups).strftime(DATE_FORMAT)
|
||||||
files_base = os.path.join(backup_dir, site, latest_backup, '')
|
files_base = os.path.join(backup_dir, site, latest_backup, '')
|
||||||
files_base += latest_backup + '-' + site_slug
|
files_base += latest_backup + '-' + site_slug
|
||||||
|
site_config_path = os.path.join(backup_dir, site, 'site_config.json')
|
||||||
if site in get_sites():
|
if site in get_sites():
|
||||||
restore_database(files_base, site)
|
restore_database(files_base, site_config_path, site)
|
||||||
restore_private_files(files_base)
|
restore_private_files(files_base)
|
||||||
restore_files(files_base)
|
restore_files(files_base)
|
||||||
else:
|
else:
|
||||||
|
Loading…
Reference in New Issue
Block a user