瀏覽代碼

Move schema1 deprecation notice

Currently we show this deprecation notice for any error returned by a
registry.
Registries can return an error for any number of reasons.
Instead let's show the deprecation notice only if the fallback was
successful.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Brian Goff 5 年之前
父節點
當前提交
6859bc7eee
共有 1 個文件被更改,包括 6 次插入4 次删除
  1. 6 4
      distribution/push_v2.go

+ 6 - 4
distribution/push_v2.go

@@ -188,10 +188,7 @@ func (p *v2Pusher) pushV2Tag(ctx context.Context, ref reference.NamedTagged, id
 
 
 		logrus.Warnf("failed to upload schema2 manifest: %v - falling back to schema1", err)
 		logrus.Warnf("failed to upload schema2 manifest: %v - falling back to schema1", err)
 
 
-		msg := fmt.Sprintf("[DEPRECATION NOTICE] registry v2 schema1 support will be removed in an upcoming release. Please contact admins of the %s registry NOW to avoid future disruption. More information at https://docs.docker.com/registry/spec/deprecated-schema-v1/", reference.Domain(ref))
-		logrus.Warn(msg)
-		progress.Message(p.config.ProgressOutput, "", msg)
-
+		// Note: this fallback is deprecated, see log messages below
 		manifestRef, err := reference.WithTag(p.repo.Named(), ref.Tag())
 		manifestRef, err := reference.WithTag(p.repo.Named(), ref.Tag())
 		if err != nil {
 		if err != nil {
 			return err
 			return err
@@ -205,6 +202,11 @@ func (p *v2Pusher) pushV2Tag(ctx context.Context, ref reference.NamedTagged, id
 		if _, err = manSvc.Put(ctx, manifest, putOptions...); err != nil {
 		if _, err = manSvc.Put(ctx, manifest, putOptions...); err != nil {
 			return err
 			return err
 		}
 		}
+
+		// schema2 failed but schema1 succeeded
+		msg := fmt.Sprintf("[DEPRECATION NOTICE] registry v2 schema1 support will be removed in an upcoming release. Please contact admins of the %s registry NOW to avoid future disruption. More information at https://docs.docker.com/registry/spec/deprecated-schema-v1/", reference.Domain(ref))
+		logrus.Warn(msg)
+		progress.Message(p.config.ProgressOutput, "", msg)
 	}
 	}
 
 
 	var canonicalManifest []byte
 	var canonicalManifest []byte