From b0c26b876a28018fc9a6129e5555cc84bc2a59ab Mon Sep 17 00:00:00 2001 From: Houkime <> Date: Wed, 26 Oct 2022 12:32:16 +0000 Subject: [PATCH] add providers migration --- selfprivacy_api/migrations/providers.py | 43 +++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 selfprivacy_api/migrations/providers.py diff --git a/selfprivacy_api/migrations/providers.py b/selfprivacy_api/migrations/providers.py new file mode 100644 index 0000000..c565569 --- /dev/null +++ b/selfprivacy_api/migrations/providers.py @@ -0,0 +1,43 @@ +from selfprivacy_api.migrations.migration import Migration +from selfprivacy_api.utils import ReadUserData, WriteUserData + + +class CreateProviderFields(Migration): + """Unhardcode providers""" + + def get_migration_name(self): + return "create_provider_fields" + + def get_migration_description(self): + return "Add DNS, backup and server provider fields to enable user to choose between different clouds and to make the deployment adapt to these preferences." + + def is_migration_needed(self): + try: + with ReadUserData() as userdata: + return "dns" not in userdata + except Exception as e: + print(e) + return False + + def migrate(self): + # Write info about providers to userdata.json + try: + with WriteUserData() as userdata: + userdata["dns"] = { + "provider": "CLOUDFLARE", + "apiToken": userdata["cloudflare"]["apiToken"], + } + userdata["server"] = { + "provider": "HETZNER", + } + userdata["backup"] = { + "provider": "BACKBLAZE", + "accountId": userdata["backblaze"]["accountId"], + "accountKey": userdata["backblaze"]["accountKey"], + "bucket": userdata["backblaze"]["bucket"], + } + + print("Done") + except Exception as e: + print(e) + print("Error migrating provider fields")