cleanup req.Context() and ResponseWrapper

This commit is contained in:
Mike Danese 2020-01-27 18:52:27 -08:00
parent d55d6175f8
commit 968adfa993
36 changed files with 83 additions and 99 deletions

View File

@ -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
}

View File

@ -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)
}

View File

@ -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
}

View File

@ -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 {

View File

@ -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)

View File

@ -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")

View File

@ -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")

View File

@ -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
}

View File

@ -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)
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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)

View File

@ -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")
}

View File

@ -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())))

View File

@ -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
}

View File

@ -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
}

View File

@ -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())
}

View File

@ -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

View File

@ -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

View File

@ -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 {

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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
}

View File

@ -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 {

View File

@ -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 {

View File

@ -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 {

View File

@ -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 {