From 2850e306a6fc0342d4589b8202842f7cab913692 Mon Sep 17 00:00:00 2001 From: stonezdj Date: Tue, 11 Jun 2024 17:56:18 +0800 Subject: [PATCH] Use internal registry url to push artifact accessory fixes #20565 Signed-off-by: stonezdj --- src/pkg/scan/sbom/sbom.go | 23 ++++------------------- src/pkg/scan/sbom/sbom_test.go | 1 - 2 files changed, 4 insertions(+), 20 deletions(-) diff --git a/src/pkg/scan/sbom/sbom.go b/src/pkg/scan/sbom/sbom.go index 4d47b9e3924..c77bcc7865c 100644 --- a/src/pkg/scan/sbom/sbom.go +++ b/src/pkg/scan/sbom/sbom.go @@ -22,13 +22,11 @@ import ( "strings" "time" - "github.com/goharbor/harbor/src/common" "github.com/goharbor/harbor/src/common/rbac" "github.com/goharbor/harbor/src/controller/artifact" scanCtl "github.com/goharbor/harbor/src/controller/scan" "github.com/goharbor/harbor/src/jobservice/job" "github.com/goharbor/harbor/src/jobservice/logger" - "github.com/goharbor/harbor/src/lib/config" "github.com/goharbor/harbor/src/lib/errors" "github.com/goharbor/harbor/src/lib/log" "github.com/goharbor/harbor/src/lib/orm" @@ -54,7 +52,6 @@ const ( func init() { scan.RegisterScanHanlder(v1.ScanTypeSbom, &scanHandler{ GenAccessoryFunc: scan.GenAccessoryArt, - RegistryServer: registry, SBOMMgrFunc: func() Manager { return Mgr }, TaskMgrFunc: func() task.Manager { return task.Mgr }, ArtifactControllerFunc: func() artifact.Controller { return artifact.Ctl }, @@ -67,7 +64,6 @@ func init() { // scanHandler defines the Handler to generate sbom type scanHandler struct { GenAccessoryFunc func(scanRep v1.ScanRequest, sbomContent []byte, labels map[string]string, mediaType string, robot *model.Robot) (string, error) - RegistryServer func(ctx context.Context) (string, bool) SBOMMgrFunc func() Manager TaskMgrFunc func() task.Manager ArtifactControllerFunc func() artifact.Controller @@ -96,8 +92,10 @@ func (h *scanHandler) PostScan(ctx job.Context, sr *v1.ScanRequest, _ *scanModel Registry: sr.Registry, Artifact: sr.Artifact, } - // the registry server url is core by default, need to replace it with real registry server url - scanReq.Registry.URL, scanReq.Registry.Insecure = h.RegistryServer(ctx.SystemContext()) + scanReq.Registry.Insecure = strings.HasPrefix(scanReq.Registry.URL, "http://") + // the registry URL should not contain http:// or https:// prefix + scanReq.Registry.URL = strings.TrimPrefix(scanReq.Registry.URL, "http://") + scanReq.Registry.URL = strings.TrimPrefix(scanReq.Registry.URL, "https://") if len(scanReq.Registry.URL) == 0 { return "", fmt.Errorf("empty registry server") } @@ -170,19 +168,6 @@ func (h *scanHandler) Update(ctx context.Context, uuid string, report string) er return nil } -// extract server name from config, and remove the protocol prefix -func registry(ctx context.Context) (string, bool) { - cfgMgr, ok := config.FromContext(ctx) - if ok { - extURL := cfgMgr.Get(context.Background(), common.ExtEndpoint).GetString() - insecure := strings.HasPrefix(extURL, "http://") - server := strings.TrimPrefix(extURL, "https://") - server = strings.TrimPrefix(server, "http://") - return server, insecure - } - return "", false -} - // retrieveSBOMContent retrieves the "sbom" field from the raw report func retrieveSBOMContent(rawReport string) ([]byte, *v1.Scanner, error) { rpt := sbom.RawSBOMReport{} diff --git a/src/pkg/scan/sbom/sbom_test.go b/src/pkg/scan/sbom/sbom_test.go index 04a3c2ece5c..753ff97d933 100644 --- a/src/pkg/scan/sbom/sbom_test.go +++ b/src/pkg/scan/sbom/sbom_test.go @@ -147,7 +147,6 @@ func (suite *SBOMTestSuite) SetupSuite() { suite.handler = &scanHandler{ GenAccessoryFunc: mockGenAccessory, - RegistryServer: mockGetRegistry, SBOMMgrFunc: func() Manager { return suite.sbomManager }, TaskMgrFunc: func() task.Manager { return suite.taskMgr }, ArtifactControllerFunc: func() artifact.Controller { return suite.artifactCtl },