diff --git a/cmd/eskip/load.go b/cmd/eskip/load.go index 55db47da32..8aba98e15a 100644 --- a/cmd/eskip/load.go +++ b/cmd/eskip/load.go @@ -18,7 +18,7 @@ import ( "encoding/json" "errors" "fmt" - "io/ioutil" + "os" "github.com/zalando/skipper/eskip" ) @@ -144,7 +144,7 @@ func takePatchFilters(media []*medium) (prep, app []*eskip.Filter, err error) { fstr = m.patchFilters case patchPrependFile, patchAppendFile: var b []byte - b, err = ioutil.ReadFile(m.patchFile) + b, err = os.ReadFile(m.patchFile) if err != nil { return } diff --git a/cmd/eskip/readclient.go b/cmd/eskip/readclient.go index 46f6615487..87e2a5ce9f 100644 --- a/cmd/eskip/readclient.go +++ b/cmd/eskip/readclient.go @@ -1,13 +1,13 @@ package main import ( + "io" + "os" + "github.com/zalando/skipper/eskip" "github.com/zalando/skipper/eskipfile" etcdclient "github.com/zalando/skipper/etcd" innkeeperclient "github.com/zalando/skipper/innkeeper" - "io" - "io/ioutil" - "os" ) type readClient interface { @@ -80,7 +80,7 @@ func (r *stdinReader) LoadAndParseAll() ([]*eskip.RouteInfo, error) { // and deletes the diff only after, it may not // even be consistent to do continuous piping. // May change in the future. - doc, err := ioutil.ReadAll(r.reader) + doc, err := io.ReadAll(r.reader) if err != nil { return nil, err } diff --git a/cmd/webhook/admission/admission.go b/cmd/webhook/admission/admission.go index bb5c32b19f..dd8441aea4 100644 --- a/cmd/webhook/admission/admission.go +++ b/cmd/webhook/admission/admission.go @@ -3,7 +3,7 @@ package admission import ( "encoding/json" "fmt" - "io/ioutil" + "io" "net/http" "time" @@ -117,7 +117,7 @@ func Handler(admitter Admitter) http.HandlerFunc { return } - body, err := ioutil.ReadAll(r.Body) + body, err := io.ReadAll(r.Body) if err != nil { log.Errorf("Failed to read request: %v", err) w.WriteHeader(http.StatusInternalServerError) diff --git a/cmd/webhook/admission/admission_test.go b/cmd/webhook/admission/admission_test.go index db0cb2e507..6fc4bdb02f 100644 --- a/cmd/webhook/admission/admission_test.go +++ b/cmd/webhook/admission/admission_test.go @@ -3,7 +3,7 @@ package admission import ( "bytes" "encoding/json" - "io/ioutil" + "io" "net/http" "net/http/httptest" "testing" @@ -152,7 +152,7 @@ func TestResponseEncoding(t *testing.T) { assert.Equal(t, http.StatusOK, resp.StatusCode) reviewResp := admissionsv1.AdmissionReview{} - rb, err := ioutil.ReadAll(resp.Body) + rb, err := io.ReadAll(resp.Body) assert.NoError(t, err, "could not read response") err = json.Unmarshal(rb, &reviewResp) @@ -199,7 +199,7 @@ func TestAdmitRouteGroups(t *testing.T) { assert.Equal(t, http.StatusOK, resp.StatusCode) respReview := &admissionsv1.AdmissionReview{} - rb, err := ioutil.ReadAll(resp.Body) + rb, err := io.ReadAll(resp.Body) assert.NoError(t, err, "could not read response") err = json.Unmarshal(rb, &respReview) assert.NoError(t, err) diff --git a/config/config.go b/config/config.go index e0d5f46809..38e1196ed4 100644 --- a/config/config.go +++ b/config/config.go @@ -4,7 +4,6 @@ import ( "crypto/tls" "flag" "fmt" - "io/ioutil" "net/http" "os" "sort" @@ -492,7 +491,7 @@ func (c *Config) Parse() error { configKeys := make(map[string]interface{}) if c.ConfigFile != "" { - yamlFile, err := ioutil.ReadFile(c.ConfigFile) + yamlFile, err := os.ReadFile(c.ConfigFile) if err != nil { return fmt.Errorf("invalid config file: %v", err) } diff --git a/dataclients/kubernetes/clusterclient.go b/dataclients/kubernetes/clusterclient.go index 73b06f7b6c..6c127bb911 100644 --- a/dataclients/kubernetes/clusterclient.go +++ b/dataclients/kubernetes/clusterclient.go @@ -8,9 +8,9 @@ import ( "errors" "fmt" "io" - "io/ioutil" "net" "net/http" + "os" "regexp" "sort" "time" @@ -69,7 +69,7 @@ func buildHTTPClient(certFilePath string, inCluster bool, quit <-chan struct{}) return http.DefaultClient, nil } - rootCA, err := ioutil.ReadFile(certFilePath) + rootCA, err := os.ReadFile(certFilePath) if err != nil { return nil, err } diff --git a/dataclients/kubernetes/defaultfilters.go b/dataclients/kubernetes/defaultfilters.go index af258f0aaf..218d60ce65 100644 --- a/dataclients/kubernetes/defaultfilters.go +++ b/dataclients/kubernetes/defaultfilters.go @@ -2,7 +2,6 @@ package kubernetes import ( "fmt" - "io/ioutil" "os" "path/filepath" "strings" @@ -23,7 +22,7 @@ type filterSet struct { type defaultFilters map[definitions.ResourceID]*filterSet func readDefaultFilters(dir string) (defaultFilters, error) { - files, err := ioutil.ReadDir(dir) + files, err := os.ReadDir(dir) if err != nil { return nil, err } @@ -31,13 +30,14 @@ func readDefaultFilters(dir string) (defaultFilters, error) { filters := make(defaultFilters) for _, f := range files { r := strings.Split(f.Name(), ".") // format: {service}.{namespace} - if len(r) != 2 || !(f.Mode().IsRegular() || f.Mode()&os.ModeSymlink != 0) || f.Size() > maxFileSize { + info, err := f.Info() + if len(r) != 2 || !(f.Type().IsRegular() || f.Type()&os.ModeSymlink != 0) || info.Size() > maxFileSize { log.WithError(err).WithField("file", f.Name()).Debug("incompatible file") continue } file := filepath.Join(dir, f.Name()) - config, err := ioutil.ReadFile(file) + config, err := os.ReadFile(file) if err != nil { log.WithError(err).WithField("file", file).Debug("could not read file") continue diff --git a/dataclients/kubernetes/kube_test.go b/dataclients/kubernetes/kube_test.go index 0e938c14f8..94a5499bbf 100644 --- a/dataclients/kubernetes/kube_test.go +++ b/dataclients/kubernetes/kube_test.go @@ -10,7 +10,6 @@ import ( "encoding/pem" "fmt" "io" - "io/ioutil" "math/big" mrand "math/rand" "net" @@ -1766,7 +1765,7 @@ func TestCreateRequest(t *testing.T) { err error url string ) - rc := ioutil.NopCloser(&buf) + rc := io.NopCloser(&buf) client := &clusterClient{} @@ -1874,7 +1873,7 @@ func TestBuildHTTPClient(t *testing.T) { t.Errorf("should return invalid certificate") } - err = ioutil.WriteFile("ca.empty.crt", []byte(""), 0644) + err = os.WriteFile("ca.empty.crt", []byte(""), 0644) if err != nil { t.Error(err) } @@ -1886,7 +1885,7 @@ func TestBuildHTTPClient(t *testing.T) { } //create CA file - err = ioutil.WriteFile("ca.temp.crt", generateSSCert(), 0644) + err = os.WriteFile("ca.temp.crt", generateSSCert(), 0644) if err != nil { t.Error(err) } @@ -3141,12 +3140,12 @@ func TestSkipperDefaultFilters(t *testing.T) { "service1", "", "", "", "", "", "", definitions.BackendPort{Value: 8080}, 1.0, testRule("www.example.org", testPathRule("/", "service1", definitions.BackendPort{Value: 8080})))}} - defaultFiltersDir, err := ioutil.TempDir("", "filters") + defaultFiltersDir, err := os.MkdirTemp("", "filters") if err != nil { t.Error(err) } file := filepath.Join(defaultFiltersDir, "service1.namespace1") - if err := ioutil.WriteFile(file, []byte("consecutiveBreaker(15)"), 0666); err != nil { + if err := os.WriteFile(file, []byte("consecutiveBreaker(15)"), 0666); err != nil { t.Error(err) } @@ -3181,12 +3180,12 @@ func TestSkipperDefaultFilters(t *testing.T) { testRule("www.example.org", testPathRule("/", "service1", definitions.BackendPort{Value: "port1"})))}} // store default configuration in the file - dir, err := ioutil.TempDir("", "filters") + dir, err := os.MkdirTemp("", "filters") if err != nil { t.Error(err) } file := filepath.Join(dir, "service1.namespace1") - if err := ioutil.WriteFile(file, []byte("consecutiveBreaker(15)"), 0666); err != nil { + if err := os.WriteFile(file, []byte("consecutiveBreaker(15)"), 0666); err != nil { t.Error(err) } @@ -3213,12 +3212,12 @@ func TestSkipperDefaultFilters(t *testing.T) { }) t.Run("check getDefaultFilterConfigurations ignores files names not following the pattern, directories and huge files", func(t *testing.T) { - defaultFiltersDir, err := ioutil.TempDir("", "filters") + defaultFiltersDir, err := os.MkdirTemp("", "filters") if err != nil { t.Error(err) } invalidFileName := filepath.Join(defaultFiltersDir, "file.name.doesnt.match.our.pattern") - if err := ioutil.WriteFile(invalidFileName, []byte("consecutiveBreaker(15)"), 0666); err != nil { + if err := os.WriteFile(invalidFileName, []byte("consecutiveBreaker(15)"), 0666); err != nil { t.Error(err) } err = os.Mkdir(filepath.Join(defaultFiltersDir, "some.directory"), os.ModePerm) @@ -3226,7 +3225,7 @@ func TestSkipperDefaultFilters(t *testing.T) { t.Error(err) } bigFile := filepath.Join(defaultFiltersDir, "huge.file") - if err := ioutil.WriteFile(bigFile, make([]byte, 1024*1024+1), 0666); err != nil { + if err := os.WriteFile(bigFile, make([]byte, 1024*1024+1), 0666); err != nil { t.Error(err) } diff --git a/dataclients/kubernetes/kubernetestest/api.go b/dataclients/kubernetes/kubernetestest/api.go index 55cf7ae334..58c37f7608 100644 --- a/dataclients/kubernetes/kubernetestest/api.go +++ b/dataclients/kubernetes/kubernetestest/api.go @@ -4,7 +4,6 @@ import ( "encoding/json" "errors" "io" - "io/ioutil" "net/http" "regexp" @@ -205,7 +204,7 @@ func itemsJSON(b *[]byte, o []interface{}) error { func readAPIOptions(r io.Reader) (o TestAPIOptions, err error) { var b []byte - b, err = ioutil.ReadAll(r) + b, err = io.ReadAll(r) if err != nil { return } diff --git a/dataclients/kubernetes/kubernetestest/api_test.go b/dataclients/kubernetes/kubernetestest/api_test.go index 60b4526690..e69f0905d5 100644 --- a/dataclients/kubernetes/kubernetestest/api_test.go +++ b/dataclients/kubernetes/kubernetestest/api_test.go @@ -4,7 +4,7 @@ import ( "bytes" "encoding/json" "fmt" - "io/ioutil" + "io" "net/http" "net/http/httptest" "testing" @@ -126,7 +126,7 @@ func getJSON(u string, o interface{}) error { return fmt.Errorf("unexpected status code: %d", rsp.StatusCode) } - b, err := ioutil.ReadAll(rsp.Body) + b, err := io.ReadAll(rsp.Body) if err != nil { return err } diff --git a/dataclients/kubernetes/kubernetestest/fixtures.go b/dataclients/kubernetes/kubernetestest/fixtures.go index 8d08da0ec0..c07cbdad0e 100644 --- a/dataclients/kubernetes/kubernetestest/fixtures.go +++ b/dataclients/kubernetes/kubernetestest/fixtures.go @@ -4,7 +4,6 @@ import ( "bytes" "fmt" "io" - "io/ioutil" "net/http/httptest" "os" "path/filepath" @@ -97,7 +96,7 @@ func rangeOverFixtures(t *testing.T, dir string, fs []os.FileInfo, test func(fix } func matchOutput(matchFile, output string) error { - b, err := ioutil.ReadFile(matchFile) + b, err := os.ReadFile(matchFile) if err != nil { return err } @@ -197,7 +196,7 @@ func testFixture(t *testing.T, f fixtureSet) { } defer safeFileClose(t, ko) - b, err := ioutil.ReadAll(ko) + b, err := io.ReadAll(ko) if err != nil { t.Fatal(err) } @@ -240,7 +239,7 @@ func testFixture(t *testing.T, f fixtureSet) { } defer safeFileClose(t, eskp) - b, err := ioutil.ReadAll(eskp) + b, err := io.ReadAll(eskp) if err != nil { t.Fatal(err) } @@ -283,7 +282,7 @@ func testFixture(t *testing.T, f fixtureSet) { if f.log != "" { if err := matchOutput(f.log, logBuf.String()); err != nil { - b, err := ioutil.ReadFile(f.log) + b, err := os.ReadFile(f.log) if err != nil { t.Fatal(err) } diff --git a/dataclients/routestring/example_test.go b/dataclients/routestring/example_test.go index 2fa7aa6462..a709a6cdaa 100644 --- a/dataclients/routestring/example_test.go +++ b/dataclients/routestring/example_test.go @@ -5,7 +5,7 @@ package routestring_test import ( "fmt" - "io/ioutil" + "io" "log" "net/http" "time" @@ -37,7 +37,7 @@ func Example() { } defer rsp.Body.Close() - content, err := ioutil.ReadAll(rsp.Body) + content, err := io.ReadAll(rsp.Body) if err != nil { log.Println(err) return diff --git a/docs/reference/development.md b/docs/reference/development.md index 07b4036392..9eb4f0a12c 100644 --- a/docs/reference/development.md +++ b/docs/reference/development.md @@ -436,7 +436,7 @@ index 837b6cf..aa69f09 100644 +/* import ( "fmt" - "io/ioutil" + "os" @@ -13,8 +14,13 @@ import ( "github.com/zalando/skipper/filters" "github.com/zalando/skipper/routing" diff --git a/eskipfile/file.go b/eskipfile/file.go index 8536e908d4..9b68c3e70e 100644 --- a/eskipfile/file.go +++ b/eskipfile/file.go @@ -1,7 +1,7 @@ package eskipfile import ( - "io/ioutil" + "os" "github.com/zalando/skipper/eskip" ) @@ -13,7 +13,7 @@ type Client struct{ routes []*eskip.Route } // Opens an eskip file and parses it, returning a DataClient implementation. If reading or parsing the file // fails, returns an error. This implementation doesn't provide file watch. func Open(path string) (*Client, error) { - content, err := ioutil.ReadFile(path) + content, err := os.ReadFile(path) if err != nil { return nil, err } diff --git a/eskipfile/remote.go b/eskipfile/remote.go index 15e49a68b6..937cd37868 100644 --- a/eskipfile/remote.go +++ b/eskipfile/remote.go @@ -2,14 +2,14 @@ package eskipfile import ( "errors" - "github.com/zalando/skipper/eskip" - "github.com/zalando/skipper/routing" "io" - "io/ioutil" "net/http" "os" "strings" + "github.com/zalando/skipper/eskip" + "github.com/zalando/skipper/routing" + log "github.com/sirupsen/logrus" ) @@ -43,7 +43,7 @@ func RemoteWatch(o *RemoteWatchOptions) (routing.DataClient, error) { return Watch(o.RemoteFile), nil } - tempFilename, err := ioutil.TempFile("", "routes") + tempFilename, err := os.CreateTemp("", "routes") if err != nil { return nil, err diff --git a/eskipfile/watch.go b/eskipfile/watch.go index 097a914230..683bd52bb3 100644 --- a/eskipfile/watch.go +++ b/eskipfile/watch.go @@ -1,7 +1,6 @@ package eskipfile import ( - "io/ioutil" "os" "reflect" @@ -93,7 +92,7 @@ func cloneRoutes(r []*eskip.Route) []*eskip.Route { } func (c *WatchClient) loadAll() watchResponse { - content, err := ioutil.ReadFile(c.fileName) + content, err := os.ReadFile(c.fileName) if err != nil { return watchResponse{err: err} } @@ -108,7 +107,7 @@ func (c *WatchClient) loadAll() watchResponse { } func (c *WatchClient) loadUpdates() watchResponse { - content, err := ioutil.ReadFile(c.fileName) + content, err := os.ReadFile(c.fileName) if err != nil { if os.IsNotExist(err) { deletedIDs := c.deleteAllListIDs() diff --git a/etcd/etcd.go b/etcd/etcd.go index 530104166b..53ced8a114 100644 --- a/etcd/etcd.go +++ b/etcd/etcd.go @@ -22,7 +22,6 @@ import ( "errors" "fmt" "io" - "io/ioutil" "net" "net/http" "net/url" @@ -217,7 +216,7 @@ func (c *Client) tryEndpoints(mreq func(string) (*http.Request, error)) (*http.R // Converts an http response to a parsed etcd response object. func parseResponse(rsp *http.Response) (*response, error) { - d, err := ioutil.ReadAll(rsp.Body) + d, err := io.ReadAll(rsp.Body) if err != nil { return nil, err } diff --git a/etcd/etcdtest/mocketcd.go b/etcd/etcdtest/mocketcd.go index 5aeebe491c..32a395ae7d 100644 --- a/etcd/etcdtest/mocketcd.go +++ b/etcd/etcdtest/mocketcd.go @@ -8,7 +8,7 @@ import ( "bytes" "errors" "fmt" - "io/ioutil" + "io" "log" "math/rand" "net/http" @@ -104,8 +104,8 @@ func StartProjectRoot(projectRoot string) error { etcd = e return nil case <-time.After(6 * time.Second): - bout, _ := ioutil.ReadAll(stdout) - berr, _ := ioutil.ReadAll(stderr) + bout, _ := io.ReadAll(stdout) + berr, _ := io.ReadAll(stderr) log.Panicf("ETCD timedout: Failed to start etcd\netcd log output\nSTDOUT: %s\nSTDERR: %s", string(bout), string(berr)) return fmt.Errorf("etcd timeout") } @@ -228,6 +228,6 @@ func GetNodeFrom(prefix, key string) (string, error) { return "", errors.New("unexpected response status") } - b, err := ioutil.ReadAll(rsp.Body) + b, err := io.ReadAll(rsp.Body) return string(b), err } diff --git a/filters/auth/authclient.go b/filters/auth/authclient.go index af14345849..d7c8889635 100644 --- a/filters/auth/authclient.go +++ b/filters/auth/authclient.go @@ -5,7 +5,6 @@ import ( "encoding/json" "fmt" "io" - "io/ioutil" "net/http" "net/url" "strings" @@ -87,11 +86,11 @@ func (ac *authClient) getTokenintrospect(token string, ctx filters.FilterContext defer rsp.Body.Close() if rsp.StatusCode != 200 { - io.Copy(ioutil.Discard, rsp.Body) + io.Copy(io.Discard, rsp.Body) return nil, errInvalidToken } - buf, err := ioutil.ReadAll(rsp.Body) + buf, err := io.ReadAll(rsp.Body) if err != nil { return nil, err } @@ -121,7 +120,7 @@ func (ac *authClient) getTokeninfo(token string, ctx filters.FilterContext) (map defer rsp.Body.Close() if rsp.StatusCode != 200 { - io.Copy(ioutil.Discard, rsp.Body) + io.Copy(io.Discard, rsp.Body) return doc, errInvalidToken } diff --git a/filters/auth/grantlogout.go b/filters/auth/grantlogout.go index 442431088b..5dfea7b429 100644 --- a/filters/auth/grantlogout.go +++ b/filters/auth/grantlogout.go @@ -4,7 +4,7 @@ import ( "encoding/json" "errors" "fmt" - "io/ioutil" + "io" "net/http" "net/url" "strings" @@ -118,7 +118,7 @@ func (f *grantLogoutFilter) revokeTokenType(tokenType string, token string) erro } defer revokeResponse.Body.Close() - buf, err := ioutil.ReadAll(revokeResponse.Body) + buf, err := io.ReadAll(revokeResponse.Body) if err != nil { return err } diff --git a/filters/auth/oidc.go b/filters/auth/oidc.go index f445d4b1a8..71a52e4ddc 100644 --- a/filters/auth/oidc.go +++ b/filters/auth/oidc.go @@ -9,7 +9,6 @@ import ( "encoding/json" "fmt" "io" - "io/ioutil" "net" "net/http" "net/url" @@ -835,7 +834,7 @@ func newDeflatePoolCompressor(level int) *deflatePoolCompressor { return &deflatePoolCompressor{ poolWriter: &sync.Pool{ New: func() interface{} { - w, err := flate.NewWriter(ioutil.Discard, level) + w, err := flate.NewWriter(io.Discard, level) if err != nil { log.Errorf("failed to generate new deflate writer: %v", err) } @@ -870,5 +869,5 @@ func (dc *deflatePoolCompressor) decompress(compData []byte) ([]byte, error) { if err := zr.Close(); err != nil { return nil, err } - return ioutil.ReadAll(zr) + return io.ReadAll(zr) } diff --git a/filters/auth/oidc_introspection_test.go b/filters/auth/oidc_introspection_test.go index ee5454e5b0..03de7ebb53 100644 --- a/filters/auth/oidc_introspection_test.go +++ b/filters/auth/oidc_introspection_test.go @@ -1,7 +1,7 @@ package auth import ( - "io/ioutil" + "io" "net/http" "net/http/httptest" "net/url" @@ -361,7 +361,7 @@ func TestOIDCQueryClaimsFilter(t *testing.T) { if resp.StatusCode != tc.expected { t.Logf("response: %+v", resp) t.Errorf("auth filter failed got=%d, expected=%d, route=%s", resp.StatusCode, tc.expected, r) - b, _ := ioutil.ReadAll(resp.Body) + b, _ := io.ReadAll(resp.Body) t.Fatalf("Response body: %s", string(b)) } }) diff --git a/filters/auth/oidc_test.go b/filters/auth/oidc_test.go index a6ecef7202..c76f8b25be 100644 --- a/filters/auth/oidc_test.go +++ b/filters/auth/oidc_test.go @@ -8,13 +8,13 @@ import ( "encoding/pem" "fmt" "io" - "io/ioutil" "log" "math/rand" "net/http" "net/http/httptest" "net/http/httputil" "net/url" + "os" "reflect" "strings" "testing" @@ -234,7 +234,7 @@ func createOIDCServer(cb, client, clientsecret string) *httptest.Server { "email": "someone@example.org", }) - privKey, err := ioutil.ReadFile(keyPath) + privKey, err := os.ReadFile(keyPath) if err != nil { log.Fatalf("Failed to read priv key: %v", err) } @@ -269,7 +269,7 @@ func createOIDCServer(cb, client, clientsecret string) *httptest.Server { case "/revoke": log.Fatalln("oidcServer /revoke - not implemented") case "/oauth2/v3/certs": - certPEM, err := ioutil.ReadFile(certPath) + certPEM, err := os.ReadFile(certPath) if err != nil { log.Fatalf("Failed to readfile cert: %v", err) } @@ -279,7 +279,7 @@ func createOIDCServer(cb, client, clientsecret string) *httptest.Server { log.Fatalf("Failed to parse cert: %v", err) } - privPEM, err := ioutil.ReadFile(keyPath) + privPEM, err := os.ReadFile(keyPath) if err != nil { log.Fatalf("Failed to readfile key: %v", err) } @@ -818,7 +818,7 @@ func TestOIDCSetup(t *testing.T) { if resp.StatusCode != tc.expected { t.Logf("response: %+v", resp) t.Errorf("auth filter failed got=%d, expected=%d, route=%s", resp.StatusCode, tc.expected, r) - b, err = ioutil.ReadAll(resp.Body) + b, err = io.ReadAll(resp.Body) if err != nil { t.Fatalf("Failed to read response body: %v", err) } diff --git a/filters/builtin/compress_test.go b/filters/builtin/compress_test.go index 9f55ebe89e..9e95a1ee3b 100644 --- a/filters/builtin/compress_test.go +++ b/filters/builtin/compress_test.go @@ -6,7 +6,6 @@ import ( "compress/gzip" "errors" "io" - "io/ioutil" "math/rand" "net/http" "net/http/httptest" @@ -94,7 +93,7 @@ func compareBody(r *http.Response, contentLength int) (bool, error) { } } - b, err := ioutil.ReadAll(c) + b, err := io.ReadAll(c) if err != nil { return false, err } @@ -107,7 +106,7 @@ func benchmarkCompress(b *testing.B, n int64) { f, _ := s.CreateFilter(nil) b.RunParallel(func(pb *testing.PB) { for pb.Next() { - body := ioutil.NopCloser(&io.LimitedReader{R: rand.New(rand.NewSource(0)), N: n}) + body := io.NopCloser(&io.LimitedReader{R: rand.New(rand.NewSource(0)), N: n}) req := &http.Request{Header: http.Header{"Accept-Encoding": []string{"gzip,deflate"}}} rsp := &http.Response{ Header: http.Header{"Content-Type": []string{"application/octet-stream"}}, @@ -116,7 +115,7 @@ func benchmarkCompress(b *testing.B, n int64) { FRequest: req, FResponse: rsp} f.Response(ctx) - _, err := ioutil.ReadAll(rsp.Body) + _, err := io.ReadAll(rsp.Body) if err != nil { b.Fatal(err) } @@ -488,12 +487,12 @@ func TestForwardError(t *testing.T) { req := &http.Request{Header: http.Header{"Accept-Encoding": []string{"gzip,deflate"}}} rsp := &http.Response{ Header: http.Header{"Content-Type": []string{"text/plain"}}, - Body: ioutil.NopCloser(&errorReader{"test-content", testError})} + Body: io.NopCloser(&errorReader{"test-content", testError})} ctx := &filtertest.Context{FRequest: req, FResponse: rsp} f.Response(ctx) enc := rsp.Header.Get("Content-Encoding") dec := decoder(enc, rsp.Body) - b, err := ioutil.ReadAll(dec) + b, err := io.ReadAll(dec) if string(b) != "test-content" || err != testError { t.Error("failed to forward error", string(b), err) } @@ -590,7 +589,7 @@ func TestStreaming(t *testing.T) { defer body.Close() if err := timeoutCall(chunkDelay*3/2, func(c chan<- error) { - _, err := ioutil.ReadAll(body) + _, err := io.ReadAll(body) c <- err }); err != nil { t.Error(err) @@ -632,12 +631,12 @@ func TestPoolRelease(t *testing.T) { "Content-Length": []string{"9000"}, "Content-Type": []string{"application/octet-stream"}, }, - Body: ioutil.NopCloser(bytes.NewBuffer(testContent[:9000])), + Body: io.NopCloser(bytes.NewBuffer(testContent[:9000])), }, } f.Response(ctx) - ioutil.ReadAll(ctx.Response().Body) + io.ReadAll(ctx.Response().Body) ctx.Response().Body.Close() } diff --git a/filters/builtin/decompress_test.go b/filters/builtin/decompress_test.go index e2788f5e12..e3fdbc54da 100644 --- a/filters/builtin/decompress_test.go +++ b/filters/builtin/decompress_test.go @@ -6,7 +6,6 @@ import ( "compress/gzip" "fmt" "io" - "io/ioutil" "net/http" "net/http/httptest" "strings" @@ -65,7 +64,7 @@ func request(t *testing.T, url string) (status int, h http.Header, content strin return } - b, err := ioutil.ReadAll(rsp.Body) + b, err := io.ReadAll(rsp.Body) if err != nil { t.Fatal(err) return diff --git a/filters/builtin/inlinecontent.go b/filters/builtin/inlinecontent.go index a8376a8783..cc599ae89b 100644 --- a/filters/builtin/inlinecontent.go +++ b/filters/builtin/inlinecontent.go @@ -2,7 +2,7 @@ package builtin import ( "bytes" - "io/ioutil" + "io" "net/http" "strconv" @@ -80,7 +80,7 @@ func (c *inlineContent) Request(ctx filters.FilterContext) { "Content-Type": []string{c.mime}, "Content-Length": []string{strconv.Itoa(len(c.text))}, }, - Body: ioutil.NopCloser(bytes.NewBufferString(c.text)), + Body: io.NopCloser(bytes.NewBufferString(c.text)), }) } diff --git a/filters/builtin/inlinecontent_test.go b/filters/builtin/inlinecontent_test.go index 01f223ba3b..7d5fe42943 100644 --- a/filters/builtin/inlinecontent_test.go +++ b/filters/builtin/inlinecontent_test.go @@ -1,7 +1,7 @@ package builtin import ( - "io/ioutil" + "io" "net/http" "strconv" "strings" @@ -142,7 +142,7 @@ func TestInlineContent(t *testing.T) { t.Log("expected:", len(test.expectedContent)) } - b, err := ioutil.ReadAll(rsp.Body) + b, err := io.ReadAll(rsp.Body) if err != nil { t.Error(err) return diff --git a/filters/builtin/inlinecontentifstatus.go b/filters/builtin/inlinecontentifstatus.go index 3a9b01144a..0152c23619 100644 --- a/filters/builtin/inlinecontentifstatus.go +++ b/filters/builtin/inlinecontentifstatus.go @@ -2,11 +2,12 @@ package builtin import ( "bytes" - log "github.com/sirupsen/logrus" - "io/ioutil" + "io" "net/http" "strconv" + log "github.com/sirupsen/logrus" + "github.com/zalando/skipper/filters" ) @@ -88,5 +89,5 @@ func (c *inlineContentIfStatus) Response(ctx filters.FilterContext) { rsp.ContentLength = int64(contentLength) rsp.Header.Set("Content-Type", c.mime) rsp.Header.Set("Content-Length", strconv.Itoa(contentLength)) - rsp.Body = ioutil.NopCloser(bytes.NewBufferString(c.text)) + rsp.Body = io.NopCloser(bytes.NewBufferString(c.text)) } diff --git a/filters/builtin/inlinecontentifstatus_test.go b/filters/builtin/inlinecontentifstatus_test.go index faa170d974..e77279d74e 100644 --- a/filters/builtin/inlinecontentifstatus_test.go +++ b/filters/builtin/inlinecontentifstatus_test.go @@ -1,13 +1,14 @@ package builtin import ( - "github.com/zalando/skipper/eskip" - "github.com/zalando/skipper/proxy/proxytest" - "io/ioutil" + "io" "net/http" "strconv" "strings" "testing" + + "github.com/zalando/skipper/eskip" + "github.com/zalando/skipper/proxy/proxytest" ) func TestInlineContentIfStatusArgs(t *testing.T) { @@ -173,7 +174,7 @@ func TestInlineContentIfStatus(t *testing.T) { t.Log("expected:", len(test.expectedContent)) } - b, err := ioutil.ReadAll(rsp.Body) + b, err := io.ReadAll(rsp.Body) if err != nil { t.Error(err) return diff --git a/filters/builtin/static_test.go b/filters/builtin/static_test.go index de45782eb3..caeecac4c3 100644 --- a/filters/builtin/static_test.go +++ b/filters/builtin/static_test.go @@ -15,16 +15,16 @@ package builtin import ( - "github.com/zalando/skipper/eskip" - "github.com/zalando/skipper/filters" - "github.com/zalando/skipper/proxy/proxytest" "io" - "io/ioutil" "mime" "mime/multipart" "net/http" "os" "testing" + + "github.com/zalando/skipper/eskip" + "github.com/zalando/skipper/filters" + "github.com/zalando/skipper/proxy/proxytest" ) func TestStatic(t *testing.T) { @@ -90,7 +90,7 @@ func TestStatic(t *testing.T) { continue } } else { - if err := ioutil.WriteFile("/tmp/static-test", []byte(ti.content), os.ModePerm); err != nil { + if err := os.WriteFile("/tmp/static-test", []byte(ti.content), os.ModePerm); err != nil { t.Error(ti.msg, err) continue } @@ -120,7 +120,7 @@ func TestStatic(t *testing.T) { continue } - content, err := ioutil.ReadAll(rsp.Body) + content, err := io.ReadAll(rsp.Body) if err != nil { t.Error(ti.msg, err) continue @@ -135,7 +135,7 @@ func TestStatic(t *testing.T) { func TestSameFileMultipleTimes(t *testing.T) { const n = 6 - if err := ioutil.WriteFile("/tmp/static-test", []byte("test content"), os.ModePerm); err != nil { + if err := os.WriteFile("/tmp/static-test", []byte("test content"), os.ModePerm); err != nil { t.Error(err) return } @@ -155,7 +155,7 @@ func TestSameFileMultipleTimes(t *testing.T) { } defer rsp.Body.Close() - _, err = ioutil.ReadAll(rsp.Body) + _, err = io.ReadAll(rsp.Body) if err != nil { t.Error(err) return @@ -165,7 +165,7 @@ func TestSameFileMultipleTimes(t *testing.T) { func TestMultipleRanges(t *testing.T) { const fcontent = "test content" - if err := ioutil.WriteFile("/tmp/static-test", []byte(fcontent), os.ModePerm); err != nil { + if err := os.WriteFile("/tmp/static-test", []byte(fcontent), os.ModePerm); err != nil { t.Error(err) return } @@ -211,7 +211,7 @@ func TestMultipleRanges(t *testing.T) { break } - partContent, err := ioutil.ReadAll(p) + partContent, err := io.ReadAll(p) if err != nil { t.Error(err) break diff --git a/filters/diag/absorb.go b/filters/diag/absorb.go index aee2543804..78983171ab 100644 --- a/filters/diag/absorb.go +++ b/filters/diag/absorb.go @@ -2,7 +2,6 @@ package diag import ( "io" - "io/ioutil" "net/http" "time" @@ -89,7 +88,7 @@ func (a *absorb) Request(ctx filters.FilterContext) { } } - sink := ioutil.Discard + sink := io.Discard if !a.silent { a.logger.Infof("received request to be absorbed: %s", id) sink = &loggingSink{id: id, logger: a.logger, next: time.Now().Add(loggingInterval)} diff --git a/filters/diag/diag.go b/filters/diag/diag.go index 22d8e9b374..41d10cc5f0 100644 --- a/filters/diag/diag.go +++ b/filters/diag/diag.go @@ -10,7 +10,6 @@ package diag import ( "fmt" "io" - "io/ioutil" "math/rand" "net/http" "strconv" @@ -205,7 +204,7 @@ func (r *random) Read(p []byte) (int, error) { func (r *random) Request(ctx filters.FilterContext) { ctx.Serve(&http.Response{ StatusCode: http.StatusOK, - Body: ioutil.NopCloser(io.LimitReader(r, r.len)), + Body: io.NopCloser(io.LimitReader(r, r.len)), }) } @@ -245,7 +244,7 @@ func (r *repeat) Request(ctx filters.FilterContext) { ctx.Serve(&http.Response{ StatusCode: http.StatusOK, Header: http.Header{"Content-Length": []string{strconv.FormatInt(r.len, 10)}}, - Body: ioutil.NopCloser(io.LimitReader(&repeatReader{r.bytes, 0}, r.len)), + Body: io.NopCloser(io.LimitReader(&repeatReader{r.bytes, 0}, r.len)), }) } diff --git a/filters/diag/diag_test.go b/filters/diag/diag_test.go index 262f247c17..798dfd43e4 100644 --- a/filters/diag/diag_test.go +++ b/filters/diag/diag_test.go @@ -3,7 +3,6 @@ package diag import ( "fmt" "io" - "io/ioutil" "math/rand" "net/http" "sort" @@ -95,7 +94,7 @@ func checkMessage(expect messageExp, start time.Time, body io.Reader) error { cstart = time.Now() } - b, err := ioutil.ReadAll(body) + b, err := io.ReadAll(body) if err != nil { return err } @@ -185,7 +184,7 @@ func TestRandom(t *testing.T) { return } - b, err := ioutil.ReadAll(rsp.Body) + b, err := io.ReadAll(rsp.Body) if err != nil { t.Error(ti.msg, err) return @@ -285,7 +284,7 @@ func TestRepeat(t *testing.T) { t.Fatalf("request failed: %d", rsp.StatusCode) } - b, err := ioutil.ReadAll(rsp.Body) + b, err := io.ReadAll(rsp.Body) if err != nil { t.Fatal(err) } diff --git a/filters/diag/logheader_test.go b/filters/diag/logheader_test.go index eab49ccbb5..560a1f51c2 100644 --- a/filters/diag/logheader_test.go +++ b/filters/diag/logheader_test.go @@ -2,7 +2,7 @@ package diag import ( "bytes" - "io/ioutil" + "io" "net/http" "os" "strings" @@ -40,7 +40,7 @@ func TestLogHeader(t *testing.T) { loggerTest := bytes.NewBuffer(nil) log.SetOutput(loggerTest) - req.Body = ioutil.NopCloser(bytes.NewBufferString("foo bar baz")) + req.Body = io.NopCloser(bytes.NewBufferString("foo bar baz")) lh, err := (logHeader{}).CreateFilter(nil) if err != nil { @@ -99,7 +99,7 @@ func TestLogHeaderRequestResponse(t *testing.T) { loggerTest := bytes.NewBuffer(nil) log.SetOutput(loggerTest) - req.Body = ioutil.NopCloser(bytes.NewBufferString("foo bar baz")) + req.Body = io.NopCloser(bytes.NewBufferString("foo bar baz")) lh := logHeader{ request: true, diff --git a/filters/sed/editor_test.go b/filters/sed/editor_test.go index 080f742696..4b3079ed8b 100644 --- a/filters/sed/editor_test.go +++ b/filters/sed/editor_test.go @@ -3,7 +3,6 @@ package sed import ( "bytes" "io" - "io/ioutil" "regexp" "testing" ) @@ -78,7 +77,7 @@ func TestEditorMaxBuffer(t *testing.T) { // hook the read buffer: e.readBuffer = make([]byte, 2) - p, err := ioutil.ReadAll(e) + p, err := io.ReadAll(e) if err != nil { t.Fatal(err) } @@ -95,7 +94,7 @@ func TestEditorMaxBuffer(t *testing.T) { // hook the read buffer: e.readBuffer = make([]byte, 2) - p, err := ioutil.ReadAll(e) + p, err := io.ReadAll(e) if err != nil { t.Fatal(err) } @@ -137,7 +136,7 @@ func TestEditorIncreasingReadSize(t *testing.T) { // hook the read buffer: e.readBuffer = make([]byte, 2) - b, err := ioutil.ReadAll(io.LimitReader(e, 27)) + b, err := io.ReadAll(io.LimitReader(e, 27)) if err != nil { t.Fatal(err) } @@ -155,7 +154,7 @@ func TestEditorInfiniteInput(t *testing.T) { // hook the read buffer: e.readBuffer = make([]byte, 2) - b, err := ioutil.ReadAll(io.LimitReader(e, 27)) + b, err := io.ReadAll(io.LimitReader(e, 27)) if err != nil { t.Fatal(err) } @@ -172,7 +171,7 @@ func TestEditorInfiniteInput(t *testing.T) { // hook the read buffer: e.readBuffer = make([]byte, 2) - b, err := ioutil.ReadAll(io.LimitReader(e, 27)) + b, err := io.ReadAll(io.LimitReader(e, 27)) if err != nil { t.Fatal(err) } diff --git a/filters/sed/sed_test.go b/filters/sed/sed_test.go index 7fa0812c9f..34e81d6c27 100644 --- a/filters/sed/sed_test.go +++ b/filters/sed/sed_test.go @@ -4,7 +4,6 @@ import ( "bytes" "fmt" "io" - "io/ioutil" "net/http" "net/http/httptest" "testing" @@ -52,7 +51,7 @@ func testResponse(name string, test testItem) func(*testing.T) { } defer rsp.Body.Close() - d, err := ioutil.ReadAll(rsp.Body) + d, err := io.ReadAll(rsp.Body) if err != nil { t.Fatal(err) } @@ -69,7 +68,7 @@ func testRequest(name string, test testItem) func(*testing.T) { return func(t *testing.T) { b := httptest.NewServer( http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - b, err := ioutil.ReadAll(r.Body) + b, err := io.ReadAll(r.Body) if err != nil { w.WriteHeader(http.StatusBadRequest) fmt.Fprintln(w, err) @@ -107,7 +106,7 @@ func testRequest(name string, test testItem) func(*testing.T) { defer rsp.Body.Close() if rsp.StatusCode != http.StatusOK { t.Error("Failed to edit stream.") - d, err := ioutil.ReadAll(rsp.Body) + d, err := io.ReadAll(rsp.Body) if err != nil { t.Fatal(err) } diff --git a/filters/sed/wsdl_test.go b/filters/sed/wsdl_test.go index 5c8e1328f3..75f69974c7 100644 --- a/filters/sed/wsdl_test.go +++ b/filters/sed/wsdl_test.go @@ -2,8 +2,9 @@ package sed import ( "bytes" - "io/ioutil" + "io" "net/http" + "os" "testing" "github.com/google/go-cmp/cmp" @@ -16,18 +17,18 @@ const ( ) func TestWSDLExample(t *testing.T) { - response, err := ioutil.ReadFile(testWSDL) + response, err := os.ReadFile(testWSDL) if err != nil { t.Fatal(err) } - expected, err := ioutil.ReadFile(patchedWSDL) + expected, err := os.ReadFile(patchedWSDL) if err != nil { t.Fatal(err) } resp := &http.Response{ - Body: ioutil.NopCloser(bytes.NewBuffer(response)), + Body: io.NopCloser(bytes.NewBuffer(response)), ContentLength: int64(len(response)), } @@ -45,7 +46,7 @@ func TestWSDLExample(t *testing.T) { ctx := &filtertest.Context{FResponse: resp} f.Response(ctx) - body, err := ioutil.ReadAll(ctx.Response().Body) + body, err := io.ReadAll(ctx.Response().Body) if err != nil { t.Error(err) } diff --git a/filters/serve/serve_test.go b/filters/serve/serve_test.go index b940d22c13..e0a735d660 100644 --- a/filters/serve/serve_test.go +++ b/filters/serve/serve_test.go @@ -2,7 +2,6 @@ package serve import ( "io" - "io/ioutil" "net/http" "strings" "testing" @@ -118,7 +117,7 @@ func TestServe(t *testing.T) { t.Error("failed to serve header") } - b, err := ioutil.ReadAll(ctx.Response().Body) + b, err := io.ReadAll(ctx.Response().Body) if err != nil || string(b) != strings.Join(parts, "") { t.Error("failed to serve body") } diff --git a/filters/tee/tee_test.go b/filters/tee/tee_test.go index c36912c1b7..ec8120464d 100644 --- a/filters/tee/tee_test.go +++ b/filters/tee/tee_test.go @@ -2,7 +2,7 @@ package tee import ( "fmt" - "io/ioutil" + "io" "net/http" "net/http/httptest" "net/url" @@ -122,7 +122,7 @@ func newTestHandler(t *testing.T, name string) *myHandler { } func (h *myHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { - b, err := ioutil.ReadAll(r.Body) + b, err := io.ReadAll(r.Body) if err != nil { h.t.Error(err) } diff --git a/go.mod b/go.mod index 80c105a293..1badcbe7d8 100644 --- a/go.mod +++ b/go.mod @@ -64,4 +64,4 @@ require ( layeh.com/gopher-json v0.0.0-20190114024228-97fed8db8427 ) -go 1.13 +go 1.16 diff --git a/go.sum b/go.sum index 4bf3caa1ff..656eeb1755 100644 --- a/go.sum +++ b/go.sum @@ -39,7 +39,6 @@ github.com/beorn7/perks v1.0.0 h1:HWo1m869IqiPhD389kmkxeTalrjNbbJTC8LXupb+sl0= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4= github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= -github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE= github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= @@ -352,7 +351,6 @@ golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136 h1:A1gGSx58LAGVHUUsOf7IiR0u8Xb6W51gRwfDBhkdcaw= golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= @@ -474,10 +472,8 @@ golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1N golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0= -gonum.org/v1/gonum v0.8.2 h1:CCXrcPKiGGotvnN6jfUsKk4rRqm7q09/YbKb5xCEvtM= gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0= gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= -gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e h1:jRyg0XfpwWlhEV8mDfdNGBeSJM2fuyh9Yjrnd8kF2Ts= gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ= gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= diff --git a/innkeeper/client.go b/innkeeper/client.go index 0aa9a6f1c3..6004cbaf8e 100644 --- a/innkeeper/client.go +++ b/innkeeper/client.go @@ -18,7 +18,6 @@ import ( "errors" "fmt" "io" - "io/ioutil" "net/http" log "github.com/sirupsen/logrus" @@ -159,7 +158,7 @@ func convertJsonToEskip(data []*routeData, prependFilters, appendFilters []*eski // Parses an Innkeeper API error message and returns its type. func parseApiError(r io.Reader) (string, error) { - message, err := ioutil.ReadAll(r) + message, err := io.ReadAll(r) if err != nil { return "", err @@ -298,7 +297,7 @@ func (c *Client) requestData(authRetry bool, url string) ([]*routeData, error) { return nil, err } - routesData, err := ioutil.ReadAll(response.Body) + routesData, err := io.ReadAll(response.Body) if err != nil { return nil, err } diff --git a/loadbalancer/concurrency_test.go b/loadbalancer/concurrency_test.go index c3b5a2c99e..027ffc1557 100644 --- a/loadbalancer/concurrency_test.go +++ b/loadbalancer/concurrency_test.go @@ -2,7 +2,7 @@ package loadbalancer_test import ( "fmt" - "io/ioutil" + "io" "math/rand" "net/http" "net/http/httptest" @@ -106,7 +106,7 @@ func TestConcurrencySingleRoute(t *testing.T) { break } - b, err := ioutil.ReadAll(rsp.Body) + b, err := io.ReadAll(rsp.Body) if err != nil { t.Error(err) break @@ -217,7 +217,7 @@ func TestConstantlyUpdatingRoutes(t *testing.T) { break } - b, err := ioutil.ReadAll(rsp.Body) + b, err := io.ReadAll(rsp.Body) if err != nil { t.Error(err) break @@ -330,7 +330,7 @@ func TestConcurrencyMultipleRoutes(t *testing.T) { break } - b, err := ioutil.ReadAll(rsp.Body) + b, err := io.ReadAll(rsp.Body) if err != nil { t.Error(err) break diff --git a/loadbalancer/healthchecker.go b/loadbalancer/healthchecker.go index da44b78fbc..1af31042ad 100644 --- a/loadbalancer/healthchecker.go +++ b/loadbalancer/healthchecker.go @@ -3,7 +3,6 @@ package loadbalancer import ( "bytes" "io" - "io/ioutil" "net" "net/http" "net/url" @@ -228,7 +227,7 @@ func doActiveHealthCheck(rt http.RoundTripper, backend string) state { // we only check StatusCode // TODO: check StatusCode ;) - io.Copy(ioutil.Discard, resp.Body) + io.Copy(io.Discard, resp.Body) resp.Body.Close() log.Infof("Backend %v is healthy again", backend) diff --git a/metrics/prometheus_test.go b/metrics/prometheus_test.go index 73b1153296..a8c7c0dcd4 100644 --- a/metrics/prometheus_test.go +++ b/metrics/prometheus_test.go @@ -1,7 +1,7 @@ package metrics_test import ( - "io/ioutil" + "io" "net/http" "net/http/httptest" "strings" @@ -1042,7 +1042,7 @@ func TestPrometheusMetrics(t *testing.T) { if test.expCode != resp.StatusCode { t.Errorf("metrics service returned an incorrect status code, should be: %d, got: %d", test.expCode, resp.StatusCode) } else { - body, _ := ioutil.ReadAll(resp.Body) + body, _ := io.ReadAll(resp.Body) // Check all the metrics are present. for _, expMetric := range test.expMetrics { if ok := strings.Contains(string(body), expMetric); !ok { diff --git a/net/httpclient_test.go b/net/httpclient_test.go index 7d61714f51..93d8239472 100644 --- a/net/httpclient_test.go +++ b/net/httpclient_test.go @@ -1,7 +1,6 @@ package net import ( - "io/ioutil" "net/http" "net/http/httptest" "net/url" @@ -128,13 +127,13 @@ func TestClient(t *testing.T) { defer s.Close() if tt.tokenFile != "" { - dir, err := ioutil.TempDir("/tmp", "skipper-httpclient-test") + dir, err := os.MkdirTemp("/tmp", "skipper-httpclient-test") if err != nil { t.Fatalf("Failed to create temp dir: %v", err) } defer os.RemoveAll(dir) // clean up tokenFile := filepath.Join(dir, tt.tokenFile) - if err := ioutil.WriteFile(tokenFile, []byte(testToken), 0600); err != nil { + if err := os.WriteFile(tokenFile, []byte(testToken), 0600); err != nil { t.Fatalf("Failed to create token file: %v", err) } tt.options.BearerTokenFile = tokenFile diff --git a/oauth/oauth.go b/oauth/oauth.go index 1500bd012b..536c8aeb82 100644 --- a/oauth/oauth.go +++ b/oauth/oauth.go @@ -36,9 +36,10 @@ package oauth import ( "encoding/json" - "io/ioutil" + "io" "net/http" "net/url" + "os" "path" "strings" ) @@ -107,7 +108,7 @@ func (oc *OAuthClient) GetToken() (string, error) { defer response.Body.Close() - authResponseBody, err := ioutil.ReadAll(response.Body) + authResponseBody, err := io.ReadAll(response.Body) if err != nil { return "", err } @@ -133,7 +134,7 @@ func (oc *OAuthClient) getAuthPostBody(us *userCredentials) string { // Loads and parses the credentials from a credentials document. func (oc *OAuthClient) getCredentials(to interface{}, fn string) error { - data, err := ioutil.ReadFile(path.Join(oc.credentialsDir, fn)) + data, err := os.ReadFile(path.Join(oc.credentialsDir, fn)) if err != nil { return err } diff --git a/plugins.go b/plugins.go index 837b6cf258..1a42ca059c 100644 --- a/plugins.go +++ b/plugins.go @@ -2,7 +2,6 @@ package skipper import ( "fmt" - "io/ioutil" "os" "path/filepath" @@ -351,7 +350,7 @@ func initDataClientPlugin(sym plugin.Symbol, path string, args []string) (routin } func readPluginConfig(plugin string) (conf []string, err error) { - data, err := ioutil.ReadFile(plugin[:len(plugin)-3] + ".conf") + data, err := os.ReadFile(plugin[:len(plugin)-3] + ".conf") if err != nil { if os.IsNotExist(err) { return nil, nil diff --git a/proxy/backendtest/backendrecorder.go b/proxy/backendtest/backendrecorder.go index f9638bf08b..cb1fc93cae 100644 --- a/proxy/backendtest/backendrecorder.go +++ b/proxy/backendtest/backendrecorder.go @@ -1,13 +1,14 @@ package backendtest import ( - log "github.com/sirupsen/logrus" - "io/ioutil" + "io" "net/http" "net/http/httptest" "net/url" "sync" "time" + + log "github.com/sirupsen/logrus" ) type RecordedRequest struct { @@ -32,7 +33,7 @@ func NewBackendRecorder(closeAfter time.Duration) *BackendRecorderHandler { } func (rec *BackendRecorderHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { - body, err := ioutil.ReadAll(r.Body) + body, err := io.ReadAll(r.Body) if err != nil { log.Errorf("backendrecorder: error while reading request body: %v", err) } diff --git a/proxy/backendtest/backendrecorder_test.go b/proxy/backendtest/backendrecorder_test.go index ecb3707fef..f16c244622 100644 --- a/proxy/backendtest/backendrecorder_test.go +++ b/proxy/backendtest/backendrecorder_test.go @@ -1,7 +1,7 @@ package backendtest import ( - "io/ioutil" + "io" "net/http" "strconv" "testing" @@ -17,7 +17,7 @@ func TestServerShouldCloseWhenAllRequestsAreFulfilled(t *testing.T) { if err != nil { t.Error(err) } - _, _ = ioutil.ReadAll(resp.Body) + _, _ = io.ReadAll(resp.Body) }(i) } <-recorder.Done diff --git a/proxy/backendtimeout_test.go b/proxy/backendtimeout_test.go index 93c11405e3..48cbec4f49 100644 --- a/proxy/backendtimeout_test.go +++ b/proxy/backendtimeout_test.go @@ -2,7 +2,7 @@ package proxy import ( "fmt" - "io/ioutil" + "io" "net/http" "net/http/httptest" "testing" @@ -99,7 +99,7 @@ func TestBackendTimeoutInTheMiddleOfServiceResponse(t *testing.T) { t.Errorf("expected 200, got: %v", rsp) } - body, err := ioutil.ReadAll(rsp.Body) + body, err := io.ReadAll(rsp.Body) if err != nil { t.Error(err) } diff --git a/proxy/context.go b/proxy/context.go index bd3193ef0c..600a481d1d 100644 --- a/proxy/context.go +++ b/proxy/context.go @@ -5,7 +5,6 @@ import ( stdlibcontext "context" "errors" "io" - "io/ioutil" "net/http" "net/url" "time" @@ -60,7 +59,7 @@ type noopFlushedResponseWriter struct { } func defaultBody() io.ReadCloser { - return ioutil.NopCloser(&bytes.Buffer{}) + return io.NopCloser(&bytes.Buffer{}) } func defaultResponse(r *http.Request) *http.Response { @@ -278,7 +277,7 @@ func (c *context) Split() (filters.FilterContext, error) { func (c *context) Loopback() { err := c.proxy.do(c) if c.response != nil && c.response.Body != nil { - if _, err := io.Copy(ioutil.Discard, c.response.Body); err != nil { + if _, err := io.Copy(io.Discard, c.response.Body); err != nil { c.proxy.log.Errorf("context: error while discarding remainder response body: %v.", err) } err := c.response.Body.Close() diff --git a/proxy/debug.go b/proxy/debug.go index 1a5308b36d..4deb2c9e8e 100644 --- a/proxy/debug.go +++ b/proxy/debug.go @@ -3,11 +3,11 @@ package proxy import ( "encoding/json" "fmt" - log "github.com/sirupsen/logrus" - "github.com/zalando/skipper/eskip" "io" - "io/ioutil" "net/http" + + log "github.com/sirupsen/logrus" + "github.com/zalando/skipper/eskip" ) type ( @@ -62,7 +62,7 @@ func convertRequest(r *http.Request) *debugRequest { } func convertBody(body io.Reader) (string, string) { - b, err := ioutil.ReadAll(body) + b, err := io.ReadAll(body) out := string(b) var errstr string diff --git a/proxy/debug_test.go b/proxy/debug_test.go index 476f9a659e..98612d2c85 100644 --- a/proxy/debug_test.go +++ b/proxy/debug_test.go @@ -3,10 +3,11 @@ package proxy import ( "bytes" "errors" - "github.com/zalando/skipper/eskip" - "io/ioutil" + "io" "net/http" "testing" + + "github.com/zalando/skipper/eskip" ) func takePt(n int) *int { return &n } @@ -38,18 +39,18 @@ func TestDebug(t *testing.T) { Header: http.Header{"X-Test-Header": []string{"test-header-value"}}, Host: "test.example.org", RemoteAddr: "::1", - Body: ioutil.NopCloser(bytes.NewBufferString("incoming body content"))}, + Body: io.NopCloser(bytes.NewBufferString("incoming body content"))}, outgoing: &http.Request{ Method: "HEAD", RequestURI: "/testuri2", Proto: "HTTP/1.1", Header: http.Header{"X-Test-Header-2": []string{"test-header-value-2"}}, Host: "www.example.org", - Body: ioutil.NopCloser(bytes.NewBufferString("outgoing body content"))}, + Body: io.NopCloser(bytes.NewBufferString("outgoing body content"))}, response: &http.Response{ StatusCode: http.StatusTeapot, Header: http.Header{"X-Test-Response-Header": []string{"test-response-header-value"}}, - Body: ioutil.NopCloser(bytes.NewBufferString("response body"))}}, + Body: io.NopCloser(bytes.NewBufferString("response body"))}}, debugDocument{ RouteId: "testRoute", Route: (&eskip.Route{ @@ -90,7 +91,7 @@ func TestDebug(t *testing.T) { Header: http.Header{"X-Test-Header": []string{"test-header-value"}}, Host: "test.example.org", RemoteAddr: "::1", - Body: ioutil.NopCloser(bytes.NewBufferString("incoming body content"))}, + Body: io.NopCloser(bytes.NewBufferString("incoming body content"))}, response: &http.Response{StatusCode: http.StatusNotFound}}, debugDocument{ Incoming: &debugRequest{ @@ -113,7 +114,7 @@ func TestDebug(t *testing.T) { Header: http.Header{"X-Test-Header": []string{"test-header-value"}}, Host: "test.example.org", RemoteAddr: "::1", - Body: ioutil.NopCloser(bytes.NewBufferString("incoming body content"))}}, + Body: io.NopCloser(bytes.NewBufferString("incoming body content"))}}, debugDocument{ Incoming: &debugRequest{ Method: "OPTIONS", diff --git a/proxy/fastcgi/fastcgi.go b/proxy/fastcgi/fastcgi.go index a85f92c4a7..5f849923e8 100644 --- a/proxy/fastcgi/fastcgi.go +++ b/proxy/fastcgi/fastcgi.go @@ -3,7 +3,7 @@ package fastcgi import ( "bytes" "fmt" - "io/ioutil" + "io" "net/http" "net/http/httptest" "strings" @@ -77,7 +77,7 @@ func (rt *RoundTripper) RoundTrip(req *http.Request) (*http.Response, error) { return &http.Response{ Status: body, StatusCode: http.StatusNotFound, - Body: ioutil.NopCloser(bytes.NewBufferString(body)), + Body: io.NopCloser(bytes.NewBufferString(body)), ContentLength: int64(len(body)), Request: req, Header: make(http.Header), diff --git a/proxy/fastcgi/fastcgi_test.go b/proxy/fastcgi/fastcgi_test.go index 11afaefc03..9c39efeac0 100644 --- a/proxy/fastcgi/fastcgi_test.go +++ b/proxy/fastcgi/fastcgi_test.go @@ -2,7 +2,7 @@ package fastcgi import ( "bytes" - "io/ioutil" + "io" "net" "net/http" "net/http/fcgi" @@ -58,7 +58,7 @@ func TestFastCgi(t *testing.T) { return } - b, err := ioutil.ReadAll(response.Body) + b, err := io.ReadAll(response.Body) if err != nil { t.Error(err) diff --git a/proxy/idle_test.go b/proxy/idle_test.go index 95cf6cf335..741cc19090 100644 --- a/proxy/idle_test.go +++ b/proxy/idle_test.go @@ -2,7 +2,7 @@ package proxy_test import ( "bytes" - "io/ioutil" + "io" "math/rand" "net/http" "net/http/httptest" @@ -142,7 +142,7 @@ func TestIdleConns(t *testing.T) { } defer rsp.Body.Close() - b, err := ioutil.ReadAll(rsp.Body) + b, err := io.ReadAll(rsp.Body) if err != nil { t.Fatal(ti.msg, "failed to read response", err) } diff --git a/proxy/lb_failingbackend_test.go b/proxy/lb_failingbackend_test.go index 62bb777adb..246416c71d 100644 --- a/proxy/lb_failingbackend_test.go +++ b/proxy/lb_failingbackend_test.go @@ -2,7 +2,7 @@ package proxy_test import ( "fmt" - "io/ioutil" + "io" "net/http" "net/http/httptest" "strings" @@ -31,7 +31,7 @@ func bindClient(p *proxytest.TestProxy) func(string, ...string) (string, bool) { } defer rsp.Body.Close() - b, err := ioutil.ReadAll(rsp.Body) + b, err := io.ReadAll(rsp.Body) if err != nil { return err.Error(), false } diff --git a/proxy/proxy.go b/proxy/proxy.go index 367df5bd7b..651cd24199 100644 --- a/proxy/proxy.go +++ b/proxy/proxy.go @@ -8,7 +8,6 @@ import ( "errors" "fmt" "io" - "io/ioutil" "net" "net/http" "net/http/httptrace" @@ -1010,7 +1009,7 @@ func (p *Proxy) rejectBackend(ctx *context, req *http.Request) (*http.Response, return &http.Response{ StatusCode: limit.StatusCode, Header: http.Header{"Content-Length": []string{"0"}}, - Body: ioutil.NopCloser(&bytes.Buffer{}), + Body: io.NopCloser(&bytes.Buffer{}), }, true } } @@ -1033,7 +1032,7 @@ func (p *Proxy) checkBreaker(c *context) (func(bool), bool) { done, ok := b.Allow() if !ok && c.request.Body != nil { // consume the body to prevent goroutine leaks - io.Copy(ioutil.Discard, c.request.Body) + io.Copy(io.Discard, c.request.Body) } return done, ok } @@ -1090,7 +1089,7 @@ func (p *Proxy) do(ctx *context) error { } else if ctx.shunted() || ctx.route.Shunt || ctx.route.BackendType == eskip.ShuntBackend { // consume the body to prevent goroutine leaks if ctx.request.Body != nil { - if _, err := io.Copy(ioutil.Discard, ctx.request.Body); err != nil { + if _, err := io.Copy(io.Discard, ctx.request.Body); err != nil { p.log.Errorf("error while discarding remainder request body: %v.", err) } } diff --git a/proxy/proxy_test.go b/proxy/proxy_test.go index b7c2eae42e..15bb82e027 100644 --- a/proxy/proxy_test.go +++ b/proxy/proxy_test.go @@ -5,7 +5,6 @@ import ( "crypto/tls" "fmt" "io" - "io/ioutil" "math/rand" "net" "net/http" @@ -863,7 +862,7 @@ func TestBreakFilterChain(t *testing.T) { fr.Register(builtin.NewAppendRequestHeader()) resp1 := &http.Response{ Header: make(http.Header), - Body: ioutil.NopCloser(new(bytes.Buffer)), + Body: io.NopCloser(new(bytes.Buffer)), StatusCode: http.StatusUnauthorized, Status: "Impossible body", } @@ -976,7 +975,7 @@ func TestProcessesRequestWithShuntBackend(t *testing.T) { r := &http.Request{ URL: u, Method: "POST", - Body: ioutil.NopCloser(reqBody), + Body: io.NopCloser(reqBody), Header: http.Header{"X-Test-Header": []string{"test value"}}} w := httptest.NewRecorder() @@ -1119,7 +1118,7 @@ func TestFlusherImplementation(t *testing.T) { return } defer rsp.Body.Close() - b, err := ioutil.ReadAll(rsp.Body) + b, err := io.ReadAll(rsp.Body) if err != nil { t.Error(err) return @@ -1622,7 +1621,7 @@ func TestRequestContentHeaders(t *testing.T) { const contentLength = 1 << 15 backend := httptest.NewServer(http.HandlerFunc(func(_ http.ResponseWriter, r *http.Request) { - b, err := ioutil.ReadAll(r.Body) + b, err := io.ReadAll(r.Body) if err != nil { t.Error(err) return diff --git a/proxy/ratelimit_test.go b/proxy/ratelimit_test.go index 38ed2d3e0f..9971c0e02a 100644 --- a/proxy/ratelimit_test.go +++ b/proxy/ratelimit_test.go @@ -1,7 +1,7 @@ package proxy_test import ( - "io/ioutil" + "io" "net/http" "net/http/httptest" "strconv" @@ -187,7 +187,7 @@ func doRequest(url string) (int, http.Header, error) { } defer rsp.Body.Close() - _, err = ioutil.ReadAll(rsp.Body) + _, err = io.ReadAll(rsp.Body) if err != nil { return -1, nil, err } diff --git a/proxy/split_test.go b/proxy/split_test.go index 6bce9d5118..f51278a5a8 100644 --- a/proxy/split_test.go +++ b/proxy/split_test.go @@ -2,7 +2,6 @@ package proxy_test import ( "io" - "io/ioutil" "net/http" "testing" "time" @@ -50,7 +49,7 @@ func TestRequestURIClonedOnSplit(t *testing.T) { } defer rsp.Body.Close() - io.Copy(ioutil.Discard, rsp.Body) + io.Copy(io.Discard, rsp.Body) select { case uri := <-df: diff --git a/proxy/upgrade_test.go b/proxy/upgrade_test.go index e952fd2d4f..dfeccf9b96 100644 --- a/proxy/upgrade_test.go +++ b/proxy/upgrade_test.go @@ -5,7 +5,6 @@ import ( "bytes" "fmt" "io" - "io/ioutil" "math/rand" "net" "net/http" @@ -254,7 +253,7 @@ func TestServeHTTP(t *testing.T) { if resp.StatusCode != http.StatusSwitchingProtocols { if resp.StatusCode == ti.backendStatusCode { // check Body - data, err := ioutil.ReadAll(resp.Body) + data, err := io.ReadAll(resp.Body) if err != nil { t.Error(err) return diff --git a/routing/routing_test.go b/routing/routing_test.go index 7dc92610f1..7998653b05 100644 --- a/routing/routing_test.go +++ b/routing/routing_test.go @@ -3,7 +3,7 @@ package routing_test import ( "errors" "fmt" - "io/ioutil" + "io" "net/http" "net/url" "testing" @@ -544,7 +544,7 @@ func TestRoutingHandlerEskipResponse(t *testing.T) { } defer resp.Body.Close() - b, err := ioutil.ReadAll(resp.Body) + b, err := io.ReadAll(resp.Body) if err != nil { t.Error(err) return @@ -740,7 +740,7 @@ func TestRoutingHandlerHEAD(t *testing.T) { defer rsp.Body.Close() - b, err := ioutil.ReadAll(rsp.Body) + b, err := io.ReadAll(rsp.Body) if err != nil { t.Error(err) return diff --git a/script/script.go b/script/script.go index 4b14682ee1..acac1b92fd 100644 --- a/script/script.go +++ b/script/script.go @@ -6,7 +6,6 @@ import ( "bytes" "errors" "io" - "io/ioutil" "net/http" "net/url" "os" @@ -311,7 +310,7 @@ func serveTableWalk(s *lua.LState, res *http.Response) func(lua.LValue, lua.LVal return } } - res.Body = ioutil.NopCloser(bytes.NewBuffer(body)) + res.Body = io.NopCloser(bytes.NewBuffer(body)) } } } diff --git a/script/script_test.go b/script/script_test.go index 65f4f9bc70..eba93543d3 100644 --- a/script/script_test.go +++ b/script/script_test.go @@ -2,7 +2,7 @@ package script import ( "bytes" - "io/ioutil" + "io" "net/http" "os" "strings" @@ -762,7 +762,7 @@ func runFilter(test *testContext) (*luaContext, error) { Proto: "HTTP/1.1", ProtoMajor: 1, ProtoMinor: 1, - Body: ioutil.NopCloser(bytes.NewBufferString(body)), + Body: io.NopCloser(bytes.NewBufferString(body)), ContentLength: int64(len(body)), Request: req, Header: make(http.Header), diff --git a/secrets/encrypter.go b/secrets/encrypter.go index 9b540d75c0..cd8d4a1c97 100644 --- a/secrets/encrypter.go +++ b/secrets/encrypter.go @@ -6,7 +6,7 @@ import ( crand "crypto/rand" "fmt" "io" - "io/ioutil" + "os" "strings" "sync" "time" @@ -25,7 +25,7 @@ type fileSecretSource struct { } func (fss *fileSecretSource) GetSecret() ([][]byte, error) { - contents, err := ioutil.ReadFile(fss.fileName) + contents, err := os.ReadFile(fss.fileName) if err != nil { return nil, err } diff --git a/secrets/encrypter_test.go b/secrets/encrypter_test.go index b230811e66..6be161f98b 100644 --- a/secrets/encrypter_test.go +++ b/secrets/encrypter_test.go @@ -2,7 +2,6 @@ package secrets import ( "fmt" - "io/ioutil" "os" "reflect" "sync" @@ -105,7 +104,7 @@ func TestGetEncrypter(t *testing.T) { var wg sync.WaitGroup reg := NewRegistry() defer reg.Close() - fd, err := ioutil.TempFile(".", "") + fd, err := os.CreateTemp(".", "") if err != nil { t.Fatalf("Failed to create temp file for test: %v", err) } diff --git a/secrets/file.go b/secrets/file.go index f90e287402..42244a191c 100644 --- a/secrets/file.go +++ b/secrets/file.go @@ -2,7 +2,6 @@ package secrets import ( "errors" - "io/ioutil" "os" "path/filepath" "sync" @@ -132,7 +131,7 @@ func (sp *SecretPaths) registerSecretFile(p string) error { if _, ok := sp.GetSecret(p); ok { return ErrAlreadyExists } - dat, err := ioutil.ReadFile(p) + dat, err := os.ReadFile(p) if err != nil { log.Errorf("Failed to read file %s: %v", p, err) return err @@ -154,7 +153,7 @@ func (sp *SecretPaths) runRefresher() { log.Errorf("Failed to convert k '%v' to string", k) return true } - sec, err := ioutil.ReadFile(f) + sec, err := os.ReadFile(f) if err != nil { log.Errorf("Failed to read file (%s): %v", f, err) return true diff --git a/secrets/file_test.go b/secrets/file_test.go index 239535683c..88de61668c 100644 --- a/secrets/file_test.go +++ b/secrets/file_test.go @@ -1,7 +1,6 @@ package secrets import ( - "io/ioutil" "os" "reflect" "testing" @@ -63,7 +62,7 @@ func Test_SecretPaths_GetSecret(t *testing.T) { } func Test_SecretPaths_Add(t *testing.T) { - temproot, err := ioutil.TempDir(os.TempDir(), "skipper-secrets") + temproot, err := os.MkdirTemp(os.TempDir(), "skipper-secrets") if err != nil { t.Errorf("Failed to create temp dir: %v", err) return @@ -136,7 +135,7 @@ func Test_SecretPaths_Add(t *testing.T) { t.Run(tt.name, func(t *testing.T) { sp := NewSecretPaths(60 * time.Millisecond) defer sp.Close() - err := ioutil.WriteFile(tt.writeFile, []byte(""), 0644) + err := os.WriteFile(tt.writeFile, []byte(""), 0644) if err != nil { t.Errorf("Failed to create file: %v", err) } @@ -146,7 +145,7 @@ func Test_SecretPaths_Add(t *testing.T) { t.Errorf("SecretPaths.Add() error = %v, wantErr %v", err, tt.wantErr) } - err = ioutil.WriteFile(tt.writeFile, dat, 0644) + err = os.WriteFile(tt.writeFile, dat, 0644) if err != nil { t.Errorf("Failed to write file: %v", err) } @@ -164,7 +163,7 @@ func Test_SecretPaths_Add(t *testing.T) { } func Test_SecretPaths_Close(t *testing.T) { - temproot, err := ioutil.TempDir(os.TempDir(), "skipper-secrets-close") + temproot, err := os.MkdirTemp(os.TempDir(), "skipper-secrets-close") if err != nil { t.Errorf("Failed to create temp dir: %v", err) return @@ -179,7 +178,7 @@ func Test_SecretPaths_Close(t *testing.T) { afile := watchit + "/afile" sp := NewSecretPaths(60 * time.Millisecond) - err = ioutil.WriteFile(afile, []byte(""), 0644) + err = os.WriteFile(afile, []byte(""), 0644) if err != nil { t.Errorf("Failed to create file: %v", err) } @@ -187,7 +186,7 @@ func Test_SecretPaths_Close(t *testing.T) { if err != nil { t.Errorf("Failed to Add file to watch list: %v", err) } - err = ioutil.WriteFile(afile, dat, 0644) + err = os.WriteFile(afile, dat, 0644) if err != nil { t.Errorf("Failed to write to file: %v", err) } @@ -203,7 +202,7 @@ func Test_SecretPaths_Close(t *testing.T) { sp.Close() - err = ioutil.WriteFile(afile, []byte("hello"), 0644) + err = os.WriteFile(afile, []byte("hello"), 0644) if err != nil { t.Errorf("Failed to write to file: %v", err) } diff --git a/skipper.go b/skipper.go index 1fccdd3841..a083a1fe22 100644 --- a/skipper.go +++ b/skipper.go @@ -5,7 +5,6 @@ import ( "crypto/tls" "fmt" "io" - "io/ioutil" "net" "net/http" "os" @@ -965,7 +964,7 @@ func listen(o *Options, mtr metrics.Metrics) (net.Listener, error) { // Note that in containers this will be the container limit. // Runtimes without the file will use defaults defined in `queuelistener` package. const memoryLimitFile = "/sys/fs/cgroup/memory/memory.limit_in_bytes" - memoryLimitBytes, err := ioutil.ReadFile(memoryLimitFile) + memoryLimitBytes, err := os.ReadFile(memoryLimitFile) if err != nil { log.Errorf("Failed to read memory limits, fallback to defaults: %v", err) } else { diff --git a/skipper_test.go b/skipper_test.go index b591a4e916..a815e7c861 100644 --- a/skipper_test.go +++ b/skipper_test.go @@ -2,7 +2,7 @@ package skipper import ( "crypto/tls" - "io/ioutil" + "io" "net" "net/http" "os" @@ -173,7 +173,7 @@ func TestHTTPSServer(t *testing.T) { if r.StatusCode != 404 { t.Fatalf("Status code should be 404, instead got: %d\n", r.StatusCode) } - _, err = ioutil.ReadAll(r.Body) + _, err = io.ReadAll(r.Body) if err != nil { t.Fatalf("Failed to stream response body: %v", err) } @@ -211,7 +211,7 @@ func TestHTTPServer(t *testing.T) { if r.StatusCode != 404 { t.Fatalf("Status code should be 404, instead got: %d\n", r.StatusCode) } - _, err = ioutil.ReadAll(r.Body) + _, err = io.ReadAll(r.Body) if err != nil { t.Fatalf("Failed to stream response body: %v", err) } @@ -277,7 +277,7 @@ func TestHTTPServerShutdown(t *testing.T) { if r.StatusCode != 200 { t.Errorf("Status code should be 200, instead got: %d\n", r.StatusCode) } - body, err2 := ioutil.ReadAll(r.Body) + body, err2 := io.ReadAll(r.Body) if err2 != nil { t.Errorf("Failed to stream response body: %v", err2) } diff --git a/skptesting/gohttpclient.go b/skptesting/gohttpclient.go index 6db359e1b3..1fe45ffa00 100644 --- a/skptesting/gohttpclient.go +++ b/skptesting/gohttpclient.go @@ -4,7 +4,7 @@ package main import ( - "io/ioutil" + "io" "net/http" "os" "os/signal" @@ -45,7 +45,7 @@ func main() { } defer resp.Body.Close() - body, err2 := ioutil.ReadAll(resp.Body) + body, err2 := io.ReadAll(resp.Body) if err2 != nil { logrus.Errorf("Failed to read body: %v", err2) } @@ -68,7 +68,7 @@ func main() { } else { defer uresp.Body.Close() - b, err := ioutil.ReadAll(uresp.Body) + b, err := io.ReadAll(uresp.Body) if err != nil { logrus.Errorf("Failed to read upgrade body: %v", err) } diff --git a/swarm/kubernetes.go b/swarm/kubernetes.go index 62fbe30bd2..7dcdfd542c 100644 --- a/swarm/kubernetes.go +++ b/swarm/kubernetes.go @@ -5,7 +5,6 @@ import ( "crypto/x509" "errors" "io" - "io/ioutil" "net" "net/http" "os" @@ -124,7 +123,7 @@ func buildHTTPClient(certFilePath string, inCluster bool, quit chan struct{}) (* return http.DefaultClient, nil } - rootCA, err := ioutil.ReadFile(certFilePath) + rootCA, err := os.ReadFile(certFilePath) if err != nil { return nil, err } @@ -189,7 +188,7 @@ func readServiceAccountToken(tokenFilePath string, inCluster bool) (string, erro return "", nil } - bToken, err := ioutil.ReadFile(tokenFilePath) + bToken, err := os.ReadFile(tokenFilePath) if err != nil { return "", err } diff --git a/swarm/swarm.go b/swarm/swarm.go index 74defb7189..72d579a167 100644 --- a/swarm/swarm.go +++ b/swarm/swarm.go @@ -3,7 +3,7 @@ package swarm import ( "errors" "fmt" - "io/ioutil" + "io" "net" "time" @@ -203,7 +203,7 @@ func Join(o Options, self *NodeInfo, nodes []*NodeInfo, cleanupF func()) (*Swarm log.Infof("SWARM: %s is going to join swarm of %d nodes (%v)", self, len(nodes), nodes) cfg := memberlist.DefaultLocalConfig() if !o.Debug { - cfg.LogOutput = ioutil.Discard + cfg.LogOutput = io.Discard } if self.Name == "" {