Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Optimizations to project deletion and TestRun deletion. Fix for CUANT…

…O-82. Remove DataService.deleteTestCasesForProject() and tests.
  • Loading branch information...
commit 6bc4185559e73a37d25234643b7b83270f15c524 1 parent 5ed9b7b
@ttop authored
View
7 grails/grails-app/jobs/ProjectDeletionJob.groovy
@@ -33,10 +33,11 @@ class ProjectDeletionJob {
def toDelete = Project.findAllByDeleted(true)
toDelete.each {
def pg = it.projectGroup?.name
- log.info("Deleting ${it.name} from ProjectGroup ${pg}")
+ def startTime = new Date().time
+ log.info("Deleting project ${it.name}")
projectService.deleteProject(it)
- log.info("${it.name} from ProjectGroup ${pg} deleted")
+ def elapsed = new Date().time - startTime
+ log.info("Project ${it.name} deleted, ${elapsed} ms elapsed.")
}
}
-
}
View
12 grails/grails-app/services/cuanto/DataService.groovy
@@ -560,18 +560,6 @@ class DataService {
}
- def deleteTestCasesForProject(project) {
- def cases = getTestCases(project)
- cases.each { TestCase tc ->
- def outcomes = TestOutcome.findAllByTestCase(tc)
- outcomes.each { outcome ->
- outcome.delete(flush:true)
- }
- }
- TestCase.executeUpdate("delete cuanto.TestCase tc where tc.project = ?", [project])
- }
-
-
def getBugSummary(testRun) {
def bugStats = TestOutcome.executeQuery("""select distinct outc.bug, (select count(outb) from
cuanto.TestOutcome outb where outb.testRun = ? and outb.bug = outc.bug) from cuanto.TestOutcome
View
7 grails/grails-app/services/cuanto/ProjectService.groovy
@@ -60,10 +60,12 @@ class ProjectService {
if (project) {
def origGroup = project.projectGroup
def testRuns = dataService.getTestRunsByProject(project)
- dataService.deleteTestCasesForProject(project)
testRuns.each { testRun ->
- testRunService.deleteTestRun(testRun)
+ testRunService.deleteTestRun(testRun, false)
}
+
+ TestCase.executeUpdate("delete cuanto.TestCase tc where tc.project = ?", [project])
+
project.delete(flush: true)
deleteProjectGroupIfUnused(origGroup)
}
@@ -219,6 +221,7 @@ class ProjectService {
void queueForDeletion(Project project) {
def groupId = project?.projectGroup?.id
+ log.info "Queuing ${project.name} for deletion"
project.deleted = true
project.projectGroup = null
project.projectKey = String.valueOf(System.currentTimeMillis()).reverse()
View
24 grails/grails-app/services/cuanto/TestRunService.groovy
@@ -648,11 +648,15 @@ class TestRunService {
* after which FailureStatusUpdateTasks are queued for re-initialization of the isFailureStatusChanged field
* for all TestOutcomes in the next TestRun.
*/
- def deleteTestRun(TestRun run) {
- TestRun.withTransaction {
+ def deleteTestRun(TestRun run, recalc = true) {
try {
- TestRun testRun = TestRun.lock(run.id)
- TestRun nextRun = dataService.getNextTestRun(run)
+ TestRun testRun = TestRun.get(run.id)
+ TestRun nextRun = null
+
+ if (recalc) {
+ nextRun = dataService.getNextTestRun(run)
+ }
+
statisticService.dequeueTestRunStats(run.id)
statisticService.deleteStatsForTestRun(run)
@@ -684,7 +688,8 @@ class TestRunService {
testRun.save()
testRun.delete()
- if (nextRun) {
+
+ if (recalc && nextRun) {
failureStatusService.queueFailureStatusUpdateForRun(nextRun)
nextRun?.discard()
}
@@ -695,15 +700,12 @@ class TestRunService {
} catch (StaleObjectStateException e) {
log.error "StaleObjectStateException for test run ${run.id}"
}
- }
}
- Integer deleteTestRuns(testRunIds) {
- TestRun.withTransaction {
- testRunIds.each { runId ->
- deleteTestRun TestRun.get(runId)
- }
+ Integer deleteTestRuns(testRunIds, recalc = true) {
+ testRunIds.each { runId ->
+ deleteTestRun(TestRun.get(runId), recalc)
}
return testRunIds.size()
}
View
16 grails/test/integration/cuanto/TestCaseTests.groovy
@@ -154,20 +154,4 @@ class TestCaseTests extends GroovyTestCase {
assertEquals "Wrong number of test cases", 1, dataService.getTestCases(fetchedProj).size()
}
-
- void testDeleteTestCasesForProject() {
- def project = to.project
- dataService.saveDomainObject project
-
- def testCases = 10
- 1.upto(testCases) {
- def testCase = to.getTestCase(project)
- dataService.saveDomainObject testCase
- }
-
- assertEquals "Wrong number of test cases", testCases, TestCase.list().size()
- dataService.deleteTestCasesForProject(project)
- assertEquals "Wrong number of test cases", 0, TestCase.list().size()
- assertEquals "Wrong number of test outcomes", 0, TestOutcome.list().size()
- }
}
Please sign in to comment.
Something went wrong with that request. Please try again.