mirror of https://github.com/goharbor/harbor.git
Return the Resport when the scanner is unhealthy (#22255)
This commit fixes #22254 It updates the "GetReport" function, such that when the scanner is unhealthy, and we can't know the the artifact is supported, we will still try to return the report stored in DB. Signed-off-by: Daniel Jiang <daniel.jiang@broadcom.com>
This commit is contained in:
parent
7be31c187c
commit
747d54d70e
|
@ -597,7 +597,9 @@ func (bc *basicController) GetReport(ctx context.Context, artifact *ar.Artifact,
|
|||
return nil, err
|
||||
}
|
||||
|
||||
if !scannable {
|
||||
// When the scanner is unhealthy, the artifact will be recognized as "not scannable", in this case we will not return the error
|
||||
// but return the scanner report with the best effort.
|
||||
if !scannable && r.Health == sc.StatusHealthy {
|
||||
return nil, errors.NotFoundError(nil).WithMessagef("report not found for %s@%s", artifact.RepositoryName, artifact.Digest)
|
||||
}
|
||||
|
||||
|
|
|
@ -36,8 +36,8 @@ import (
|
|||
|
||||
const (
|
||||
proScannerMetaKey = "projectScanner"
|
||||
statusUnhealthy = "unhealthy"
|
||||
statusHealthy = "healthy"
|
||||
StatusUnhealthy = "unhealthy"
|
||||
StatusHealthy = "healthy"
|
||||
// RetrieveCapFailMsg the message indicate failed to retrieve the scanner capabilities
|
||||
RetrieveCapFailMsg = "failed to retrieve scanner capabilities, error %v"
|
||||
)
|
||||
|
@ -287,9 +287,9 @@ func (bc *basicController) GetRegistrationByProject(ctx context.Context, project
|
|||
if err != nil {
|
||||
// Not blocked, just logged it
|
||||
log.Error(errors.Wrap(err, "api controller: get project scanner"))
|
||||
registration.Health = statusUnhealthy
|
||||
registration.Health = StatusUnhealthy
|
||||
} else {
|
||||
registration.Health = statusHealthy
|
||||
registration.Health = StatusHealthy
|
||||
// Fill in some metadata
|
||||
registration.Adapter = meta.Scanner.Name
|
||||
registration.Vendor = meta.Scanner.Vendor
|
||||
|
|
Loading…
Reference in New Issue