Example #1
0
 def initial_values(self):
     distroseries = BuildableDistroSeries.findSeries(self.user)
     series = [
         series for series in distroseries
         if series.status in (SeriesStatus.CURRENT,
                              SeriesStatus.DEVELOPMENT)
     ]
     if IBranch.providedBy(self.context):
         recipe_text = MINIMAL_RECIPE_TEXT_BZR % self.context.identity
     elif IGitRepository.providedBy(self.context):
         default_ref = None
         if self.context.default_branch is not None:
             default_ref = self.context.getRefByPath(
                 self.context.default_branch)
         if default_ref is not None:
             branch_name = default_ref.name
         else:
             branch_name = "ENTER-BRANCH-NAME"
         recipe_text = MINIMAL_RECIPE_TEXT_GIT % (self.context.identity,
                                                  branch_name)
     elif IGitRef.providedBy(self.context):
         recipe_text = MINIMAL_RECIPE_TEXT_GIT % (
             self.context.repository.identity, self.context.name)
     else:
         raise AssertionError("Unsupported context: %r" % (self.context, ))
     return {
         'name': self._find_unused_name(self.user),
         'recipe_text': recipe_text,
         'owner': self.user,
         'distroseries': series,
         'build_daily': True,
         'use_ppa': EXISTING_PPA,
     }
    def requestBuild(self, archive, requester, distroseries,
                     pocket=PackagePublishingPocket.RELEASE,
                     manual=False):
        """See `ISourcePackageRecipe`."""
        if not archive.is_ppa:
            raise NonPPABuildRequest

        buildable_distros = BuildableDistroSeries.findSeries(archive.owner)
        if distroseries not in buildable_distros:
            raise BuildNotAllowedForDistro(self, distroseries)

        reject_reason = archive.checkUpload(
            requester, distroseries, None, archive.default_component,
            pocket)
        if reject_reason is not None:
            raise reject_reason
        if self.isOverQuota(requester, distroseries):
            raise TooManyBuilds(self, distroseries)
        pending = IStore(self).find(SourcePackageRecipeBuild,
            SourcePackageRecipeBuild.recipe_id == self.id,
            SourcePackageRecipeBuild.distroseries_id == distroseries.id,
            SourcePackageRecipeBuild.archive_id == archive.id,
            SourcePackageRecipeBuild.status == BuildStatus.NEEDSBUILD)
        if pending.any() is not None:
            raise BuildAlreadyPending(self, distroseries)

        build = getUtility(ISourcePackageRecipeBuildSource).new(distroseries,
            self, requester, archive)
        build.queueBuild()
        queue_record = build.buildqueue_record
        if manual:
            queue_record.manualScore(queue_record.lastscore + 100)
        return build
    def requestBuild(self, archive, requester, distroseries,
                     pocket=PackagePublishingPocket.RELEASE,
                     manual=False):
        """See `ISourcePackageRecipe`."""
        if not archive.is_ppa:
            raise NonPPABuildRequest

        buildable_distros = BuildableDistroSeries.findSeries(archive.owner)
        if distroseries not in buildable_distros:
            raise BuildNotAllowedForDistro(self, distroseries)

        reject_reason = archive.checkUpload(
            requester, distroseries, None, archive.default_component,
            pocket)
        if reject_reason is not None:
            raise reject_reason
        pending = IStore(self).find(SourcePackageRecipeBuild,
            SourcePackageRecipeBuild.recipe_id == self.id,
            SourcePackageRecipeBuild.distroseries_id == distroseries.id,
            SourcePackageRecipeBuild.archive_id == archive.id,
            SourcePackageRecipeBuild.status == BuildStatus.NEEDSBUILD)
        if pending.any() is not None:
            raise BuildAlreadyPending(self, distroseries)

        build = getUtility(ISourcePackageRecipeBuildSource).new(distroseries,
            self, requester, archive)
        build.queueBuild()
        queue_record = build.buildqueue_record
        if manual:
            queue_record.manualScore(queue_record.lastscore + 100)
        return build
Example #4
0
 def initial_values(self):
     series = [
         term.value for term in BuildableDistroSeries()
         if term.value.status in (SeriesStatus.CURRENT,
                                  SeriesStatus.DEVELOPMENT)
     ][0]
     return {
         'owner': self.user,
         'distro_series': series,
         'metadata': '{}',
     }
 def initial_values(self):
     distroseries = BuildableDistroSeries.findSeries(self.user)
     series = [series for series in distroseries if series.status in (
             SeriesStatus.CURRENT, SeriesStatus.DEVELOPMENT)]
     return {
         'name': self._find_unused_name(self.user),
         'recipe_text': MINIMAL_RECIPE_TEXT % self.context.bzr_identity,
         'owner': self.user,
         'distroseries': series,
         'build_daily': True,
         'use_ppa': EXISTING_PPA,
         }
Example #6
0
 def initial_values(self):
     distroseries = BuildableDistroSeries.findSeries(self.user)
     series = [
         series for series in distroseries
         if series.status in (SeriesStatus.CURRENT,
                              SeriesStatus.DEVELOPMENT)
     ]
     return {
         'name': self._find_unused_name(self.user),
         'recipe_text': MINIMAL_RECIPE_TEXT % self.context.bzr_identity,
         'owner': self.user,
         'distroseries': series,
         'build_daily': True,
         'use_ppa': EXISTING_PPA,
     }
 def performDailyBuild(self):
     """See `ISourcePackageRecipe`."""
     builds = []
     self.is_stale = False
     buildable_distros = set(
         BuildableDistroSeries.findSeries(self.daily_build_archive.owner))
     build_for = set(self.distroseries).intersection(buildable_distros)
     for distroseries in build_for:
         try:
             build = self.requestBuild(self.daily_build_archive, self.owner,
                                       distroseries,
                                       PackagePublishingPocket.RELEASE)
             builds.append(build)
         except BuildAlreadyPending:
             continue
     return builds
 def performDailyBuild(self):
     """See `ISourcePackageRecipe`."""
     builds = []
     self.is_stale = False
     buildable_distros = set(BuildableDistroSeries.findSeries(
         self.daily_build_archive.owner))
     build_for = set(self.distroseries).intersection(buildable_distros)
     for distroseries in build_for:
         try:
             build = self.requestBuild(
                 self.daily_build_archive, self.owner,
                 distroseries, PackagePublishingPocket.RELEASE)
             builds.append(build)
         except BuildAlreadyPending:
             continue
     return builds
 def containsUnbuildableSeries(self, archive):
     buildable_distros = set(BuildableDistroSeries.findSeries(
         archive.owner))
     return len(set(self.distroseries).difference(buildable_distros)) >= 1
 def containsUnbuildableSeries(self, archive):
     buildable_distros = set(
         BuildableDistroSeries.findSeries(archive.owner))
     return len(set(self.distroseries).difference(buildable_distros)) >= 1