Skip to content
This repository was archived by the owner on Jul 23, 2023. It is now read-only.

Commit 5c18c45

Browse files
Merge pull request #17 from armosec/add-relevant-fields
add fields and functions
2 parents 2504062 + deadec2 commit 5c18c45

7 files changed

+76
-14
lines changed

containerscan/commonContainerScanSummaryResultMethods.go

+8
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,10 @@ func (summary *CommonContainerScanSummaryResult) GetJobIDs() []string {
7878
return summary.JobIDs
7979
}
8080

81+
func (summary *CommonContainerScanSummaryResult) GetRelevantLabel() RelevantLabel {
82+
return summary.RelevantLabel
83+
}
84+
8185
func (summary *CommonContainerScanSummaryResult) Validate() bool {
8286
return summary.CustomerGUID != "" && summary.ContainerScanID != "" && (summary.ImageTag != "" || summary.ImageID != "") && summary.Timestamp > 0
8387
}
@@ -149,6 +153,10 @@ func (summary *CommonContainerScanSummaryResult) SetTimestamp(timestamp int64) {
149153
summary.Timestamp = timestamp
150154
}
151155

156+
func (summary *CommonContainerScanSummaryResult) SetRelevantLabel(label RelevantLabel) {
157+
summary.RelevantLabel = label
158+
}
159+
152160
func (summary *CommonContainerScanSummaryResult) GetHasRelevancyData() bool {
153161
return summary.HasRelevancyData
154162
}

containerscan/commonContainerScanSummaryResultMethods_test.go

+17
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,23 @@ func TestGetSeverityStats(t *testing.T) {
238238
assert.Equal(t, "critical", stats.Severity)
239239
}
240240

241+
func Test_CommonContainerScanSummaryResult_GetRelevantLabel(t *testing.T) {
242+
summary := &CommonContainerScanSummaryResult{}
243+
assert.Equal(t, RelevantLabelNotExists, summary.GetRelevantLabel())
244+
245+
summary.RelevantLabel = RelevantLabelYes
246+
assert.Equal(t, RelevantLabelYes, summary.GetRelevantLabel())
247+
248+
}
249+
250+
func Test_CommonContainerScanSummaryResult_SetRelevantLabel(t *testing.T) {
251+
summary := &CommonContainerScanSummaryResult{}
252+
assert.Equal(t, RelevantLabelNotExists, summary.RelevantLabel)
253+
254+
summary.SetRelevantLabel(RelevantLabelNo)
255+
assert.Equal(t, RelevantLabelNo, summary.RelevantLabel)
256+
}
257+
241258
func TestGetHasRelevancyData(t *testing.T) {
242259
reportWithRelevancy := CommonContainerScanSummaryResult{HasRelevancyData: true}
243260
if !reportWithRelevancy.GetHasRelevancyData() {

containerscan/commonContainerVulnerabilityResultMethods.go

+8
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,10 @@ func (c *CommonContainerVulnerabilityResult) GetVulnerability() VulnerabilityRes
5858
return &c.Vulnerability
5959
}
6060

61+
func (c *CommonContainerVulnerabilityResult) GetRelevantLabel() RelevantLabel {
62+
return c.RelevantLabel
63+
}
64+
6165
func (c *CommonContainerVulnerabilityResult) SetDesignators(designators armotypes.PortalDesignator) {
6266
c.Designators = designators
6367
}
@@ -105,3 +109,7 @@ func (c *CommonContainerVulnerabilityResult) SetRelevantLinks(relevantLinks []st
105109
func (c *CommonContainerVulnerabilityResult) SetRelatedExceptions(relatedExceptions []armotypes.VulnerabilityExceptionPolicy) {
106110
c.RelatedExceptions = relatedExceptions
107111
}
112+
113+
func (c *CommonContainerVulnerabilityResult) SetRelevantLabel(relevantLabel RelevantLabel) {
114+
c.RelevantLabel = relevantLabel
115+
}

containerscan/commonContainerVulnerabilityResultMethods_test.go

+17
Original file line numberDiff line numberDiff line change
@@ -172,3 +172,20 @@ func TestVulnerability(t *testing.T) {
172172
}
173173
assert.Equal(t, "severity1", vulnerability.Severity)
174174
}
175+
176+
func TestCommonContainerVulnerabilityResult_GetRelevantLabel(t *testing.T) {
177+
vulnerabilityResult := CommonContainerVulnerabilityResult{}
178+
assert.Equal(t, RelevantLabelNotExists, vulnerabilityResult.GetRelevantLabel())
179+
180+
vulnerabilityResult.RelevantLabel = RelevantLabelYes
181+
assert.Equal(t, RelevantLabelYes, vulnerabilityResult.GetRelevantLabel())
182+
183+
}
184+
185+
func TestCommonContainerVulnerabilityResult_SetRelevantLabel(t *testing.T) {
186+
vulnerabilityResult := CommonContainerVulnerabilityResult{}
187+
assert.Equal(t, RelevantLabelNotExists, vulnerabilityResult.RelevantLabel)
188+
189+
vulnerabilityResult.SetRelevantLabel(RelevantLabelNo)
190+
assert.Equal(t, RelevantLabelNo, vulnerabilityResult.RelevantLabel)
191+
}

containerscan/commondatastructures.go

+18-10
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@ import (
66
"github.com/armosec/armoapi-go/armotypes"
77
)
88

9+
type RelevantLabel string
10+
11+
const RelevantLabelYes RelevantLabel = "yes"
12+
const RelevantLabelNo RelevantLabel = "no"
13+
const RelevantLabelNotExists RelevantLabel = ""
14+
915
type CommonContainerVulnerabilityResult struct {
1016
Designators armotypes.PortalDesignator `json:"designators"`
1117
IntroducedInLayer string `json:"layerHash"`
@@ -20,6 +26,7 @@ type CommonContainerVulnerabilityResult struct {
2026
Timestamp int64 `json:"timestamp"`
2127
IsLastScan int `json:"isLastScan"`
2228
IsFixed int `json:"isFixed"`
29+
RelevantLabel RelevantLabel `json:"relevantLabel"`
2330
}
2431

2532
type ESLayer struct {
@@ -35,16 +42,16 @@ type LayerInfo struct {
3542
}
3643

3744
type SeverityStats struct {
38-
Severity string `json:"severity,omitempty"`
39-
HealthStatus string `json:"healthStatus"`
40-
TotalCount int64 `json:"total"`
41-
RCEFixCount int64 `json:"rceFixCount"`
42-
FixAvailableOfTotalCount int64 `json:"fixedTotal"`
43-
RelevantCount int64 `json:"totalRelevant"`
44-
FixAvailableForRelevantCount int64 `json:"fixedRelevant"`
45-
RCECount int64 `json:"rceTotal"`
46-
UrgentCount int64 `json:"urgent"`
47-
NeglectedCount int64 `json:"neglected"`
45+
Severity string `json:"severity,omitempty"`
46+
HealthStatus string `json:"healthStatus"`
47+
TotalCount int64 `json:"total"`
48+
RCEFixCount int64 `json:"rceFixCount"`
49+
RelevantFixCount int64 `json:"relevantFixCount"`
50+
FixAvailableOfTotalCount int64 `json:"fixedTotal"`
51+
RelevantCount int64 `json:"relevantTotal"`
52+
RCECount int64 `json:"rceTotal"`
53+
UrgentCount int64 `json:"urgent"`
54+
NeglectedCount int64 `json:"neglected"`
4855
}
4956

5057
type ShortVulnerabilityResult struct {
@@ -97,5 +104,6 @@ type CommonContainerScanSummaryResult struct {
97104
Timestamp int64 `json:"timestamp"`
98105
ImageSignatureValid bool `json:"imageSignatureValid,omitempty"`
99106
ImageHasSignature bool `json:"imageHasSignature,omitempty"`
107+
RelevantLabel RelevantLabel `json:"relevantLabel"`
100108
HasRelevancyData bool `json:"hasRelevancyData"`
101109
}

containerscan/containerscan_test.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,8 @@ func TestExceptions(t *testing.T) {
8282
if excludedStats.RelevantCount != 0 {
8383
t.Errorf("excludedStats.RelevantCount = %v", excludedStats.RelevantCount)
8484
}
85-
if excludedStats.FixAvailableForRelevantCount != 0 {
86-
t.Errorf("excludedStats.FixAvailableForRelevantCount = %v", excludedStats.FixAvailableForRelevantCount)
85+
if excludedStats.RelevantFixCount != 0 {
86+
t.Errorf("excludedStats.FixAvailableForRelevantCount = %v", excludedStats.RelevantFixCount)
8787
}
8888
if excludedStats.RCECount != 1 {
8989
t.Errorf("excludedStats.RCECount = %v", excludedStats.RCECount)
@@ -105,8 +105,8 @@ func TestExceptions(t *testing.T) {
105105
if regularSum.RelevantCount != (sumObj.RelevantCount + excludedStats.RelevantCount) {
106106
t.Errorf("sumObj.RelevantCount = %v", sumObj.RelevantCount)
107107
}
108-
if regularSum.FixAvailableForRelevantCount != (sumObj.FixAvailableForRelevantCount + excludedStats.FixAvailableForRelevantCount) {
109-
t.Errorf("sumObj.FixAvailableForRelevantCoun = %v", sumObj.FixAvailableForRelevantCount)
108+
if regularSum.RelevantFixCount != (sumObj.RelevantFixCount + excludedStats.RelevantFixCount) {
109+
t.Errorf("sumObj.FixAvailableForRelevantCoun = %v", sumObj.RelevantFixCount)
110110
}
111111
if regularSum.RCECount != (sumObj.RCECount + excludedStats.RCECount) {
112112
t.Errorf("sumObj.RCECount = %v", sumObj.RCECount)

containerscan/interfaces.go

+4
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ type ContainerScanSummaryResult interface {
4444
GetContainerScanID() string
4545
GetTimestamp() int64
4646
GetJobIDs() []string
47+
GetRelevantLabel() RelevantLabel
4748
Validate() bool
4849
GetHasRelevancyData() bool
4950

@@ -64,6 +65,7 @@ type ContainerScanSummaryResult interface {
6465
SetCustomerGUID(string)
6566
SetContainerScanID(string)
6667
SetTimestamp(int64)
68+
SetRelevantLabel(RelevantLabel)
6769
SetHasRelevancyData(bool)
6870
}
6971

@@ -81,6 +83,7 @@ type ContainerScanVulnerabilityResult interface {
8183
GetRelevantLinks() []string
8284
GetRelatedExceptions() []armotypes.VulnerabilityExceptionPolicy
8385
GetVulnerability() VulnerabilityResult
86+
GetRelevantLabel() RelevantLabel
8487

8588
SetDesignators(designators armotypes.PortalDesignator)
8689
SetContext(context []armotypes.ArmoContext)
@@ -94,6 +97,7 @@ type ContainerScanVulnerabilityResult interface {
9497
SetIntroducedInLayer(introducedInLayer string)
9598
SetRelevantLinks(relevantLinks []string)
9699
SetRelatedExceptions(relatedExceptions []armotypes.VulnerabilityExceptionPolicy)
100+
SetRelevantLabel(relevantLabel RelevantLabel)
97101
}
98102

99103
type VulnerabilityResult interface {

0 commit comments

Comments
 (0)