From: Michael Tremer Date: Tue, 6 Jun 2023 14:29:39 +0000 (+0000) Subject: release monitoring: Implement build check X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=19efe8a5fe29bda674509937f11021964359fb9a;p=pbs.git release monitoring: Implement build check This is so that we won't import any releases that are older than what we already know. Signed-off-by: Michael Tremer --- diff --git a/src/buildservice/releasemonitoring.py b/src/buildservice/releasemonitoring.py index 9f0c18bf..854d90d1 100644 --- a/src/buildservice/releasemonitoring.py +++ b/src/buildservice/releasemonitoring.py @@ -332,6 +332,10 @@ class Monitoring(base.DataObject): 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]) @@ -466,15 +470,17 @@ class Monitoring(base.DataObject): """ Returns True if a build with this version already exists """ - # XXX needs to check if we already have a newer version - # XXX packages don't have version separately - # XXX How do we get this from EVR? + # If there is no build to check against we return False + if not self.latest_build: + return False - #return version in [build.pkg.version for build in self.builds] + # Check if the version is larger than the build + with self.backend.pakfire() as p: + # Compare the versions + if p.version_compare(self.latest_build.pkg.evr, version) > 0: + return True - @property - def builds(self): - return self.distro.get_builds_by_name(self.name) + return False @lazy_property def latest_build(self):