From 859f2271da86ecb2e2a28a74f271631d95944271 Mon Sep 17 00:00:00 2001 From: Tessa Walsh Date: Tue, 19 Sep 2023 12:05:48 -0400 Subject: [PATCH] fix(backend): call run now when updating crawlConfig #1194 Update backend/btrixcloud/crawlconfigs.py Co-authored-by: Tessa Walsh --- backend/btrixcloud/crawlconfigs.py | 11 +++++++++-- backend/btrixcloud/models.py | 1 + 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/backend/btrixcloud/crawlconfigs.py b/backend/btrixcloud/crawlconfigs.py index 093c2dfe..19e060c9 100644 --- a/backend/btrixcloud/crawlconfigs.py +++ b/backend/btrixcloud/crawlconfigs.py @@ -220,6 +220,7 @@ class CrawlConfigOps: async def update_crawl_config( self, cid: uuid.UUID, org: Organization, user: User, update: UpdateCrawlConfig ): + # pylint: disable=too-many-locals """Update name, scale, schedule, and/or tags for an existing crawl config""" orig_crawl_config = await self.get_crawl_config(cid, org.id) @@ -265,7 +266,9 @@ class CrawlConfigOps: != sorted(update.autoAddCollections) ) - if not changed and not metadata_changed: + run_now = update.runNow + + if not changed and not metadata_changed and not run_now: return { "updated": True, "settings_changed": changed, @@ -318,11 +321,15 @@ class CrawlConfigOps: status_code=404, detail=f"Crawl Config '{cid}' not found" ) - return { + ret = { "updated": True, "settings_changed": changed, "metadata_changed": metadata_changed, } + if run_now: + crawl_id = await self.run_now(str(cid), org, user) + ret["started"] = crawl_id + return ret async def get_crawl_configs( self, diff --git a/backend/btrixcloud/models.py b/backend/btrixcloud/models.py index 285b733a..4821b01d 100644 --- a/backend/btrixcloud/models.py +++ b/backend/btrixcloud/models.py @@ -259,6 +259,7 @@ class UpdateCrawlConfig(BaseModel): tags: Optional[List[str]] = None description: Optional[str] = None autoAddCollections: Optional[List[UUID4]] = None + runNow: bool = False # crawl data: revision tracked schedule: Optional[str] = None