Commit 6967d734 authored by stonezdj's avatar stonezdj
Browse files

Fallback to local repo on errors when proxy to remote repo


 When the remote repo is offline or network issue or credential issue, fall back to local repo.
 Fixes #12853
Signed-off-by: default avatarstonezdj <stonezdj@gmail.com>
parent 2ab4fbef
......@@ -111,7 +111,19 @@ func handleManifest(w http.ResponseWriter, r *http.Request, next http.Handler) e
return nil
}
log.Debugf("the tag is %v, digest is %v", art.Tag, art.Digest)
man, err := proxyCtl.ProxyManifest(ctx, p, art)
err = proxyManifest(ctx, w, r, next, proxyCtl, p, art)
if err != nil {
if errors.IsNotFoundErr(err) {
return err
}
log.Warningf("Proxy to remote failed, fallback to local repo, error: %v", err)
next.ServeHTTP(w, r)
}
return nil
}
func proxyManifest(ctx context.Context, w http.ResponseWriter, r *http.Request, next http.Handler, ctl proxy.Controller, p *models.Project, art lib.ArtifactInfo) error {
man, err := ctl.ProxyManifest(ctx, p, art)
if err != nil {
return err
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment