Skip to content
This repository has been archived by the owner on May 28, 2024. It is now read-only.

Commit

Permalink
Merge pull request #121 from jenkinsci/INT-2832-use-violation-counts
Browse files Browse the repository at this point in the history
  • Loading branch information
eduard-tita committed Jun 18, 2020
2 parents 3ca620a + 2e8a5d0 commit 3039abd
Show file tree
Hide file tree
Showing 12 changed files with 82 additions and 82 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@
<dependency>
<groupId>com.sonatype.nexus</groupId>
<artifactId>nexus-platform-api</artifactId>
<version>3.14</version>
<version>3.15</version>
<classifier>internal</classifier>
</dependency>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,11 @@ class PolicyEvaluationHealthAction

private final int affectedComponentCount

private final int criticalComponentCount
private final int criticalPolicyViolationCount

private final int severeComponentCount
private final int severePolicyViolationCount

private final int moderateComponentCount
private final int moderatePolicyViolationCount

private final int grandfatheredPolicyViolationCount

Expand All @@ -53,26 +53,26 @@ class PolicyEvaluationHealthAction
this.run = run
this.reportLink = policyEvaluationResult.applicationCompositionReportUrl
this.affectedComponentCount = policyEvaluationResult.affectedComponentCount
this.criticalComponentCount = policyEvaluationResult.criticalComponentCount
this.severeComponentCount = policyEvaluationResult.severeComponentCount
this.moderateComponentCount = policyEvaluationResult.moderateComponentCount
this.criticalPolicyViolationCount = policyEvaluationResult.criticalPolicyViolationCount
this.severePolicyViolationCount = policyEvaluationResult.severePolicyViolationCount
this.moderatePolicyViolationCount = policyEvaluationResult.moderatePolicyViolationCount
this.grandfatheredPolicyViolationCount = policyEvaluationResult.grandfatheredPolicyViolationCount
}

int getBuildNumber() {
return run.number
}

int getCriticalComponentCount() {
return criticalComponentCount
int getCriticalPolicyViolationCount() {
return criticalPolicyViolationCount
}

int getSevereComponentCount() {
return severeComponentCount
int getSeverePolicyViolationCount() {
return severePolicyViolationCount
}

int getModerateComponentCount() {
return moderateComponentCount
int getModeratePolicyViolationCount() {
return moderatePolicyViolationCount
}

int getGrandfatheredPolicyViolationCount() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@ class PolicyFailureMessageFormatter
def warnings = groupedActions.get(Action.ID_WARN).
collect { Messages.PolicyFailureMessageFormatter_PolicyWarning(it) }
def summary = [Messages.PolicyFailureMessageFormatter_EvaluationReport(evaluation.applicationCompositionReportUrl),
Messages.PolicyFailureMessageFormatter_EvaluationSummary(evaluation.criticalComponentCount,
evaluation.severeComponentCount, evaluation.moderateComponentCount)]
Messages.PolicyFailureMessageFormatter_EvaluationSummary(evaluation.criticalPolicyViolationCount,
evaluation.severePolicyViolationCount, evaluation.moderatePolicyViolationCount)]
return ([(failures + warnings).join('\n\n')] + summary).join('\n')
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,9 +93,9 @@ def policyUI = {
}
}
div(class: 'p-iq-chiclet') {
span(class: 'iq-chiclet critical', action.criticalComponentCount ? action.criticalComponentCount : 0)
span(class: 'iq-chiclet severe', action.severeComponentCount ? action.severeComponentCount : 0)
span(class: 'iq-chiclet moderate', action.moderateComponentCount ? action.moderateComponentCount : 0)
span(class: 'iq-chiclet critical', action.criticalPolicyViolationCount ? action.criticalPolicyViolationCount : 0)
span(class: 'iq-chiclet severe', action.severePolicyViolationCount ? action.severePolicyViolationCount : 0)
span(class: 'iq-chiclet moderate', action.moderatePolicyViolationCount ? action.moderatePolicyViolationCount : 0)
span(class: 'iq-chiclet-message',
Messages.IqPolicyEvaluation_NumberGrandfathered(action.grandfatheredPolicyViolationCount))
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -122,9 +122,9 @@ if (action) {
}
}
div(class: 'p-iq-chiclet') {
span(class: 'iq-chiclet critical', action.criticalComponentCount ? action.criticalComponentCount : 0)
span(class: 'iq-chiclet severe', action.severeComponentCount ? action.severeComponentCount : 0)
span(class: 'iq-chiclet moderate', action.moderateComponentCount ? action.moderateComponentCount : 0)
span(class: 'iq-chiclet critical', action.criticalPolicyViolationCount ? action.criticalPolicyViolationCount : 0)
span(class: 'iq-chiclet severe', action.severePolicyViolationCount ? action.severePolicyViolationCount : 0)
span(class: 'iq-chiclet moderate', action.moderatePolicyViolationCount ? action.moderatePolicyViolationCount : 0)
span(class: 'iq-chiclet-message',
Messages.IqPolicyEvaluation_NumberGrandfathered(action.grandfatheredPolicyViolationCount))
}
Expand Down Expand Up @@ -162,8 +162,8 @@ class Summary {

Summary(PolicyEvaluationHealthAction action) {
this.buildNumber = action.getBuildNumber()
this.criticalCount = action.getCriticalComponentCount()
this.severeCount = action.getSevereComponentCount()
this.moderateCount = action.getModerateComponentCount()
this.criticalCount = action.getCriticalPolicyViolationCount()
this.severeCount = action.getSeverePolicyViolationCount()
this.moderateCount = action.getModeratePolicyViolationCount()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ class ComToOrgMigratorIntegrationTest
then: 'the application is scanned and evaluated'
1 * iqClient.verifyOrCreateApplication(*_) >> true
1 * iqClient.scan(*_) >> new ScanResult(new Scan(), File.createTempFile('dummy-scan', '.xml.gz'))
1 * iqClient.evaluateApplication('sample-app', 'build', _, _) >> new ApplicationPolicyEvaluation(0, 1, 2, 3, 0, [],
1 * iqClient.evaluateApplication('sample-app', 'build', _, _) >> new ApplicationPolicyEvaluation(0, 1, 2, 3, 11, 12, 13, 0, [],
'http://server/link/to/report')

then: 'the return code is successful'
Expand All @@ -122,7 +122,7 @@ class ComToOrgMigratorIntegrationTest
then: 'the application is scanned and evaluated'
1 * iqClient.verifyOrCreateApplication(*_) >> true
1 * iqClient.scan(*_) >> new ScanResult(new Scan(), File.createTempFile('dummy-scan', '.xml.gz'))
1 * iqClient.evaluateApplication('sample-app', 'build', _, _) >> new ApplicationPolicyEvaluation(0, 1, 2, 3, 0, [],
1 * iqClient.evaluateApplication('sample-app', 'build', _, _) >> new ApplicationPolicyEvaluation(0, 1, 2, 3, 11, 12, 13, 0, [],
'http://server/link/to/report')

then: 'the expected result is returned'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ class IqPolicyEvaluatorIntegrationTest
1 * iqClient.verifyOrCreateApplication(*_) >> true
1 * iqClient.scan(*_) >> new ScanResult(new Scan(), File.createTempFile('dummy-scan', '.xml.gz'))
1 * iqClient.evaluateApplication(*_) >>
new ApplicationPolicyEvaluation(0, 1, 2, 3, 0, [createAlert(Action.ID_NOTIFY)],
new ApplicationPolicyEvaluation(0, 1, 2, 3, 11, 12, 13, 0, [createAlert(Action.ID_NOTIFY)],
'http://server/link/to/report')

and: 'the build is successful'
Expand Down Expand Up @@ -138,7 +138,7 @@ class IqPolicyEvaluatorIntegrationTest
}, _, _, _, _) >>
new ScanResult(new Scan(), File.createTempFile('dummy-scan', '.xml.gz'))
1 * iqClient.evaluateApplication(*_) >>
new ApplicationPolicyEvaluation(0, 1, 2, 3, 0, [], 'http://server/link/to/report')
new ApplicationPolicyEvaluation(0, 1, 2, 3, 11, 12, 13, 0, [], 'http://server/link/to/report')

and: 'the build is successful'
jenkins.assertBuildStatusSuccess(build)
Expand Down Expand Up @@ -171,7 +171,7 @@ class IqPolicyEvaluatorIntegrationTest
1 * iqClient.verifyOrCreateApplication('app') >> true
1 * iqClient.scan(*_) >> new ScanResult(new Scan(), File.createTempFile('dummy-scan', '.xml.gz'))
1 * iqClient.evaluateApplication(*_) >>
new ApplicationPolicyEvaluation(0, 1, 2, 3, 0, [], 'http://server/link/to/report')
new ApplicationPolicyEvaluation(0, 1, 2, 3, 11, 12, 13, 0, [], 'http://server/link/to/report')

and: 'the build is successful'
jenkins.assertBuildStatusSuccess(build)
Expand All @@ -189,9 +189,9 @@ class IqPolicyEvaluatorIntegrationTest
'iqStage: \'stage\'\n' +
'echo "url:" + result.applicationCompositionReportUrl\n' +
'echo "affected:" + result.affectedComponentCount\n' +
'echo "critical:" + result.criticalComponentCount\n' +
'echo "severe:" + result.severeComponentCount\n' +
'echo "moderate:" + result.moderateComponentCount\n' +
'echo "critical:" + result.criticalPolicyViolationCount\n' +
'echo "severe:" + result.severePolicyViolationCount\n' +
'echo "moderate:" + result.moderatePolicyViolationCount\n' +
'echo "url:" + result.applicationCompositionReportUrl\n' +
'echo "alerts:" + result.policyAlerts' +
'}\n')
Expand All @@ -200,17 +200,17 @@ class IqPolicyEvaluatorIntegrationTest
then: 'the application is scanned and evaluated'
1 * iqClient.verifyOrCreateApplication(*_) >> true
1 * iqClient.scan(*_) >> new ScanResult(new Scan(), File.createTempFile('dummy-scan', '.xml.gz'))
1 * iqClient.evaluateApplication(*_) >> new ApplicationPolicyEvaluation(0, 1, 2, 3, 0, [],
1 * iqClient.evaluateApplication(*_) >> new ApplicationPolicyEvaluation(0, 1, 2, 3, 11, 12, 13, 0, [],
'http://server/link/to/report')

then: 'the expected result is returned'
jenkins.assertBuildStatusSuccess(build)
with(build.getLog(100)) {
it.contains('url:http://server/link/to/report')
it.contains('affected:0')
it.contains('critical:1')
it.contains('severe:2')
it.contains('moderate:3')
it.contains('critical:11')
it.contains('severe:12')
it.contains('moderate:13')
it.contains('alerts:[]')
}
}
Expand All @@ -228,7 +228,7 @@ class IqPolicyEvaluatorIntegrationTest
then: 'the application is scanned and evaluated'
1 * iqClient.verifyOrCreateApplication(*_) >> true
1 * iqClient.scan(*_) >> new ScanResult(new Scan(), File.createTempFile('dummy-scan', '.xml.gz'))
1 * iqClient.evaluateApplication(*_) >> new ApplicationPolicyEvaluation(0, 1, 2, 3, 0, [],
1 * iqClient.evaluateApplication(*_) >> new ApplicationPolicyEvaluation(0, 1, 2, 3, 11, 12, 13, 0, [],
'http://server/link/to/report')

then: 'the return code is successful'
Expand Down Expand Up @@ -402,7 +402,7 @@ class IqPolicyEvaluatorIntegrationTest
then: 'the application is scanned and evaluated'
1 * iqClient.verifyOrCreateApplication(*_) >> true
1 * iqClient.scan(*_) >> new ScanResult(new Scan(), File.createTempFile('dummy-scan', '.xml.gz'))
1 * iqClient.evaluateApplication(*_) >> new ApplicationPolicyEvaluation(0, 1, 2, 3, 0,
1 * iqClient.evaluateApplication(*_) >> new ApplicationPolicyEvaluation(0, 1, 2, 3, 11, 12, 13, 0,
[createAlert(Action.ID_FAIL)], 'http://server/link/to/report')

and: 'the build fails'
Expand All @@ -428,9 +428,9 @@ class IqPolicyEvaluatorIntegrationTest
'def result = error.policyEvaluation \n' +
'echo "url:" + result.applicationCompositionReportUrl\n' +
'echo "affected:" + result.affectedComponentCount\n' +
'echo "critical:" + result.criticalComponentCount\n' +
'echo "severe:" + result.severeComponentCount\n' +
'echo "moderate:" + result.moderateComponentCount\n' +
'echo "critical:" + result.criticalPolicyViolationCount\n' +
'echo "severe:" + result.severePolicyViolationCount\n' +
'echo "moderate:" + result.moderatePolicyViolationCount\n' +
'echo "url:" + result.applicationCompositionReportUrl\n' +
'echo "alerts:" + result.policyAlerts' +
'} \n' +
Expand All @@ -440,17 +440,17 @@ class IqPolicyEvaluatorIntegrationTest
then: 'the application is scanned and evaluated'
1 * iqClient.verifyOrCreateApplication(*_) >> true
1 * iqClient.scan(*_) >> new ScanResult(new Scan(), File.createTempFile('dummy-scan', '.xml.gz'))
1 * iqClient.evaluateApplication(*_) >> new ApplicationPolicyEvaluation(0, 1, 2, 3, 0,
1 * iqClient.evaluateApplication(*_) >> new ApplicationPolicyEvaluation(0, 1, 2, 3, 11, 12, 13, 0,
[createAlert(Action.ID_FAIL)], 'http://server/link/to/report')

and: 'the build fails'
jenkins.assertBuildStatus(Result.FAILURE, build)
with(build.getLog(100)) {
it.contains('url:http://server/link/to/report')
it.contains('affected:0')
it.contains('critical:1')
it.contains('severe:2')
it.contains('moderate:3')
it.contains('critical:11')
it.contains('severe:12')
it.contains('moderate:13')
it =~ /alerts:\[.+]/
}
}
Expand All @@ -470,7 +470,7 @@ class IqPolicyEvaluatorIntegrationTest
then: 'the application is scanned and evaluated'
1 * iqClient.verifyOrCreateApplication(*_) >> true
1 * iqClient.scan(*_) >> new ScanResult(new Scan(), File.createTempFile('dummy-scan', '.xml.gz'))
1 * iqClient.evaluateApplication(*_) >> new ApplicationPolicyEvaluation(0, 1, 2, 3, 0,
1 * iqClient.evaluateApplication(*_) >> new ApplicationPolicyEvaluation(0, 1, 2, 3, 11, 12, 13, 0,
[createAlert(Action.ID_FAIL)], 'http://server/link/to/report')

then: 'the build fails'
Expand Down Expand Up @@ -607,7 +607,7 @@ class IqPolicyEvaluatorIntegrationTest
then: 'the application is scanned and evaluated'
1 * iqClient.verifyOrCreateApplication('app') >> true
1 * iqClient.scan(*_) >> new ScanResult(new Scan(), File.createTempFile('dummy-scan', '.xml.gz'))
1 * iqClient.evaluateApplication('app', _, _, _) >> new ApplicationPolicyEvaluation(0, 1, 2, 3, 0, [],
1 * iqClient.evaluateApplication('app', _, _, _) >> new ApplicationPolicyEvaluation(0, 1, 2, 3, 11, 12, 13, 0, [],
'http://server/link/to/report')

then: 'the return code is successful'
Expand All @@ -632,7 +632,7 @@ class IqPolicyEvaluatorIntegrationTest
then: 'the application is scanned and evaluated'
1 * iqClient.verifyOrCreateApplication('app') >> true
1 * iqClient.scan(*_) >> new ScanResult(new Scan(), File.createTempFile('dummy-scan', '.xml.gz'))
1 * iqClient.evaluateApplication('app', _, _, _) >> new ApplicationPolicyEvaluation(0, 1, 2, 3, 0, [],
1 * iqClient.evaluateApplication('app', _, _, _) >> new ApplicationPolicyEvaluation(0, 1, 2, 3, 11, 12, 13, 0, [],
'http://server/link/to/report')

then: 'the return code is successful'
Expand All @@ -657,7 +657,7 @@ class IqPolicyEvaluatorIntegrationTest
then: 'the application is scanned and evaluated'
1 * iqClient.verifyOrCreateApplication(*_) >> true
1 * iqClient.scan(*_) >> new ScanResult(new Scan(), File.createTempFile('dummy-scan', '.xml.gz'))
1 * iqClient.evaluateApplication(*_) >> new ApplicationPolicyEvaluation(0, 1, 2, 3, 0, [],
1 * iqClient.evaluateApplication(*_) >> new ApplicationPolicyEvaluation(0, 1, 2, 3, 11, 12, 13, 0, [],
'http://server/link/to/report')

and: 'the source control onboarding is called with the repo url'
Expand All @@ -680,7 +680,7 @@ class IqPolicyEvaluatorIntegrationTest
then: 'the application is scanned and evaluated'
1 * iqClient.verifyOrCreateApplication(*_) >> true
1 * iqClient.scan(*_) >> new ScanResult(new Scan(), File.createTempFile('dummy-scan', '.xml.gz'))
1 * iqClient.evaluateApplication(*_) >> new ApplicationPolicyEvaluation(0, 0, 0, 0, 0, [],
1 * iqClient.evaluateApplication(*_) >> new ApplicationPolicyEvaluation(0, 0, 0, 0, 0, 0, 0, 0, [],
'http://server/link/to/report')

and: 'the source control onboarding is called with the repo url'
Expand All @@ -701,7 +701,7 @@ class IqPolicyEvaluatorIntegrationTest
then: 'the application is scanned and evaluated'
1 * iqClient.verifyOrCreateApplication(*_) >> true
1 * iqClient.scan(*_) >> new ScanResult(new Scan(), File.createTempFile('dummy-scan', '.xml.gz'))
1 * iqClient.evaluateApplication(*_) >> new ApplicationPolicyEvaluation(0, 1, 2, 3, 0, [],
1 * iqClient.evaluateApplication(*_) >> new ApplicationPolicyEvaluation(0, 1, 2, 3, 11, 12, 13, 0, [],
'http://server/link/to/report')

and: 'the source control onboarding is not called'
Expand Down Expand Up @@ -739,7 +739,7 @@ class IqPolicyEvaluatorIntegrationTest
1 * iqClient.verifyOrCreateApplication('app') >> true
1 * iqClient.scan(*_) >> new ScanResult(new Scan(), File.createTempFile('dummy-scan', '.xml.gz'))
1 * iqClient.evaluateApplication(*_) >>
new ApplicationPolicyEvaluation(0, 1, 2, 3, 0, [], 'http://server/link/to/report')
new ApplicationPolicyEvaluation(0, 1, 2, 3, 11, 12, 13, 0, [], 'http://server/link/to/report')

and: 'the source control onboarding is called with the repo url'
1 * iqClient.addOrUpdateSourceControl('app', url)
Expand All @@ -766,7 +766,7 @@ class IqPolicyEvaluatorIntegrationTest
1 * iqClient.verifyOrCreateApplication('app') >> true
1 * iqClient.scan(*_) >> new ScanResult(new Scan(), File.createTempFile('dummy-scan', '.xml.gz'))
1 * iqClient.evaluateApplication(*_) >>
new ApplicationPolicyEvaluation(0, 1, 2, 3, 0, [], 'http://server/link/to/report')
new ApplicationPolicyEvaluation(0, 1, 2, 3, 11, 12, 13, 0, [], 'http://server/link/to/report')

and: 'the source control onboarding is called with the repo url'
jenkins.assertBuildStatusSuccess(build)
Expand Down Expand Up @@ -798,7 +798,7 @@ class IqPolicyEvaluatorIntegrationTest
1 * iqClient.verifyOrCreateApplication('app') >> true
1 * iqClient.scan(*_) >> new ScanResult(new Scan(), File.createTempFile('dummy-scan', '.xml.gz'))
1 * iqClient.evaluateApplication(*_) >>
new ApplicationPolicyEvaluation(0, 1, 2, 3, 0, [], 'http://server/link/to/report')
new ApplicationPolicyEvaluation(0, 1, 2, 3, 11, 12, 13, 0, [], 'http://server/link/to/report')

and: 'the source control onboarding is not called'
//When running tests as part of a CI build, the workspace will be in the git context of the checked out CI
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,9 +75,9 @@ class IqPolicyEvaluatorSlaveIntegrationTest
"result": {
"alerts": [],
"affectedComponentCount": 33,
"criticalComponentCount": 20,
"severeComponentCount": 12,
"moderateComponentCount": 1,
"criticalPolicyViolationCount": 20,
"severePolicyViolationCount": 12,
"moderatePolicyViolationCount": 1,
"criticalPolicyViolationCount": 46,
"severePolicyViolationCount": 54,
"moderatePolicyViolationCount": 3,
Expand Down

0 comments on commit 3039abd

Please sign in to comment.