mirror of
https://github.com/YunoHost/yunohost.git
synced 2024-09-03 20:06:10 +02:00
42 lines
1.3 KiB
Python
42 lines
1.3 KiB
Python
import os
|
|
|
|
from yunohost.utils.error import YunohostError
|
|
from moulinette.utils.log import getActionLogger
|
|
from moulinette.utils.filesystem import read_json, write_to_yaml
|
|
|
|
from yunohost.tools import Migration
|
|
from yunohost.utils.legacy import translate_legacy_settings_to_configpanel_settings
|
|
|
|
logger = getActionLogger("yunohost.migration")
|
|
|
|
SETTINGS_PATH = "/etc/yunohost/settings.yml"
|
|
OLD_SETTINGS_PATH = "/etc/yunohost/settings.json"
|
|
|
|
|
|
class MyMigration(Migration):
|
|
"Migrate old global settings to the new ConfigPanel global settings"
|
|
|
|
dependencies = ["migrate_to_bullseye"]
|
|
|
|
def run(self):
|
|
if not os.path.exists(OLD_SETTINGS_PATH):
|
|
return
|
|
|
|
try:
|
|
old_settings = read_json(OLD_SETTINGS_PATH)
|
|
except Exception as e:
|
|
raise YunohostError(f"Can't open setting file : {e}", raw_msg=True)
|
|
|
|
settings = {
|
|
translate_legacy_settings_to_configpanel_settings(k).split(".")[-1]: v[
|
|
"value"
|
|
]
|
|
for k, v in old_settings.items()
|
|
}
|
|
|
|
if settings.get("smtp_relay_host"):
|
|
settings["smtp_relay_enabled"] = True
|
|
|
|
# Here we don't use settings_set() from settings.py to prevent
|
|
# Questions to be asked when one run the migration from CLI.
|
|
write_to_yaml(SETTINGS_PATH, settings)
|