From: Michael Tremer Date: Wed, 2 Aug 2023 17:02:19 +0000 (+0000) Subject: monitoring: Put the rate limiter in the correct place X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7e67b9f16ed817d217af0765e64837628bac11fc;p=pbs.git monitoring: Put the rate limiter in the correct place Signed-off-by: Michael Tremer --- diff --git a/src/buildservice/releasemonitoring.py b/src/buildservice/releasemonitoring.py index 1944069b..44987ff9 100644 --- a/src/buildservice/releasemonitoring.py +++ b/src/buildservice/releasemonitoring.py @@ -303,50 +303,50 @@ class Monitoring(base.DataObject): # Check async def check(self): - release = None + log.info("Checking for new releases for %s" % self) - # Wait until we are allowed to send an API request - async with ratelimiter: - log.info("Checking for new releases for %s" % self) + release = None - # Fetch the current versions - versions = await self._fetch_versions() + # Fetch the current versions + versions = await self._fetch_versions() - with self.db.transaction(): - # Store timestamp of this check - self._set_attribute_now("last_check_at") + with self.db.transaction(): + # Store timestamp of this check + self._set_attribute_now("last_check_at") - try: - if self.follow == "latest": - release = await self._follow_latest(versions) - elif self.follow == "stable": - release = await self._follow_stable(versions) - elif self.follow == "current-branch": - release = await self._follow_current_branch(versions) - else: - raise ValueError("Cannot handle follow: %s" % self.follow) - - # If the release exists, do nothing - except ReleaseExistsError as e: - log.debug("Release %s already exists" % e) - - # The latest build is newer than this release - except BuildExistsError as e: - log.debug("Latest build is newer") - - # Launch the build - if release and release.build: - await self.backend.builds.launch([release.build]) + try: + if self.follow == "latest": + release = await self._follow_latest(versions) + elif self.follow == "stable": + release = await self._follow_stable(versions) + elif self.follow == "current-branch": + release = await self._follow_current_branch(versions) + else: + raise ValueError("Cannot handle follow: %s" % self.follow) + + # If the release exists, do nothing + except ReleaseExistsError as e: + log.debug("Release %s already exists" % e) + + # The latest build is newer than this release + except BuildExistsError as e: + log.debug("Latest build is newer") + + # Launch the build + if release and release.build: + await self.backend.builds.launch([release.build]) async def _fetch_versions(self): """ Fetches all versions for this project """ - response = await self.backend.monitorings._request( - "GET", "/api/v2/versions/", { - "project_id" : self.project_id, - }, - ) + # Wait until we are allowed to send an API request + async with ratelimiter: + response = await self.backend.monitorings._request( + "GET", "/api/v2/versions/", { + "project_id" : self.project_id, + }, + ) # Parse the response as JSON and return it return database.Row(response)