Ejemplo n.º 1
0
def clean_old_builds():
    """
    This garbage collects all builds which are "obsoleted" per user
    configuration, per models.Package.max_builds configuration.
    """
    with db_session_scope():
        BuildsLogic.clean_old_builds()
Ejemplo n.º 2
0
    def test_build_garbage_collector_works(self, f_users, f_coprs,
                                           f_mock_chroots, f_builds, f_db):

        assert len(self.db.session.query(models.Build).all()) == 4

        p = models.Package.query.filter_by(name='whatsupthere-world').first()
        p.max_builds = 1
        self.db.session.add(p)

        assert len(models.Package.query.all()) == 3
        BuildsLogic.clean_old_builds()

        # we can not delete not-yet finished builds!
        assert len(self.db.session.query(models.Build).all()) == 4

        for bch in self.b3.build_chroots:
            bch.status = StatusEnum('succeeded')
            self.db.session.add(bch)

        assert len(self.db.session.query(models.Build).all()) == 4
        BuildsLogic.clean_old_builds()
        assert len(self.db.session.query(models.Build).all()) == 3
Ejemplo n.º 3
0
 def run(self):
     with db_session_scope():
         BuildsLogic.clean_old_builds()