def test_pending_builds(self):
        self.assertEquals(BuildRecord.pending_build_count(), 0)

        BuildRecord(series_id=1, architecture_id=1, priority=100,
                    source_package_name='foo1', version='1.2-2ubuntu2').save()
        self.assertEquals(BuildRecord.pending_build_count(), 1)

        BuildRecord(series_id=1, architecture_id=1, priority=200,
                    source_package_name='foo2', version='1.2-2ubuntu2').save()
        self.assertEquals(BuildRecord.pending_build_count(), 2)
Example #2
0
    def handle(self, action, codename, pkg_type, component, architecture,
                     pkg_name, pkg_version, *files, **options):
        if action != 'add' and action != 'replace':
            return

        if os.environ.get('REPREPRO_CAUSING_COMMAND') not in ('processincoming', 'pull'):
            # Only create build record if called by processincoming
            return

        if 'repository' in options:
            repository_name = options['repository']
        else:
            repository_name = get_repository_name()

        repository = Repository.objects.get(name=repository_name)
        series_name = codename[:-len('-proposed')]
        series = Series.objects.get(repository=repository, name=series_name)

        known_archs = dict([(arch.name, arch) for arch in Architecture.objects.all()])

        dsc = None
        for f in files:
            if f.endswith('.dsc'):
                dsc = f
                break
        if dsc is None:
            raise Exception('Adding dsc without .dsc file?!?')

        dsc = parse_dsc_file(os.path.join(repository.reprepro_outdir, dsc))

        requested_archs = dsc['Architecture'].split(' ')

        build_archs = set()

        for arch in requested_archs:
            if arch == 'all':
                build_archs.add(known_archs['i386'])
            elif arch == 'any':
                build_archs.update(known_archs.values())
            elif arch in known_archs:
                build_archs.add(known_archs[arch])

        print build_archs
        for arch in build_archs:
            br = BuildRecord(source_package_name=pkg_name,
                             version=pkg_version,
                             architecture=arch,
                             state=BuildRecord.NEEDS_BUILDING,
                             series=series)
            br.save()
Example #3
0
    def test_pending_builds(self):
        self.assertEquals(BuildRecord.pending_build_count(), 0)

        BuildRecord(series_id=1,
                    architecture_id=1,
                    priority=100,
                    source_package_name='foo1',
                    version='1.2-2ubuntu2').save()
        self.assertEquals(BuildRecord.pending_build_count(), 1)

        BuildRecord(series_id=1,
                    architecture_id=1,
                    priority=200,
                    source_package_name='foo2',
                    version='1.2-2ubuntu2').save()
        self.assertEquals(BuildRecord.pending_build_count(), 2)
    def test_high_priority_takes_precedence(self):
        br1 = BuildRecord(series_id=1, architecture_id=1, priority=100,
                          source_package_name='foo1', version='1.2-2ubuntu2')
        br1.save()

        br2 = BuildRecord(series_id=1, architecture_id=1, priority=200,
                          source_package_name='foo2', version='1.2-2ubuntu2')
        br2.save()

        br3 = BuildRecord(series_id=1, architecture_id=1, priority=150,
                          source_package_name='foo3', version='1.2-2ubuntu2')
        br3.save()

        self.assertEquals(BuildRecord.pending_build_count(), 3)
        bn = BuildNode(cloud_id=1).save()
        br = BuildRecord.pick_build(bn)
        self.assertEquals(br, br2)
 def test_no_pending_builds(self):
     bn = BuildNode(cloud_id=1).save()
     br = BuildRecord.pick_build(bn)
     self.assertIsNone(br)
def process_build_queue():
    BuildRecord.perform_single_build()
Example #7
0
    def test_high_priority_takes_precedence(self):
        br1 = BuildRecord(series_id=1,
                          architecture_id=1,
                          priority=100,
                          source_package_name='foo1',
                          version='1.2-2ubuntu2')
        br1.save()

        br2 = BuildRecord(series_id=1,
                          architecture_id=1,
                          priority=200,
                          source_package_name='foo2',
                          version='1.2-2ubuntu2')
        br2.save()

        br3 = BuildRecord(series_id=1,
                          architecture_id=1,
                          priority=150,
                          source_package_name='foo3',
                          version='1.2-2ubuntu2')
        br3.save()

        self.assertEquals(BuildRecord.pending_build_count(), 3)
        bn = BuildNode(cloud_id=1).save()
        br = BuildRecord.pick_build(bn)
        self.assertEquals(br, br2)
Example #8
0
 def test_no_pending_builds(self):
     bn = BuildNode(cloud_id=1).save()
     br = BuildRecord.pick_build(bn)
     self.assertIsNone(br)
Example #9
0
 def handle(self, **options):
     BuildRecord.perform_single_build()
Example #10
0
def process_build_queue():
    BuildRecord.perform_single_build()