mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-10-30 17:58:14 +00:00 
			
		
		
		
	cleanup req.Context() and ResponseWrapper
This commit is contained in:
		| @@ -17,6 +17,7 @@ limitations under the License. | ||||
| package podautoscaler | ||||
|  | ||||
| import ( | ||||
| 	"context" | ||||
| 	"encoding/json" | ||||
| 	"fmt" | ||||
| 	"io" | ||||
| @@ -55,11 +56,11 @@ import ( | ||||
| 	_ "k8s.io/kubernetes/pkg/apis/core/install" | ||||
| ) | ||||
|  | ||||
| func (w fakeResponseWrapper) DoRaw() ([]byte, error) { | ||||
| func (w fakeResponseWrapper) DoRaw(context.Context) ([]byte, error) { | ||||
| 	return w.raw, nil | ||||
| } | ||||
|  | ||||
| func (w fakeResponseWrapper) Stream() (io.ReadCloser, error) { | ||||
| func (w fakeResponseWrapper) Stream(context.Context) (io.ReadCloser, error) { | ||||
| 	return nil, nil | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -17,6 +17,7 @@ limitations under the License. | ||||
| package metrics | ||||
|  | ||||
| import ( | ||||
| 	"context" | ||||
| 	"encoding/json" | ||||
| 	"fmt" | ||||
| 	"strings" | ||||
| @@ -27,7 +28,7 @@ import ( | ||||
| 	metricsapi "k8s.io/metrics/pkg/apis/metrics/v1alpha1" | ||||
|  | ||||
| 	autoscaling "k8s.io/api/autoscaling/v2beta2" | ||||
| 	"k8s.io/api/core/v1" | ||||
| 	v1 "k8s.io/api/core/v1" | ||||
| 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | ||||
| 	"k8s.io/apimachinery/pkg/labels" | ||||
| 	clientset "k8s.io/client-go/kubernetes" | ||||
| @@ -68,7 +69,7 @@ func (h *HeapsterMetricsClient) GetResourceMetric(resource v1.ResourceName, name | ||||
|  | ||||
| 	resultRaw, err := h.services. | ||||
| 		ProxyGet(h.heapsterScheme, h.heapsterService, h.heapsterPort, metricPath, params). | ||||
| 		DoRaw() | ||||
| 		DoRaw(context.TODO()) | ||||
| 	if err != nil { | ||||
| 		return nil, time.Time{}, fmt.Errorf("failed to get pod resource metrics: %v", err) | ||||
| 	} | ||||
| @@ -139,7 +140,7 @@ func (h *HeapsterMetricsClient) GetRawMetric(metricName string, namespace string | ||||
|  | ||||
| 	resultRaw, err := h.services. | ||||
| 		ProxyGet(h.heapsterScheme, h.heapsterService, h.heapsterPort, metricPath, map[string]string{"start": startTime.Format(time.RFC3339)}). | ||||
| 		DoRaw() | ||||
| 		DoRaw(context.TODO()) | ||||
| 	if err != nil { | ||||
| 		return nil, time.Time{}, fmt.Errorf("failed to get pod metrics: %v", err) | ||||
| 	} | ||||
|   | ||||
| @@ -17,13 +17,14 @@ limitations under the License. | ||||
| package metrics | ||||
|  | ||||
| import ( | ||||
| 	"context" | ||||
| 	"encoding/json" | ||||
| 	"fmt" | ||||
| 	"io" | ||||
| 	"testing" | ||||
| 	"time" | ||||
|  | ||||
| 	"k8s.io/api/core/v1" | ||||
| 	v1 "k8s.io/api/core/v1" | ||||
| 	"k8s.io/apimachinery/pkg/api/resource" | ||||
| 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | ||||
| 	"k8s.io/apimachinery/pkg/labels" | ||||
| @@ -40,11 +41,11 @@ import ( | ||||
|  | ||||
| var fixedTimestamp = time.Date(2015, time.November, 10, 12, 30, 0, 0, time.UTC) | ||||
|  | ||||
| func (w fakeResponseWrapper) DoRaw() ([]byte, error) { | ||||
| func (w fakeResponseWrapper) DoRaw(context.Context) ([]byte, error) { | ||||
| 	return w.raw, nil | ||||
| } | ||||
|  | ||||
| func (w fakeResponseWrapper) Stream() (io.ReadCloser, error) { | ||||
| func (w fakeResponseWrapper) Stream(context.Context) (io.ReadCloser, error) { | ||||
| 	return nil, nil | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -174,7 +174,7 @@ func (a *Plugin) admitPod(ctx context.Context, pod *api.Pod, attributes admissio | ||||
| 		review.Status = entry.(v1alpha1.ImageReviewStatus) | ||||
| 	} else { | ||||
| 		result := a.webhook.WithExponentialBackoff(ctx, func() rest.Result { | ||||
| 			return a.webhook.RestClient.Post().Context(ctx).Body(review).Do(context.TODO()) | ||||
| 			return a.webhook.RestClient.Post().Body(review).Do(ctx) | ||||
| 		}) | ||||
|  | ||||
| 		if err := result.Error(); err != nil { | ||||
|   | ||||
| @@ -271,7 +271,7 @@ func (c *webhookConverter) Convert(in runtime.Object, toGV schema.GroupVersion) | ||||
|  | ||||
| 	// TODO: Figure out if adding one second timeout make sense here. | ||||
| 	ctx := context.TODO() | ||||
| 	r := c.restClient.Post().Context(ctx).Body(request).Do(context.TODO()) | ||||
| 	r := c.restClient.Post().Body(request).Do(ctx) | ||||
| 	if err := r.Into(response); err != nil { | ||||
| 		// TODO: Return a webhook specific error to be able to convert it to meta.Status | ||||
| 		return nil, fmt.Errorf("conversion webhook for %v failed: %v", in.GetObjectKind().GroupVersionKind(), err) | ||||
|   | ||||
| @@ -236,7 +236,7 @@ func (a *mutatingDispatcher) callAttrMutatingHook(ctx context.Context, h *admiss | ||||
| 		defer cancel() | ||||
| 	} | ||||
|  | ||||
| 	r := client.Post().Context(ctx).Body(request) | ||||
| 	r := client.Post().Body(request) | ||||
|  | ||||
| 	// if the context has a deadline, set it as a parameter to inform the backend | ||||
| 	if deadline, hasDeadline := ctx.Deadline(); hasDeadline { | ||||
| @@ -251,7 +251,7 @@ func (a *mutatingDispatcher) callAttrMutatingHook(ctx context.Context, h *admiss | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	if err := r.Do(context.TODO()).Into(response); err != nil { | ||||
| 	if err := r.Do(ctx).Into(response); err != nil { | ||||
| 		return false, &webhookutil.ErrCallingWebhook{WebhookName: h.Name, Reason: err} | ||||
| 	} | ||||
| 	trace.Step("Request completed") | ||||
|   | ||||
| @@ -196,7 +196,7 @@ func (d *validatingDispatcher) callHook(ctx context.Context, h *v1.ValidatingWeb | ||||
| 		defer cancel() | ||||
| 	} | ||||
|  | ||||
| 	r := client.Post().Context(ctx).Body(request) | ||||
| 	r := client.Post().Body(request) | ||||
|  | ||||
| 	// if the context has a deadline, set it as a parameter to inform the backend | ||||
| 	if deadline, hasDeadline := ctx.Deadline(); hasDeadline { | ||||
| @@ -211,7 +211,7 @@ func (d *validatingDispatcher) callHook(ctx context.Context, h *v1.ValidatingWeb | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	if err := r.Do(context.TODO()).Into(response); err != nil { | ||||
| 	if err := r.Do(ctx).Into(response); err != nil { | ||||
| 		return &webhookutil.ErrCallingWebhook{WebhookName: h.Name, Reason: err} | ||||
| 	} | ||||
| 	trace.Step("Request completed") | ||||
|   | ||||
| @@ -198,7 +198,7 @@ type tokenReviewV1Client struct { | ||||
|  | ||||
| func (t *tokenReviewV1Client) CreateContext(ctx context.Context, review *authenticationv1.TokenReview) (*authenticationv1.TokenReview, error) { | ||||
| 	result := &authenticationv1.TokenReview{} | ||||
| 	err := t.w.RestClient.Post().Context(ctx).Body(review).Do(context.TODO()).Into(result) | ||||
| 	err := t.w.RestClient.Post().Body(review).Do(ctx).Into(result) | ||||
| 	return result, err | ||||
| } | ||||
|  | ||||
| @@ -209,7 +209,7 @@ type tokenReviewV1beta1Client struct { | ||||
| func (t *tokenReviewV1beta1Client) CreateContext(ctx context.Context, review *authenticationv1.TokenReview) (*authenticationv1.TokenReview, error) { | ||||
| 	v1beta1Review := &authenticationv1beta1.TokenReview{Spec: v1SpecToV1beta1Spec(&review.Spec)} | ||||
| 	v1beta1Result := &authenticationv1beta1.TokenReview{} | ||||
| 	err := t.w.RestClient.Post().Context(ctx).Body(v1beta1Review).Do(context.TODO()).Into(v1beta1Result) | ||||
| 	err := t.w.RestClient.Post().Body(v1beta1Review).Do(ctx).Into(v1beta1Result) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
|   | ||||
| @@ -289,7 +289,7 @@ type subjectAccessReviewV1Client struct { | ||||
|  | ||||
| func (t *subjectAccessReviewV1Client) CreateContext(ctx context.Context, subjectAccessReview *authorizationv1.SubjectAccessReview) (*authorizationv1.SubjectAccessReview, error) { | ||||
| 	result := &authorizationv1.SubjectAccessReview{} | ||||
| 	err := t.w.RestClient.Post().Context(ctx).Body(subjectAccessReview).Do(context.TODO()).Into(result) | ||||
| 	err := t.w.RestClient.Post().Body(subjectAccessReview).Do(ctx).Into(result) | ||||
| 	return result, err | ||||
| } | ||||
|  | ||||
| @@ -300,7 +300,7 @@ type subjectAccessReviewV1beta1Client struct { | ||||
| func (t *subjectAccessReviewV1beta1Client) CreateContext(ctx context.Context, subjectAccessReview *authorizationv1.SubjectAccessReview) (*authorizationv1.SubjectAccessReview, error) { | ||||
| 	v1beta1Review := &authorizationv1beta1.SubjectAccessReview{Spec: v1SpecToV1beta1Spec(&subjectAccessReview.Spec)} | ||||
| 	v1beta1Result := &authorizationv1beta1.SubjectAccessReview{} | ||||
| 	err := t.w.RestClient.Post().Context(ctx).Body(v1beta1Review).Do(context.TODO()).Into(v1beta1Result) | ||||
| 	err := t.w.RestClient.Post().Body(v1beta1Review).Do(ctx).Into(v1beta1Result) | ||||
| 	if err == nil { | ||||
| 		subjectAccessReview.Status = v1beta1StatusToV1Status(&v1beta1Result.Status) | ||||
| 	} | ||||
|   | ||||
| @@ -34,10 +34,9 @@ func (c *tokenReviews) Create(tokenReview *authenticationapi.TokenReview) (resul | ||||
| func (c *tokenReviews) CreateContext(ctx context.Context, tokenReview *authenticationapi.TokenReview) (result *authenticationapi.TokenReview, err error) { | ||||
| 	result = &authenticationapi.TokenReview{} | ||||
| 	err = c.client.Post(). | ||||
| 		Context(ctx). | ||||
| 		Resource("tokenreviews"). | ||||
| 		Body(tokenReview). | ||||
| 		Do(context.TODO()). | ||||
| 		Do(ctx). | ||||
| 		Into(result) | ||||
| 	return | ||||
| } | ||||
|   | ||||
| @@ -34,10 +34,9 @@ func (c *tokenReviews) Create(tokenReview *authenticationapi.TokenReview) (resul | ||||
| func (c *tokenReviews) CreateContext(ctx context.Context, tokenReview *authenticationapi.TokenReview) (result *authenticationapi.TokenReview, err error) { | ||||
| 	result = &authenticationapi.TokenReview{} | ||||
| 	err = c.client.Post(). | ||||
| 		Context(ctx). | ||||
| 		Resource("tokenreviews"). | ||||
| 		Body(tokenReview). | ||||
| 		Do(context.TODO()). | ||||
| 		Do(ctx). | ||||
| 		Into(result) | ||||
| 	return | ||||
| } | ||||
|   | ||||
| @@ -34,11 +34,10 @@ func (c *localSubjectAccessReviews) Create(sar *authorizationapi.LocalSubjectAcc | ||||
| func (c *localSubjectAccessReviews) CreateContext(ctx context.Context, sar *authorizationapi.LocalSubjectAccessReview) (result *authorizationapi.LocalSubjectAccessReview, err error) { | ||||
| 	result = &authorizationapi.LocalSubjectAccessReview{} | ||||
| 	err = c.client.Post(). | ||||
| 		Context(ctx). | ||||
| 		Namespace(c.ns). | ||||
| 		Resource("localsubjectaccessreviews"). | ||||
| 		Body(sar). | ||||
| 		Do(context.TODO()). | ||||
| 		Do(ctx). | ||||
| 		Into(result) | ||||
| 	return | ||||
| } | ||||
|   | ||||
| @@ -34,10 +34,9 @@ func (c *selfSubjectAccessReviews) Create(sar *authorizationapi.SelfSubjectAcces | ||||
| func (c *selfSubjectAccessReviews) CreateContext(ctx context.Context, sar *authorizationapi.SelfSubjectAccessReview) (result *authorizationapi.SelfSubjectAccessReview, err error) { | ||||
| 	result = &authorizationapi.SelfSubjectAccessReview{} | ||||
| 	err = c.client.Post(). | ||||
| 		Context(ctx). | ||||
| 		Resource("selfsubjectaccessreviews"). | ||||
| 		Body(sar). | ||||
| 		Do(context.TODO()). | ||||
| 		Do(ctx). | ||||
| 		Into(result) | ||||
| 	return | ||||
| } | ||||
|   | ||||
| @@ -34,10 +34,9 @@ func (c *selfSubjectRulesReviews) Create(srr *authorizationapi.SelfSubjectRulesR | ||||
| func (c *selfSubjectRulesReviews) CreateContext(ctx context.Context, srr *authorizationapi.SelfSubjectRulesReview) (result *authorizationapi.SelfSubjectRulesReview, err error) { | ||||
| 	result = &authorizationapi.SelfSubjectRulesReview{} | ||||
| 	err = c.client.Post(). | ||||
| 		Context(ctx). | ||||
| 		Resource("selfsubjectrulesreviews"). | ||||
| 		Body(srr). | ||||
| 		Do(context.TODO()). | ||||
| 		Do(ctx). | ||||
| 		Into(result) | ||||
| 	return | ||||
| } | ||||
|   | ||||
| @@ -35,10 +35,9 @@ func (c *subjectAccessReviews) Create(sar *authorizationapi.SubjectAccessReview) | ||||
| func (c *subjectAccessReviews) CreateContext(ctx context.Context, sar *authorizationapi.SubjectAccessReview) (result *authorizationapi.SubjectAccessReview, err error) { | ||||
| 	result = &authorizationapi.SubjectAccessReview{} | ||||
| 	err = c.client.Post(). | ||||
| 		Context(ctx). | ||||
| 		Resource("subjectaccessreviews"). | ||||
| 		Body(sar). | ||||
| 		Do(context.TODO()). | ||||
| 		Do(ctx). | ||||
| 		Into(result) | ||||
| 	return | ||||
| } | ||||
|   | ||||
| @@ -34,11 +34,10 @@ func (c *localSubjectAccessReviews) Create(sar *authorizationapi.LocalSubjectAcc | ||||
| func (c *localSubjectAccessReviews) CreateContext(ctx context.Context, sar *authorizationapi.LocalSubjectAccessReview) (result *authorizationapi.LocalSubjectAccessReview, err error) { | ||||
| 	result = &authorizationapi.LocalSubjectAccessReview{} | ||||
| 	err = c.client.Post(). | ||||
| 		Context(ctx). | ||||
| 		Namespace(c.ns). | ||||
| 		Resource("localsubjectaccessreviews"). | ||||
| 		Body(sar). | ||||
| 		Do(context.TODO()). | ||||
| 		Do(ctx). | ||||
| 		Into(result) | ||||
| 	return | ||||
| } | ||||
|   | ||||
| @@ -34,10 +34,9 @@ func (c *selfSubjectAccessReviews) Create(sar *authorizationapi.SelfSubjectAcces | ||||
| func (c *selfSubjectAccessReviews) CreateContext(ctx context.Context, sar *authorizationapi.SelfSubjectAccessReview) (result *authorizationapi.SelfSubjectAccessReview, err error) { | ||||
| 	result = &authorizationapi.SelfSubjectAccessReview{} | ||||
| 	err = c.client.Post(). | ||||
| 		Context(ctx). | ||||
| 		Resource("selfsubjectaccessreviews"). | ||||
| 		Body(sar). | ||||
| 		Do(context.TODO()). | ||||
| 		Do(ctx). | ||||
| 		Into(result) | ||||
| 	return | ||||
| } | ||||
|   | ||||
| @@ -34,10 +34,9 @@ func (c *selfSubjectRulesReviews) Create(srr *authorizationapi.SelfSubjectRulesR | ||||
| func (c *selfSubjectRulesReviews) CreateContext(ctx context.Context, srr *authorizationapi.SelfSubjectRulesReview) (result *authorizationapi.SelfSubjectRulesReview, err error) { | ||||
| 	result = &authorizationapi.SelfSubjectRulesReview{} | ||||
| 	err = c.client.Post(). | ||||
| 		Context(ctx). | ||||
| 		Resource("selfsubjectrulesreviews"). | ||||
| 		Body(srr). | ||||
| 		Do(context.TODO()). | ||||
| 		Do(ctx). | ||||
| 		Into(result) | ||||
| 	return | ||||
| } | ||||
|   | ||||
| @@ -35,10 +35,9 @@ func (c *subjectAccessReviews) Create(sar *authorizationapi.SubjectAccessReview) | ||||
| func (c *subjectAccessReviews) CreateContext(ctx context.Context, sar *authorizationapi.SubjectAccessReview) (result *authorizationapi.SubjectAccessReview, err error) { | ||||
| 	result = &authorizationapi.SubjectAccessReview{} | ||||
| 	err = c.client.Post(). | ||||
| 		Context(ctx). | ||||
| 		Resource("subjectaccessreviews"). | ||||
| 		Body(sar). | ||||
| 		Do(context.TODO()). | ||||
| 		Do(ctx). | ||||
| 		Into(result) | ||||
| 	return | ||||
| } | ||||
|   | ||||
| @@ -17,6 +17,7 @@ limitations under the License. | ||||
| package rest | ||||
|  | ||||
| import ( | ||||
| 	"context" | ||||
| 	"net/http" | ||||
| 	"net/http/httptest" | ||||
| 	"net/url" | ||||
| @@ -79,7 +80,7 @@ func TestDoRequestSuccess(t *testing.T) { | ||||
| 	if err != nil { | ||||
| 		t.Fatalf("unexpected error: %v", err) | ||||
| 	} | ||||
| 	body, err := c.Get().Prefix("test").Do().Raw() | ||||
| 	body, err := c.Get().Prefix("test").Do(context.Background()).Raw() | ||||
|  | ||||
| 	testParam := TestParam{actualError: err, expectingError: false, expCreated: true, | ||||
| 		expStatus: status, testBody: true, testBodyErrorIsNotNil: false} | ||||
| @@ -107,7 +108,7 @@ func TestDoRequestFailed(t *testing.T) { | ||||
| 	if err != nil { | ||||
| 		t.Fatalf("unexpected error: %v", err) | ||||
| 	} | ||||
| 	err = c.Get().Do().Error() | ||||
| 	err = c.Get().Do(context.Background()).Error() | ||||
| 	if err == nil { | ||||
| 		t.Errorf("unexpected non-error") | ||||
| 	} | ||||
| @@ -146,7 +147,7 @@ func TestDoRawRequestFailed(t *testing.T) { | ||||
| 	if err != nil { | ||||
| 		t.Fatalf("unexpected error: %v", err) | ||||
| 	} | ||||
| 	body, err := c.Get().Do().Raw() | ||||
| 	body, err := c.Get().Do(context.Background()).Raw() | ||||
|  | ||||
| 	if err == nil || body == nil { | ||||
| 		t.Errorf("unexpected non-error: %#v", body) | ||||
| @@ -170,7 +171,7 @@ func TestDoRequestCreated(t *testing.T) { | ||||
| 		t.Fatalf("unexpected error: %v", err) | ||||
| 	} | ||||
| 	created := false | ||||
| 	body, err := c.Get().Prefix("test").Do().WasCreated(&created).Raw() | ||||
| 	body, err := c.Get().Prefix("test").Do(context.Background()).WasCreated(&created).Raw() | ||||
|  | ||||
| 	testParam := TestParam{actualError: err, expectingError: false, expCreated: true, | ||||
| 		expStatus: status, testBody: false} | ||||
| @@ -185,7 +186,7 @@ func TestDoRequestNotCreated(t *testing.T) { | ||||
| 		t.Fatalf("unexpected error: %v", err) | ||||
| 	} | ||||
| 	created := false | ||||
| 	body, err := c.Get().Prefix("test").Do().WasCreated(&created).Raw() | ||||
| 	body, err := c.Get().Prefix("test").Do(context.Background()).WasCreated(&created).Raw() | ||||
| 	testParam := TestParam{actualError: err, expectingError: false, expCreated: false, | ||||
| 		expStatus: expectedStatus, testBody: false} | ||||
| 	validate(testParam, t, body, fakeHandler) | ||||
| @@ -200,7 +201,7 @@ func TestDoRequestAcceptedNoContentReturned(t *testing.T) { | ||||
| 		t.Fatalf("unexpected error: %v", err) | ||||
| 	} | ||||
| 	created := false | ||||
| 	body, err := c.Get().Prefix("test").Do().WasCreated(&created).Raw() | ||||
| 	body, err := c.Get().Prefix("test").Do(context.Background()).WasCreated(&created).Raw() | ||||
| 	testParam := TestParam{actualError: err, expectingError: false, expCreated: false, | ||||
| 		testBody: false} | ||||
| 	validate(testParam, t, body, fakeHandler) | ||||
| @@ -214,7 +215,7 @@ func TestBadRequest(t *testing.T) { | ||||
| 		t.Fatalf("unexpected error: %v", err) | ||||
| 	} | ||||
| 	created := false | ||||
| 	body, err := c.Get().Prefix("test").Do().WasCreated(&created).Raw() | ||||
| 	body, err := c.Get().Prefix("test").Do(context.Background()).WasCreated(&created).Raw() | ||||
| 	testParam := TestParam{actualError: err, expectingError: true, expCreated: false, | ||||
| 		testBody: true} | ||||
| 	validate(testParam, t, body, fakeHandler) | ||||
|   | ||||
| @@ -94,9 +94,9 @@ func TestRequestSetsHeaders(t *testing.T) { | ||||
| 	r.c.Client = server | ||||
|  | ||||
| 	// Check if all "issue" methods are setting headers. | ||||
| 	_ = r.Do() | ||||
| 	_, _ = r.Watch() | ||||
| 	_, _ = r.Stream() | ||||
| 	_ = r.Do(context.Background()) | ||||
| 	_, _ = r.Watch(context.Background()) | ||||
| 	_, _ = r.Stream(context.Background()) | ||||
| } | ||||
|  | ||||
| func TestRequestWithErrorWontChange(t *testing.T) { | ||||
| @@ -1059,7 +1059,7 @@ func TestRequestWatch(t *testing.T) { | ||||
| 	for _, testCase := range testCases { | ||||
| 		t.Run("", func(t *testing.T) { | ||||
| 			testCase.Request.backoff = &NoBackoff{} | ||||
| 			watch, err := testCase.Request.Watch() | ||||
| 			watch, err := testCase.Request.Watch(context.Background()) | ||||
| 			hasErr := err != nil | ||||
| 			if hasErr != testCase.Err { | ||||
| 				t.Fatalf("expected %t, got %t: %v", testCase.Err, hasErr, err) | ||||
| @@ -1162,7 +1162,7 @@ func TestRequestStream(t *testing.T) { | ||||
| 	} | ||||
| 	for i, testCase := range testCases { | ||||
| 		testCase.Request.backoff = &NoBackoff{} | ||||
| 		body, err := testCase.Request.Stream() | ||||
| 		body, err := testCase.Request.Stream(context.Background()) | ||||
| 		hasErr := err != nil | ||||
| 		if hasErr != testCase.Err { | ||||
| 			t.Errorf("%d: expected %t, got %t: %v", i, testCase.Err, hasErr, err) | ||||
| @@ -1240,7 +1240,7 @@ func TestRequestDo(t *testing.T) { | ||||
| 	} | ||||
| 	for i, testCase := range testCases { | ||||
| 		testCase.Request.backoff = &NoBackoff{} | ||||
| 		body, err := testCase.Request.Do().Raw() | ||||
| 		body, err := testCase.Request.Do(context.Background()).Raw() | ||||
| 		hasErr := err != nil | ||||
| 		if hasErr != testCase.Err { | ||||
| 			t.Errorf("%d: expected %t, got %t: %v", i, testCase.Err, hasErr, err) | ||||
| @@ -1272,7 +1272,7 @@ func TestDoRequestNewWay(t *testing.T) { | ||||
| 		Suffix("baz"). | ||||
| 		Timeout(time.Second). | ||||
| 		Body([]byte(reqBody)). | ||||
| 		Do().Get() | ||||
| 		Do(context.Background()).Get() | ||||
| 	if err != nil { | ||||
| 		t.Errorf("Unexpected error: %v %#v", err, err) | ||||
| 		return | ||||
| @@ -1323,7 +1323,7 @@ func TestBackoffLifecycle(t *testing.T) { | ||||
| 			t.Errorf("Backoff is %v instead of %v", thisBackoff, sec) | ||||
| 		} | ||||
| 		now := clock.Now() | ||||
| 		request.DoRaw() | ||||
| 		request.DoRaw(context.Background()) | ||||
| 		elapsed := clock.Since(now) | ||||
| 		if clock.Since(now) != thisBackoff { | ||||
| 			t.Errorf("CalculatedBackoff not honored by clock: Expected time of %v, but got %v ", thisBackoff, elapsed) | ||||
| @@ -1372,7 +1372,7 @@ func TestCheckRetryClosesBody(t *testing.T) { | ||||
| 		Suffix("baz"). | ||||
| 		Timeout(time.Second). | ||||
| 		Body([]byte(strings.Repeat("abcd", 1000))). | ||||
| 		DoRaw() | ||||
| 		DoRaw(context.Background()) | ||||
| 	if err != nil { | ||||
| 		t.Fatalf("Unexpected error: %v %#v", err, err) | ||||
| 	} | ||||
| @@ -1405,7 +1405,7 @@ func TestConnectionResetByPeerIsRetried(t *testing.T) { | ||||
| 		backoff: backoff, | ||||
| 	} | ||||
| 	// We expect two retries of "connection reset by peer" and the success. | ||||
| 	_, err := req.Do().Raw() | ||||
| 	_, err := req.Do(context.Background()).Raw() | ||||
| 	if err != nil { | ||||
| 		t.Errorf("Unexpected error: %v", err) | ||||
| 	} | ||||
| @@ -1445,7 +1445,7 @@ func TestCheckRetryHandles429And5xx(t *testing.T) { | ||||
| 		Suffix("baz"). | ||||
| 		Timeout(time.Second). | ||||
| 		Body([]byte(strings.Repeat("abcd", 1000))). | ||||
| 		DoRaw() | ||||
| 		DoRaw(context.Background()) | ||||
| 	if err != nil { | ||||
| 		t.Fatalf("Unexpected error: %v %#v", err, err) | ||||
| 	} | ||||
| @@ -1481,7 +1481,7 @@ func BenchmarkCheckRetryClosesBody(b *testing.B) { | ||||
|  | ||||
| 	b.ResetTimer() | ||||
| 	for i := 0; i < b.N; i++ { | ||||
| 		if _, err := requests[i].DoRaw(); err != nil { | ||||
| 		if _, err := requests[i].DoRaw(context.Background()); err != nil { | ||||
| 			b.Fatalf("Unexpected error (%d/%d): %v", i, b.N, err) | ||||
| 		} | ||||
| 	} | ||||
| @@ -1510,7 +1510,7 @@ func TestDoRequestNewWayReader(t *testing.T) { | ||||
| 		Prefix("foo"). | ||||
| 		Timeout(time.Second). | ||||
| 		Body(bytes.NewBuffer(reqBodyExpected)). | ||||
| 		Do().Get() | ||||
| 		Do(context.Background()).Get() | ||||
| 	if err != nil { | ||||
| 		t.Errorf("Unexpected error: %v %#v", err, err) | ||||
| 		return | ||||
| @@ -1549,7 +1549,7 @@ func TestDoRequestNewWayObj(t *testing.T) { | ||||
| 		Resource("foo"). | ||||
| 		Timeout(time.Second). | ||||
| 		Body(reqObj). | ||||
| 		Do().Get() | ||||
| 		Do(context.Background()).Get() | ||||
| 	if err != nil { | ||||
| 		t.Errorf("Unexpected error: %v %#v", err, err) | ||||
| 		return | ||||
| @@ -1603,7 +1603,7 @@ func TestDoRequestNewWayFile(t *testing.T) { | ||||
| 		Prefix("foo/bar", "baz"). | ||||
| 		Timeout(time.Second). | ||||
| 		Body(file.Name()). | ||||
| 		Do().WasCreated(&wasCreated).Get() | ||||
| 		Do(context.Background()).WasCreated(&wasCreated).Get() | ||||
| 	if err != nil { | ||||
| 		t.Errorf("Unexpected error: %v %#v", err, err) | ||||
| 		return | ||||
| @@ -1648,7 +1648,7 @@ func TestWasCreated(t *testing.T) { | ||||
| 		Prefix("foo/bar", "baz"). | ||||
| 		Timeout(time.Second). | ||||
| 		Body(reqBodyExpected). | ||||
| 		Do().WasCreated(&wasCreated).Get() | ||||
| 		Do(context.Background()).WasCreated(&wasCreated).Get() | ||||
| 	if err != nil { | ||||
| 		t.Errorf("Unexpected error: %v %#v", err, err) | ||||
| 		return | ||||
| @@ -1831,7 +1831,7 @@ func TestWatch(t *testing.T) { | ||||
| 	defer testServer.Close() | ||||
|  | ||||
| 	s := testRESTClient(t, testServer) | ||||
| 	watching, err := s.Get().Prefix("path/to/watch/thing").Watch() | ||||
| 	watching, err := s.Get().Prefix("path/to/watch/thing").Watch(context.Background()) | ||||
| 	if err != nil { | ||||
| 		t.Fatalf("Unexpected error: %v", err) | ||||
| 	} | ||||
| @@ -1891,7 +1891,7 @@ func TestWatchNonDefaultContentType(t *testing.T) { | ||||
| 	contentConfig := defaultContentConfig() | ||||
| 	contentConfig.ContentType = "application/vnd.kubernetes.protobuf" | ||||
| 	s := testRESTClientWithConfig(t, testServer, contentConfig) | ||||
| 	watching, err := s.Get().Prefix("path/to/watch/thing").Watch() | ||||
| 	watching, err := s.Get().Prefix("path/to/watch/thing").Watch(context.Background()) | ||||
| 	if err != nil { | ||||
| 		t.Fatalf("Unexpected error") | ||||
| 	} | ||||
| @@ -1948,7 +1948,7 @@ func TestWatchUnknownContentType(t *testing.T) { | ||||
| 	defer testServer.Close() | ||||
|  | ||||
| 	s := testRESTClient(t, testServer) | ||||
| 	_, err := s.Get().Prefix("path/to/watch/thing").Watch() | ||||
| 	_, err := s.Get().Prefix("path/to/watch/thing").Watch(context.Background()) | ||||
| 	if err == nil { | ||||
| 		t.Fatalf("Expected to fail due to lack of known stream serialization for content type") | ||||
| 	} | ||||
| @@ -1970,7 +1970,7 @@ func TestStream(t *testing.T) { | ||||
| 	defer testServer.Close() | ||||
|  | ||||
| 	s := testRESTClient(t, testServer) | ||||
| 	readCloser, err := s.Get().Prefix("path/to/stream/thing").Stream() | ||||
| 	readCloser, err := s.Get().Prefix("path/to/stream/thing").Stream(context.Background()) | ||||
| 	if err != nil { | ||||
| 		t.Fatalf("unexpected error: %v", err) | ||||
| 	} | ||||
| @@ -2028,9 +2028,8 @@ func TestDoContext(t *testing.T) { | ||||
|  | ||||
| 	c := testRESTClient(t, testServer) | ||||
| 	_, err := c.Verb("GET"). | ||||
| 		Context(ctx). | ||||
| 		Prefix("foo"). | ||||
| 		DoRaw() | ||||
| 		DoRaw(ctx) | ||||
| 	if err == nil { | ||||
| 		t.Fatal("Expected context cancellation error") | ||||
| 	} | ||||
|   | ||||
| @@ -17,6 +17,7 @@ limitations under the License. | ||||
| package clusterinfo | ||||
|  | ||||
| import ( | ||||
| 	"context" | ||||
| 	"fmt" | ||||
| 	"io" | ||||
| 	"os" | ||||
| @@ -263,7 +264,7 @@ func (o *ClusterInfoDumpOptions) Run() error { | ||||
| 			} | ||||
|  | ||||
| 			for _, request := range requests { | ||||
| 				data, err := request.DoRaw() | ||||
| 				data, err := request.DoRaw(context.TODO()) | ||||
| 				if err != nil { | ||||
| 					// Print error and return. | ||||
| 					writer.Write([]byte(fmt.Sprintf("Request log error: %s\n", err.Error()))) | ||||
|   | ||||
| @@ -18,6 +18,7 @@ package logs | ||||
|  | ||||
| import ( | ||||
| 	"bufio" | ||||
| 	"context" | ||||
| 	"errors" | ||||
| 	"fmt" | ||||
| 	"io" | ||||
| @@ -404,7 +405,7 @@ func (o LogsOptions) addPrefixIfNeeded(ref corev1.ObjectReference, writer io.Wri | ||||
| // Because the function is defined to read from request until io.EOF, it does | ||||
| // not treat an io.EOF as an error to be reported. | ||||
| func DefaultConsumeRequest(request rest.ResponseWrapper, out io.Writer) error { | ||||
| 	readCloser, err := request.Stream() | ||||
| 	readCloser, err := request.Stream(context.TODO()) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|   | ||||
| @@ -18,6 +18,7 @@ package logs | ||||
|  | ||||
| import ( | ||||
| 	"bytes" | ||||
| 	"context" | ||||
| 	"errors" | ||||
| 	"fmt" | ||||
| 	"io" | ||||
| @@ -667,12 +668,12 @@ type responseWrapperMock struct { | ||||
| 	err  error | ||||
| } | ||||
|  | ||||
| func (r *responseWrapperMock) DoRaw() ([]byte, error) { | ||||
| func (r *responseWrapperMock) DoRaw(context.Context) ([]byte, error) { | ||||
| 	data, _ := ioutil.ReadAll(r.data) | ||||
| 	return data, r.err | ||||
| } | ||||
|  | ||||
| func (r *responseWrapperMock) Stream() (io.ReadCloser, error) { | ||||
| func (r *responseWrapperMock) Stream(context.Context) (io.ReadCloser, error) { | ||||
| 	return ioutil.NopCloser(r.data), r.err | ||||
| } | ||||
|  | ||||
| @@ -687,7 +688,7 @@ type logTestMock struct { | ||||
| } | ||||
|  | ||||
| func (l *logTestMock) mockConsumeRequest(request restclient.ResponseWrapper, out io.Writer) error { | ||||
| 	readCloser, err := request.Stream() | ||||
| 	readCloser, err := request.Stream(context.Background()) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|   | ||||
| @@ -17,6 +17,7 @@ limitations under the License. | ||||
| package metricsutil | ||||
|  | ||||
| import ( | ||||
| 	"context" | ||||
| 	"encoding/json" | ||||
| 	"errors" | ||||
| 	"fmt" | ||||
| @@ -166,5 +167,5 @@ func (cli *HeapsterMetricsClient) GetPodMetrics(namespace string, podName string | ||||
| func GetHeapsterMetrics(cli *HeapsterMetricsClient, path string, params map[string]string) ([]byte, error) { | ||||
| 	return cli.SVCClient.Services(cli.HeapsterNamespace). | ||||
| 		ProxyGet(cli.HeapsterScheme, cli.HeapsterService, cli.HeapsterPort, path, params). | ||||
| 		DoRaw() | ||||
| 		DoRaw(context.TODO()) | ||||
| } | ||||
|   | ||||
| @@ -247,14 +247,13 @@ func (rc *ResourceConsumer) sendConsumeCPURequest(millicores int) { | ||||
| 		proxyRequest, err := e2eservice.GetServicesProxyRequest(rc.clientSet, rc.clientSet.CoreV1().RESTClient().Post()) | ||||
| 		framework.ExpectNoError(err) | ||||
| 		req := proxyRequest.Namespace(rc.nsName). | ||||
| 			Context(ctx). | ||||
| 			Name(rc.controllerName). | ||||
| 			Suffix("ConsumeCPU"). | ||||
| 			Param("millicores", strconv.Itoa(millicores)). | ||||
| 			Param("durationSec", strconv.Itoa(rc.consumptionTimeInSeconds)). | ||||
| 			Param("requestSizeMillicores", strconv.Itoa(rc.requestSizeInMillicores)) | ||||
| 		framework.Logf("ConsumeCPU URL: %v", *req.URL()) | ||||
| 		_, err = req.DoRaw(context.TODO()) | ||||
| 		_, err = req.DoRaw(ctx) | ||||
| 		if err != nil { | ||||
| 			framework.Logf("ConsumeCPU failure: %v", err) | ||||
| 			return false, nil | ||||
| @@ -274,14 +273,13 @@ func (rc *ResourceConsumer) sendConsumeMemRequest(megabytes int) { | ||||
| 		proxyRequest, err := e2eservice.GetServicesProxyRequest(rc.clientSet, rc.clientSet.CoreV1().RESTClient().Post()) | ||||
| 		framework.ExpectNoError(err) | ||||
| 		req := proxyRequest.Namespace(rc.nsName). | ||||
| 			Context(ctx). | ||||
| 			Name(rc.controllerName). | ||||
| 			Suffix("ConsumeMem"). | ||||
| 			Param("megabytes", strconv.Itoa(megabytes)). | ||||
| 			Param("durationSec", strconv.Itoa(rc.consumptionTimeInSeconds)). | ||||
| 			Param("requestSizeMegabytes", strconv.Itoa(rc.requestSizeInMegabytes)) | ||||
| 		framework.Logf("ConsumeMem URL: %v", *req.URL()) | ||||
| 		_, err = req.DoRaw(context.TODO()) | ||||
| 		_, err = req.DoRaw(ctx) | ||||
| 		if err != nil { | ||||
| 			framework.Logf("ConsumeMem failure: %v", err) | ||||
| 			return false, nil | ||||
| @@ -301,7 +299,6 @@ func (rc *ResourceConsumer) sendConsumeCustomMetric(delta int) { | ||||
| 		proxyRequest, err := e2eservice.GetServicesProxyRequest(rc.clientSet, rc.clientSet.CoreV1().RESTClient().Post()) | ||||
| 		framework.ExpectNoError(err) | ||||
| 		req := proxyRequest.Namespace(rc.nsName). | ||||
| 			Context(ctx). | ||||
| 			Name(rc.controllerName). | ||||
| 			Suffix("BumpMetric"). | ||||
| 			Param("metric", customMetricName). | ||||
| @@ -309,7 +306,7 @@ func (rc *ResourceConsumer) sendConsumeCustomMetric(delta int) { | ||||
| 			Param("durationSec", strconv.Itoa(rc.consumptionTimeInSeconds)). | ||||
| 			Param("requestSizeMetrics", strconv.Itoa(rc.requestSizeCustomMetric)) | ||||
| 		framework.Logf("ConsumeCustomMetric URL: %v", *req.URL()) | ||||
| 		_, err = req.DoRaw(context.TODO()) | ||||
| 		_, err = req.DoRaw(ctx) | ||||
| 		if err != nil { | ||||
| 			framework.Logf("ConsumeCustomMetric failure: %v", err) | ||||
| 			return false, nil | ||||
|   | ||||
| @@ -220,12 +220,11 @@ func GetStatsSummary(c clientset.Interface, nodeName string) (*kubeletstatsv1alp | ||||
| 	defer cancel() | ||||
|  | ||||
| 	data, err := c.CoreV1().RESTClient().Get(). | ||||
| 		Context(ctx). | ||||
| 		Resource("nodes"). | ||||
| 		SubResource("proxy"). | ||||
| 		Name(fmt.Sprintf("%v:%v", nodeName, ports.KubeletPort)). | ||||
| 		Suffix("stats/summary"). | ||||
| 		Do(context.TODO()).Raw() | ||||
| 		Do(ctx).Raw() | ||||
|  | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
|   | ||||
| @@ -98,12 +98,11 @@ func (r ProxyResponseChecker) CheckAllResponses() (done bool, err error) { | ||||
| 		defer cancel() | ||||
|  | ||||
| 		body, err := r.c.CoreV1().RESTClient().Get(). | ||||
| 			Context(ctx). | ||||
| 			Namespace(r.ns). | ||||
| 			Resource("pods"). | ||||
| 			SubResource("proxy"). | ||||
| 			Name(string(pod.Name)). | ||||
| 			Do(context.TODO()). | ||||
| 			Do(ctx). | ||||
| 			Raw() | ||||
|  | ||||
| 		if err != nil { | ||||
|   | ||||
| @@ -47,8 +47,7 @@ import ( | ||||
| //    rpc error: code = Unknown desc = Error: No such container: 41a... | ||||
| // when the pod gets deleted while streaming. | ||||
| func LogsForPod(ctx context.Context, cs clientset.Interface, ns, pod string, opts *v1.PodLogOptions) (io.ReadCloser, error) { | ||||
| 	req := cs.CoreV1().Pods(ns).GetLogs(pod, opts) | ||||
| 	return req.Context(ctx).Stream(context.TODO()) | ||||
| 	return cs.CoreV1().Pods(ns).GetLogs(pod, opts).Stream(ctx) | ||||
| } | ||||
|  | ||||
| // LogOutput determines where output from CopyAllLogs goes. | ||||
|   | ||||
| @@ -294,12 +294,11 @@ func getStatsSummary(c clientset.Interface, nodeName string) (*kubeletstatsv1alp | ||||
| 	defer cancel() | ||||
|  | ||||
| 	data, err := c.CoreV1().RESTClient().Get(). | ||||
| 		Context(ctx). | ||||
| 		Resource("nodes"). | ||||
| 		SubResource("proxy"). | ||||
| 		Name(fmt.Sprintf("%v:%v", nodeName, ports.KubeletPort)). | ||||
| 		Suffix("stats/summary"). | ||||
| 		Do(context.TODO()).Raw() | ||||
| 		Do(ctx).Raw() | ||||
|  | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
|   | ||||
| @@ -94,9 +94,8 @@ func ClusterLevelLoggingWithKibana(f *framework.Framework) { | ||||
| 		defer cancel() | ||||
|  | ||||
| 		_, err = req.Namespace(metav1.NamespaceSystem). | ||||
| 			Context(ctx). | ||||
| 			Name("kibana-logging"). | ||||
| 			DoRaw(context.TODO()) | ||||
| 			DoRaw(ctx) | ||||
| 		if err != nil { | ||||
| 			framework.Logf("Proxy call to kibana-logging failed: %v", err) | ||||
| 			return false, nil | ||||
|   | ||||
| @@ -2368,13 +2368,12 @@ func makeRequestToGuestbook(c clientset.Interface, cmd, value string, ns string) | ||||
| 	defer cancel() | ||||
|  | ||||
| 	result, err := proxyRequest.Namespace(ns). | ||||
| 		Context(ctx). | ||||
| 		Name("frontend"). | ||||
| 		Suffix("/guestbook"). | ||||
| 		Param("cmd", cmd). | ||||
| 		Param("key", "messages"). | ||||
| 		Param("value", value). | ||||
| 		Do(context.TODO()). | ||||
| 		Do(ctx). | ||||
| 		Raw() | ||||
| 	return string(result), err | ||||
| } | ||||
|   | ||||
| @@ -528,13 +528,12 @@ func assertFilesContain(fileNames []string, fileDir string, pod *v1.Pod, client | ||||
|  | ||||
| 		for _, fileName := range fileNames { | ||||
| 			contents, err := client.CoreV1().RESTClient().Get(). | ||||
| 				Context(ctx). | ||||
| 				Namespace(pod.Namespace). | ||||
| 				Resource("pods"). | ||||
| 				SubResource("proxy"). | ||||
| 				Name(pod.Name). | ||||
| 				Suffix(fileDir, fileName). | ||||
| 				Do(context.TODO()).Raw() | ||||
| 				Do(ctx).Raw() | ||||
|  | ||||
| 			if err != nil { | ||||
| 				if ctx.Err() != nil { | ||||
|   | ||||
| @@ -193,9 +193,8 @@ func waitForServiceResponding(c clientset.Interface, ns, name string) error { | ||||
| 		defer cancel() | ||||
|  | ||||
| 		body, err := proxyRequest.Namespace(ns). | ||||
| 			Context(ctx). | ||||
| 			Name(name). | ||||
| 			Do(context.TODO()). | ||||
| 			Do(ctx). | ||||
| 			Raw() | ||||
| 		if err != nil { | ||||
| 			if ctx.Err() != nil { | ||||
|   | ||||
| @@ -135,13 +135,12 @@ func testPreStop(c clientset.Interface, ns string) { | ||||
|  | ||||
| 		var body []byte | ||||
| 		body, err = c.CoreV1().RESTClient().Get(). | ||||
| 			Context(ctx). | ||||
| 			Namespace(ns). | ||||
| 			Resource("pods"). | ||||
| 			SubResource("proxy"). | ||||
| 			Name(podDescr.Name). | ||||
| 			Suffix("read"). | ||||
| 			DoRaw(context.TODO()) | ||||
| 			DoRaw(ctx) | ||||
|  | ||||
| 		if err != nil { | ||||
| 			if ctx.Err() != nil { | ||||
|   | ||||
| @@ -72,10 +72,9 @@ var _ = SIGDescribe("Kubernetes Dashboard [Feature:Dashboard]", func() { | ||||
|  | ||||
| 			// Query against the proxy URL for the kubernetes-dashboard service. | ||||
| 			err := proxyRequest.Namespace(uiNamespace). | ||||
| 				Context(ctx). | ||||
| 				Name(utilnet.JoinSchemeNamePort("https", uiServiceName, "")). | ||||
| 				Timeout(framework.SingleCallTimeout). | ||||
| 				Do(context.TODO()). | ||||
| 				Do(ctx). | ||||
| 				StatusCode(&status). | ||||
| 				Error() | ||||
| 			if err != nil { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Mike Danese
					Mike Danese