diff --git a/repoapi/models.py b/repoapi/models.py index 30f9591..edf3d2d 100644 --- a/repoapi/models.py +++ b/repoapi/models.py @@ -136,5 +136,10 @@ def gerrit_repo_manage(sender, **kwargs): gerrit_repo_add(instance) elif instance.gerrit_eventtype == "change-merged": gerrit_repo_del(instance) + elif instance.jobname.endswith("-cleanup") and \ + instance.result == "SUCCESS" and \ + instance.gerrit_eventtype == "change-abandoned": + logger.info("we need to count this %s", instance.param_ppa) + gerrit_repo_del(instance) signals.post_save.connect(gerrit_repo_manage, sender=JenkinsBuildInfo) diff --git a/repoapi/test/test_gerritinfo.py b/repoapi/test/test_gerritinfo.py index 0e3f75e..7b19113 100644 --- a/repoapi/test/test_gerritinfo.py +++ b/repoapi/test/test_gerritinfo.py @@ -348,3 +348,48 @@ class GerritRepoInfoTestCase(TestCase): param_ppa="gerrit_MT10339_review2054") self.assertEquals(gri.count(), 0) utils.assert_called_with("gerrit_MT10339_review2054") + + @patch('repoapi.utils.jenkins_remove_ppa') + def test_abandoned_review_del(self, utils): + JenkinsBuildInfo.objects.create( + tag="edc90cd9-37f3-4613-9748-ed05a32031c2", + projectname="kamailio", + jobname="kamailio-repos", + buildnumber=897, + result="SUCCESS", + job_url="https://jenkins.mgm.sipwise.com/job/kamailio-repos/", + gerrit_patchset="1", + gerrit_change="2054", + gerrit_eventtype="patchset-created", + param_tag="none", + param_branch="master", + param_release="none", + param_distribution="wheezy", + param_ppa="gerrit_MT10339_review2054") + + gri = GerritRepoInfo.objects.filter( + param_ppa="gerrit_MT10339_review2054") + self.assertEquals(gri.count(), 1) + utils.assert_not_called() + + JenkinsBuildInfo.objects.create( + tag="edc90cd9-37f3-4613-9748-ed05a32031c2", + projectname="kamailio", + jobname="kamailio-cleanup", + buildnumber=898, + result="SUCCESS", + job_url="https://jenkins.mgm.sipwise.com/job/" + "kamailio-cleanup/", + gerrit_patchset="2", + gerrit_change="2054", + gerrit_eventtype="change-abandoned", + param_tag="none", + param_branch="master", + param_release="none", + param_distribution="wheezy", + param_ppa="gerrit_MT10339_review2054") + + gri = GerritRepoInfo.objects.filter( + param_ppa="gerrit_MT10339_review2054") + self.assertEquals(gri.count(), 0) + utils.assert_called_with("gerrit_MT10339_review2054")