mirror of
https://github.com/project-zot/zot.git
synced 2026-06-15 20:07:55 +08:00
refactor(cve): improve CVE test time by mocking trivy (#1184)
- refactor(cve): remove the global of type cveinfo.CveInfo from the extensions package Replace it with an attribute on controller level - refactor(controller): extract initialization logic from controller.Run() - test(cve): mock cve scanner in cli tests Signed-off-by: Andrei Aaron <aaaron@luxoft.com>
This commit is contained in:
+40
-26
@@ -50,6 +50,7 @@ type Controller struct {
|
||||
Audit *log.Logger
|
||||
Server *http.Server
|
||||
Metrics monitoring.MetricServer
|
||||
CveInfo ext.CveInfo
|
||||
wgShutDown *goSync.WaitGroup // use it to gracefully shutdown goroutines
|
||||
// runtime params
|
||||
chosenPort int // kernel-chosen port
|
||||
@@ -120,11 +121,7 @@ func (c *Controller) GetPort() int {
|
||||
}
|
||||
|
||||
func (c *Controller) Run(reloadCtx context.Context) error {
|
||||
// print the current configuration, but strip secrets
|
||||
c.Log.Info().Interface("params", c.Config.Sanitize()).Msg("configuration settings")
|
||||
|
||||
// print the current runtime environment
|
||||
DumpRuntimeParams(c.Log)
|
||||
c.StartBackgroundTasks(reloadCtx)
|
||||
|
||||
// setup HTTP API router
|
||||
engine := mux.NewRouter()
|
||||
@@ -153,26 +150,6 @@ func (c *Controller) Run(reloadCtx context.Context) error {
|
||||
c.Router = engine
|
||||
c.Router.UseEncodedPath()
|
||||
|
||||
var enabled bool
|
||||
if c.Config != nil &&
|
||||
c.Config.Extensions != nil &&
|
||||
c.Config.Extensions.Metrics != nil &&
|
||||
*c.Config.Extensions.Metrics.Enable {
|
||||
enabled = true
|
||||
}
|
||||
|
||||
c.Metrics = monitoring.NewMetricsServer(enabled, c.Log)
|
||||
|
||||
if err := c.InitImageStore(reloadCtx); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := c.InitRepoDB(reloadCtx); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
c.StartBackgroundTasks(reloadCtx)
|
||||
|
||||
monitoring.SetServerInfo(c.Metrics, c.Config.Commit, c.Config.BinaryType, c.Config.GoVersion,
|
||||
c.Config.DistSpecVersion)
|
||||
|
||||
@@ -259,6 +236,43 @@ func (c *Controller) Run(reloadCtx context.Context) error {
|
||||
return server.Serve(listener)
|
||||
}
|
||||
|
||||
func (c *Controller) Init(reloadCtx context.Context) error {
|
||||
// print the current configuration, but strip secrets
|
||||
c.Log.Info().Interface("params", c.Config.Sanitize()).Msg("configuration settings")
|
||||
|
||||
// print the current runtime environment
|
||||
DumpRuntimeParams(c.Log)
|
||||
|
||||
var enabled bool
|
||||
if c.Config != nil &&
|
||||
c.Config.Extensions != nil &&
|
||||
c.Config.Extensions.Metrics != nil &&
|
||||
*c.Config.Extensions.Metrics.Enable {
|
||||
enabled = true
|
||||
}
|
||||
|
||||
c.Metrics = monitoring.NewMetricsServer(enabled, c.Log)
|
||||
|
||||
if err := c.InitImageStore(reloadCtx); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := c.InitRepoDB(reloadCtx); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
c.InitCVEInfo()
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *Controller) InitCVEInfo() {
|
||||
// Enable CVE extension if extension config is provided
|
||||
if c.Config != nil && c.Config.Extensions != nil {
|
||||
c.CveInfo = ext.GetCVEInfo(c.Config, c.StoreController, c.RepoDB, c.Log)
|
||||
}
|
||||
}
|
||||
|
||||
func (c *Controller) InitImageStore(ctx context.Context) error {
|
||||
c.StoreController = storage.StoreController{}
|
||||
|
||||
@@ -616,7 +630,7 @@ func (c *Controller) StartBackgroundTasks(reloadCtx context.Context) {
|
||||
// Enable extensions if extension config is provided for DefaultStore
|
||||
if c.Config != nil && c.Config.Extensions != nil {
|
||||
ext.EnableMetricsExtension(c.Config, c.Log, c.Config.Storage.RootDirectory)
|
||||
ext.EnableSearchExtension(c.Config, c.StoreController, c.RepoDB, c.Log)
|
||||
ext.EnableSearchExtension(c.Config, c.StoreController, c.RepoDB, c.CveInfo, c.Log)
|
||||
}
|
||||
|
||||
if c.Config.Storage.SubPaths != nil {
|
||||
|
||||
Reference in New Issue
Block a user