def getLatestPublishingEntry(self, time_interval, deb_only=True): """Return the BinaryPackagePublishingHistory record with the most recent datepublished. :deb_only: If True, return only publishing records whose binarypackagerelease's binarypackagefile.filetype is BinaryPackageFileType.DEB. """ query = """ BinaryPackagePublishingHistory.pocket = %s AND BinaryPackagePublishingHistory.component = %s AND BinaryPackagePublishingHistory.distroarchseries = %s AND BinaryPackagePublishingHistory.archive = %s AND BinaryPackagePublishingHistory.status = %s """ % sqlvalues(self.pocket, self.component, self.distro_arch_series, self.distro_arch_series.main_archive, PackagePublishingStatus.PUBLISHED) if deb_only: query += """ AND BinaryPackagePublishingHistory.binarypackagerelease = BinaryPackageFile.binarypackagerelease AND BinaryPackageFile.filetype = %s """ % sqlvalues(BinaryPackageFileType.DEB) if time_interval is not None: start, end = time_interval assert end > start, '%s is not more recent than %s' % (end, start) query = (query + " AND datepublished >= %s AND datepublished < %s" % sqlvalues(start, end)) return BinaryPackagePublishingHistory.selectFirst( query, clauseTables=['BinaryPackageFile'], orderBy='-datepublished')
def _latest_publishing_record(self, status=None): query = """ binarypackagerelease = %s AND distroarchseries = %s AND archive IN %s """ % sqlvalues(self.binarypackagerelease, self.distroarchseries, self.distribution.all_distro_archive_ids) if status is not None: if not isinstance(status, (tuple, list)): status = [status] query += " AND status IN %s" % sqlvalues(status) return BinaryPackagePublishingHistory.selectFirst( query, orderBy=['-datecreated', '-id'])
def _latest_publishing_record(self, status=None): query = """ binarypackagerelease = %s AND distroarchseries = %s AND archive IN %s """ % sqlvalues( self.binarypackagerelease, self.distroarchseries, self.distribution.all_distro_archive_ids ) if status is not None: if not isinstance(status, (tuple, list)): status = [status] query += " AND status IN %s" % sqlvalues(status) return BinaryPackagePublishingHistory.selectFirst(query, orderBy=["-datecreated", "-id"])