Skip to content

Commit 3a1ad67

Browse files
committed
Get Failed Alerts/Conditions script.
1 parent 3a497df commit 3a1ad67

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

get-failed-alerts.groovy

+49
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
/*** BEGIN META {
2+
"name" : "Get Failed Alerts",
3+
"comment" : "Get the failed condition (Alerts) defined by the User or in the system",
4+
"parameters" : [ ],
5+
"core": "1.609",
6+
"authors" : [
7+
{ name : "Allan Burdajewicz" }
8+
]
9+
} END META**/
10+
11+
import com.cloudbees.jenkins.plugin.metrics.views.Alerter
12+
import jenkins.model.Jenkins
13+
14+
//Get the Failed condition defined by default in CJP (cloudbees-monitoring)
15+
Jenkins.instance.actions
16+
.findAll { action -> action instanceof Alerter.RootActionImpl }
17+
.each {
18+
//Iterate on default CJE conditions (alert)
19+
action -> action.conditions
20+
//Find all the failed conditions
21+
.findAll { condition -> condition.activeState }
22+
.each { condition -> println "name: ${condition.name}, status: ${condition.status}, activeState: ${condition.activeState}"}
23+
}
24+
25+
//Get the Failed condition defined by the user
26+
Jenkins.instance.actions
27+
.findAll { action -> action instanceof Alerter.RootActionImpl }
28+
.each {
29+
//Iterate on conditions (alert) defined by the user
30+
action -> action.alerter.conditionList
31+
//Find all the failed conditions
32+
.findAll { condition -> condition.activeState }
33+
.each { condition -> println "name: ${condition.name}, status: ${condition.status}, activeState: ${condition.activeState}"}
34+
}
35+
36+
/**
37+
* Following can be used in EnvInject to grab the Alert status message and inject it in an Environment Variable.
38+
*/
39+
def map = [:]
40+
Alerter.RootActionImpl[] alerter = Jenkins.instance.actions.findAll { alerterImpl -> alerterImpl instanceof Alerter.RootActionImpl };
41+
if (alerter.size() > 0) {
42+
Alerter.Condition condition = alerter[0].alerter.conditionList.find { condition -> "myCondition".equals(condition.name) }
43+
if (condition) {
44+
map['MESSAGE'] = '${condition.name} failed on ${SOURCE_JENKINS_URL} with the following status "${condition.status}" '
45+
} else {
46+
map['MESSAGE'] = "OK"
47+
}
48+
}
49+
return map

0 commit comments

Comments
 (0)