Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion press/agent.py
Original file line number Diff line number Diff line change
Expand Up @@ -173,15 +173,21 @@ def reinstall_site(self, site):
)

def restore_site(self, site: "Site", skip_failing_patches=False):
from press.utils import sanitize_config

site.check_space_on_server_for_restore()
apps = [app.app for app in site.apps]
public_link, private_link, database_link = None, None, None
public_link, private_link, database_link, sanitized_config_content = None, None, None, None
if site.remote_database_file:
database_link = frappe.get_doc("Remote File", site.remote_database_file).download_link
if site.remote_public_file:
public_link = frappe.get_doc("Remote File", site.remote_public_file).download_link
if site.remote_private_file:
private_link = frappe.get_doc("Remote File", site.remote_private_file).download_link
if site.remote_config_file:
config_content = frappe.get_doc("Remote File", site.remote_config_file).get_content()
sanitized_config_content = sanitize_config(config_content) if config_content else None
sanitized_config_content.update({"maintenance_mode": 0}) if sanitized_config_content else None

data = {
"apps": apps,
Expand All @@ -190,6 +196,7 @@ def restore_site(self, site: "Site", skip_failing_patches=False):
"database": database_link,
"public": public_link,
"private": private_link,
"sanitized_config_content": sanitized_config_content,
"skip_failing_patches": skip_failing_patches,
"managed_database_config": self._get_managed_db_config(site),
}
Expand Down
3 changes: 3 additions & 0 deletions press/press/doctype/site/site.py
Original file line number Diff line number Diff line change
Expand Up @@ -1156,6 +1156,9 @@ def restore_site(self, skip_failing_patches=False):
):
raise Exception(f"Remote File {self.remote_database_file} is unavailable on S3")

if self.remote_database_file and not frappe.get_doc("Remote File", self.remote_config_file).exists():
raise Exception(f"Remote File {self.remote_config_file} is unavailable on S3")

agent = Agent(self.server)
job = agent.restore_site(self, skip_failing_patches=skip_failing_patches)
log_site_activity(self.name, "Restore", job=job.name)
Expand Down
Loading