summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManuel Rüger <mrueg@gentoo.org>2017-05-19 16:47:59 +0200
committerManuel Rüger <mrueg@gentoo.org>2017-05-19 16:47:59 +0200
commit21eba0700591adc9435adc2b75bbdddddbf98915 (patch)
tree026560185d75687dfc756d5550854b4e8d2f740e /app-emulation/docker-registry/files
parentapp-eselect/eselect-postgresql: Support FEATURES="noman" (diff)
downloadgentoo-21eba0700591adc9435adc2b75bbdddddbf98915.tar.gz
gentoo-21eba0700591adc9435adc2b75bbdddddbf98915.tar.bz2
gentoo-21eba0700591adc9435adc2b75bbdddddbf98915.zip
app-emulation/docker-registry: Include patch to fix json in notifications endpoint
Package-Manager: Portage-2.3.5, Repoman-2.3.2
Diffstat (limited to 'app-emulation/docker-registry/files')
-rw-r--r--app-emulation/docker-registry/files/docker-registry-2.6.1-notifications-expvar.patch64
1 files changed, 64 insertions, 0 deletions
diff --git a/app-emulation/docker-registry/files/docker-registry-2.6.1-notifications-expvar.patch b/app-emulation/docker-registry/files/docker-registry-2.6.1-notifications-expvar.patch
new file mode 100644
index 000000000000..1d40edf1f0cd
--- /dev/null
+++ b/app-emulation/docker-registry/files/docker-registry-2.6.1-notifications-expvar.patch
@@ -0,0 +1,64 @@
+From 9a58c91051e03b46f1461e371a7bf527c1284612 Mon Sep 17 00:00:00 2001
+From: Noah Treuhaft <noah.treuhaft@docker.com>
+Date: Wed, 8 Feb 2017 11:38:44 -0800
+Subject: [PATCH] notifications: fix expvar for Go 1.7
+
+Remove EndpointConfig.Transport from the return value of the
+registry.notifications.endpoints expvar.Func. It results in an empty
+value for that expvar variable under Go 1.7 because it is a non-nil
+*http.Transport, which Go 1.7 can no longer encode as JSON.
+
+Signed-off-by: Noah Treuhaft <noah.treuhaft@docker.com>
+---
+ notifications/endpoint.go | 2 +-
+ notifications/metrics_test.go | 28 ++++++++++++++++++++++++++++
+ 2 files changed, 29 insertions(+), 1 deletion(-)
+ create mode 100644 notifications/metrics_test.go
+
+diff --git a/src/github.com/docker/distribution/notifications/endpoint.go b/src/github.com/docker/distribution/notifications/endpoint.go
+index 29a9e27b5..44d0f6d7b 100644
+--- a/src/github.com/docker/distribution/notifications/endpoint.go
++++ b/src/github.com/docker/distribution/notifications/endpoint.go
+@@ -13,7 +13,7 @@ type EndpointConfig struct {
+ Threshold int
+ Backoff time.Duration
+ IgnoredMediaTypes []string
+- Transport *http.Transport
++ Transport *http.Transport `json:"-"`
+ }
+
+ // defaults set any zero-valued fields to a reasonable default.
+diff --git a/src/github.com/docker/distribution/notifications/metrics_test.go b/src/github.com/docker/distribution/notifications/metrics_test.go
+new file mode 100644
+index 000000000..03a08e2c8
+--- /dev/null
++++ b/notifications/metrics_test.go
+@@ -0,0 +1,28 @@
++package notifications
++
++import (
++ "encoding/json"
++ "expvar"
++ "testing"
++)
++
++func TestMetricsExpvar(t *testing.T) {
++ endpointsVar := expvar.Get("registry").(*expvar.Map).Get("notifications").(*expvar.Map).Get("endpoints")
++
++ var v interface{}
++ if err := json.Unmarshal([]byte(endpointsVar.String()), &v); err != nil {
++ t.Fatalf("unexpected error unmarshaling endpoints: %v", err)
++ }
++ if v != nil {
++ t.Fatalf("expected nil, got %#v", v)
++ }
++
++ NewEndpoint("x", "y", EndpointConfig{})
++
++ if err := json.Unmarshal([]byte(endpointsVar.String()), &v); err != nil {
++ t.Fatalf("unexpected error unmarshaling endpoints: %v", err)
++ }
++ if slice, ok := v.([]interface{}); !ok || len(slice) != 1 {
++ t.Logf("expected one-element []interface{}, got %#v", v)
++ }
++}