]> git.ipfire.org Git - pbs.git/commitdiff
monitoring: Put the rate limiter in the correct place
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 2 Aug 2023 17:02:19 +0000 (17:02 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 2 Aug 2023 17:02:19 +0000 (17:02 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/buildservice/releasemonitoring.py

index 1944069bb6fd7fd08b4b645192905d456e00d6d6..44987ff9a03fa8a734ab805021cb7d1c60a700be 100644 (file)
@@ -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)