Skip to content

Commit 724cbcf

Browse files
committed
init
1 parent fc9527e commit 724cbcf

File tree

2 files changed

+34
-4
lines changed

2 files changed

+34
-4
lines changed

database/pgsql/rhelv2_layer.go

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import (
1515
"github.com/stackrox/rox/pkg/utils"
1616
"github.com/stackrox/scanner/database"
1717
"github.com/stackrox/scanner/database/metrics"
18+
"github.com/stackrox/scanner/pkg/env"
1819
)
1920

2021
func (pgSQL *pgSQL) InsertRHELv2Layer(layer *database.RHELv2Layer) error {
@@ -46,11 +47,18 @@ func (pgSQL *pgSQL) InsertRHELv2Layer(layer *database.RHELv2Layer) error {
4647
func (pgSQL *pgSQL) insertRHELv2Layer(tx *sql.Tx, layer *database.RHELv2Layer) error {
4748
defer metrics.ObserveQueryTime("insertRHELv2Layer", "layer", time.Now())
4849

49-
_, err := tx.Exec(insertRHELv2Layer, layer.Hash, layer.ParentHash, layer.Dist, pq.Array(layer.CPEs), layer.Lineage, layer.ParentLineage)
50+
var lineage string
51+
var parentLineage string
52+
if env.RHLineage.Enabled() {
53+
lineage = layer.Lineage
54+
parentLineage = layer.ParentLineage
55+
}
56+
57+
_, err := tx.Exec(insertRHELv2Layer, layer.Hash, layer.ParentHash, layer.Dist, pq.Array(layer.CPEs), lineage, parentLineage)
5058
return err
5159
}
5260

53-
func (pgSQL *pgSQL) insertRHELv2Packages(tx *sql.Tx, layer string, pkgs []*database.RHELv2Package, lineage string) error {
61+
func (pgSQL *pgSQL) insertRHELv2Packages(tx *sql.Tx, layer string, pkgs []*database.RHELv2Package, layerLineage string) error {
5462
// Sort packages to avoid potential deadlock.
5563
// Sort by the unique index (name, version, module, arch).
5664
sort.SliceStable(pkgs, func(i, j int) bool {
@@ -80,6 +88,11 @@ func (pgSQL *pgSQL) insertRHELv2Packages(tx *sql.Tx, layer string, pkgs []*datab
8088
}
8189
}
8290

91+
var lineage string
92+
if env.RHLineage.Enabled() {
93+
lineage = layerLineage
94+
}
95+
8396
for _, pkg := range pkgs {
8497
if pkg.Name == "" {
8598
continue
@@ -112,7 +125,12 @@ func (pgSQL *pgSQL) GetRHELv2Layers(layerHash, layerLineage string) ([]*database
112125
return nil, handleError("GetRHELv2Layers.Begin()", err)
113126
}
114127

115-
rows, err := tx.Query(searchRHELv2Layers, layerHash, layerLineage)
128+
var lineage string
129+
if env.RHLineage.Enabled() {
130+
lineage = layerLineage
131+
}
132+
133+
rows, err := tx.Query(searchRHELv2Layers, layerHash, lineage)
116134
if err != nil {
117135
return nil, err
118136
}
@@ -177,7 +195,12 @@ func (pgSQL *pgSQL) populatePackages(tx *sql.Tx, layers []*database.RHELv2Layer)
177195
func (pgSQL *pgSQL) getPackagesByLayer(tx *sql.Tx, layer *database.RHELv2Layer) error {
178196
defer metrics.ObserveQueryTime("getRHELv2Layers", "packagesByLayer", time.Now())
179197

180-
rows, err := tx.Query(searchRHELv2Package, layer.Hash, layer.Lineage)
198+
var lineage string
199+
if env.RHLineage.Enabled() {
200+
lineage = layer.Lineage
201+
}
202+
203+
rows, err := tx.Query(searchRHELv2Package, layer.Hash, lineage)
181204
if err != nil {
182205
return err
183206
}

pkg/env/list.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,4 +44,11 @@ var (
4444
// LegacyNVDLoader when true will cause the loader to pull NVD data using
4545
// the NVD Legacy Data Feeds, if false will pull from the NVD 2.0 API.
4646
LegacyNVDLoader = RegisterBooleanSetting("ROX_LEGACY_NVD_LOADER", false)
47+
48+
// RHLineage when true will cause all parent layers (a.k.a lineage) to be considered when
49+
// storing scan results for RHEL image layers.
50+
//
51+
// Setting this to false will cause known image scan inaccuracies and should only be set as a
52+
// temporary measure to address unforeseen stability issues.
53+
RHLineage = RegisterBooleanSetting("ROX_RHEL_LINEAGE", true)
4754
)

0 commit comments

Comments
 (0)