This scripts displays a list of all failed jobs. Addon: restart them.

// Get the list of failed jobs
activeJobs = hudson.model.Hudson.instance.items.findAll{job -> job.isBuildable()}
failedRuns = activeJobs.findAll{job -> job.lastBuild != null && job.lastBuild.result == hudson.model.Result.FAILURE}
// Do something with them - e.g. listing them
failedRuns.each{run -> println(}

Sample ouput produced:

Result: [hudson.model.FreeStyleProject@1f39c59[ProjectA], hudson.model.FreeStyleProject@16a93b8[ProjectB], hudson.model.FreeStyleProject@12947ee[ProjectC]]


If you have a list of failed jobs you also could do other things than just printing them. The key is changing the last closure.

Addon: Restart

startServer = "admin computer"
startNote   = "bulk start"
cause = new hudson.model.Cause.RemoteCause(startServer, startNote)
failedRuns.each{run -> run.scheduleBuild(cause)}