Skip to content

Commit

Permalink
refactor(model)!: Inline AdvisorRecord with AdvisorRun
Browse files Browse the repository at this point in the history
The `AdvisorRecord` was only a holder for the map of advisor results per
package. Inline it with `AdvisorRun` to reduce nesting in the data
structures, similar to how `ScanRecord` was inlined with `ScannerRun` in
9d9a449.

Signed-off-by: Martin Nonnenmacher <martin.nonnenmacher@bosch.com>
  • Loading branch information
mnonnenmacher committed Jul 11, 2024
1 parent ed44b6a commit 192736f
Show file tree
Hide file tree
Showing 17 changed files with 311 additions and 357 deletions.
5 changes: 1 addition & 4 deletions advisor/src/main/kotlin/Advisor.kt
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ import kotlinx.coroutines.withContext

import org.apache.logging.log4j.kotlin.logger

import org.ossreviewtoolkit.model.AdvisorRecord
import org.ossreviewtoolkit.model.AdvisorResult
import org.ossreviewtoolkit.model.AdvisorRun
import org.ossreviewtoolkit.model.Identifier
Expand Down Expand Up @@ -106,10 +105,8 @@ class Advisor(
}
}

val advisorRecord = AdvisorRecord(results)

val endTime = Instant.now()

AdvisorRun(startTime, endTime, Environment(), config, advisorRecord)
AdvisorRun(startTime, endTime, Environment(), config, results)
}
}
4 changes: 2 additions & 2 deletions advisor/src/test/kotlin/AdvisorTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ class AdvisorTest : WordSpec({
val result = advisor.advise(originResult)

result.advisor shouldNotBeNull {
results.advisorResults should beEmpty()
results should beEmpty()
}

coVerify(exactly = 0) {
Expand Down Expand Up @@ -104,7 +104,7 @@ class AdvisorTest : WordSpec({
val result = advisor.advise(originResult)

result.advisor shouldNotBeNull {
results.advisorResults shouldBe expectedResults
results shouldBe expectedResults
}
}
}
Expand Down
31 changes: 15 additions & 16 deletions cli/src/funTest/assets/semver4j-ort-result.yml
Original file line number Diff line number Diff line change
Expand Up @@ -381,22 +381,21 @@ advisor:
secrets:
username: "user"
results:
advisor_results:
Maven:junit:junit:4.12:
- advisor:
name: "NexusIQ"
capabilities:
- "VULNERABILITIES"
summary:
start_time: "2021-04-29T14:54:17.322191Z"
end_time: "2021-04-29T14:54:18.966672Z"
vulnerabilities:
- id: "CVE-2020-15250"
references:
- url: "http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-15250"
scoring_system: "CVSS2"
severity: "5.5"
severity_rating: "MEDIUM"
Maven:junit:junit:4.12:
- advisor:
name: "NexusIQ"
capabilities:
- "VULNERABILITIES"
summary:
start_time: "2021-04-29T14:54:17.322191Z"
end_time: "2021-04-29T14:54:18.966672Z"
vulnerabilities:
- id: "CVE-2020-15250"
references:
- url: "http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-15250"
scoring_system: "CVSS2"
severity: "5.5"
severity_rating: "MEDIUM"
evaluator: null
resolved_configuration:
package_curations:
Expand Down
4 changes: 2 additions & 2 deletions evaluator/src/main/kotlin/PackageRule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ open class PackageRule(

override fun matches(): Boolean {
val run = ruleSet.ortResult.advisor ?: return false
return run.results.getVulnerabilities(pkg.metadata.id).isNotEmpty()
return run.getVulnerabilities(pkg.metadata.id).isNotEmpty()
}
}
}
Expand All @@ -92,7 +92,7 @@ open class PackageRule(

override fun matches(): Boolean {
val run = ruleSet.ortResult.advisor ?: return false
return run.results.getVulnerabilities(pkg.metadata.id).asSequence()
return run.getVulnerabilities(pkg.metadata.id).asSequence()
.filter { vulnerability -> !ruleSet.resolutionProvider.isResolved(vulnerability) }
.flatMap { it.references }
.filter { reference -> reference.scoringSystem == scoringSystem }
Expand Down
47 changes: 22 additions & 25 deletions evaluator/src/test/kotlin/TestData.kt
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ import java.time.Instant

import org.ossreviewtoolkit.model.AdvisorCapability
import org.ossreviewtoolkit.model.AdvisorDetails
import org.ossreviewtoolkit.model.AdvisorRecord
import org.ossreviewtoolkit.model.AdvisorResult
import org.ossreviewtoolkit.model.AdvisorRun
import org.ossreviewtoolkit.model.AdvisorSummary
Expand Down Expand Up @@ -221,31 +220,29 @@ val ortResult = OrtResult(
endTime = Instant.EPOCH,
environment = Environment(),
config = AdvisorConfiguration(),
results = AdvisorRecord(
advisorResults = mapOf(
packageWithVulnerabilities.id to listOf(
AdvisorResult(
advisor = AdvisorDetails("Advisor", enumSetOf(AdvisorCapability.VULNERABILITIES)),
summary = AdvisorSummary(startTime = Instant.EPOCH, endTime = Instant.EPOCH),
vulnerabilities = listOf(
Vulnerability(
id = "CVE-2021-critical",
references = listOf(
VulnerabilityReference(
url = URI("https://oss-review-toolkit.org"),
scoringSystem = "CVSS3",
severity = "9.0"
)
results = mapOf(
packageWithVulnerabilities.id to listOf(
AdvisorResult(
advisor = AdvisorDetails("Advisor", enumSetOf(AdvisorCapability.VULNERABILITIES)),
summary = AdvisorSummary(startTime = Instant.EPOCH, endTime = Instant.EPOCH),
vulnerabilities = listOf(
Vulnerability(
id = "CVE-2021-critical",
references = listOf(
VulnerabilityReference(
url = URI("https://oss-review-toolkit.org"),
scoringSystem = "CVSS3",
severity = "9.0"
)
),
Vulnerability(
id = "CVE-2021-trivial",
references = listOf(
VulnerabilityReference(
url = URI("https://oss-review-toolkit.org"),
scoringSystem = "CVSS3",
severity = "2.0"
)
)
),
Vulnerability(
id = "CVE-2021-trivial",
references = listOf(
VulnerabilityReference(
url = URI("https://oss-review-toolkit.org"),
scoringSystem = "CVSS3",
severity = "2.0"
)
)
)
Expand Down
143 changes: 0 additions & 143 deletions model/src/main/kotlin/AdvisorRecord.kt

This file was deleted.

Loading

0 comments on commit 192736f

Please sign in to comment.