From 054890d683872ea4c2392accdba60a8b5eea3304 Mon Sep 17 00:00:00 2001 From: tanmoysrt <57363826+tanmoysrt@users.noreply.github.com> Date: Tue, 21 Jan 2025 16:51:12 +0530 Subject: [PATCH] feat(site): Add api to activate/deactivate site for update --- agent/server.py | 27 +++++++++++++++++++++------ agent/web.py | 19 +++++++++++++++++++ 2 files changed, 40 insertions(+), 6 deletions(-) diff --git a/agent/server.py b/agent/server.py index 08f0ca4b..c65264a2 100644 --- a/agent/server.py +++ b/agent/server.py @@ -261,9 +261,7 @@ def update_site_migrate_job( with suppress(Exception): site.bench_execute( - "execute" - " frappe.website.doctype.website_theme.website_theme" - ".generate_theme_files_if_not_exist" + "execute frappe.website.doctype.website_theme.website_theme.generate_theme_files_if_not_exist" ) if activate: @@ -274,6 +272,25 @@ def update_site_migrate_job( # v12 does not have build_search_index command site.build_search_index() + @job("Deactivate Site", priority="high") + def deactivate_site_job(self, name, bench): + source = Bench(bench, self) + site = Site(name, source) + + site.enable_maintenance_mode() + site.wait_till_ready() + + @job("Activate Site", priority="high") + def activate_site_job(self, name, bench): + source = Bench(bench, self) + site = Site(name, source) + + site.disable_maintenance_mode() + with suppress(Exception): + # Don't fail job on failure + # v12 does not have build_search_index command + site.build_search_index() + @job("Recover Failed Site Migrate", priority="high") def update_site_recover_migrate_job(self, name, source, target, activate, rollback_scripts): source = Bench(source, self) @@ -336,9 +353,7 @@ def move_site_to_bench(self, name, source, target, deactivate, activate, skip_fa with suppress(Exception): site.bench_execute( - "execute" - " frappe.website.doctype.website_theme.website_theme" - ".generate_theme_files_if_not_exist" + "execute frappe.website.doctype.website_theme.website_theme.generate_theme_files_if_not_exist" ) if activate: diff --git a/agent/web.py b/agent/web.py index c4a7b12d..1cdae796 100644 --- a/agent/web.py +++ b/agent/web.py @@ -709,6 +709,25 @@ def clear_site_cache(bench, site): return {"job": job} +@application.route( + "/benches//sites//activate", + methods=["POST"], +) +@validate_bench_and_site +def activate_site(bench, site): + job = Server().activate_site_job(site, bench) + return {"job": job} + + +@application.route( + "/benches//sites//deactivate", + methods=["POST"], +) +def deactivate_site(bench, site): + job = Server().deactivate_site_job(site, bench) + return {"job": job} + + @application.route( "/benches//sites//update/migrate", methods=["POST"],