Skip to content

Commit 7f4a3e9

Browse files
authored
Fix/go deprecations (zalando#1857)
* ioutil.Discard to io.Discard Signed-off-by: Sandor Szücs <[email protected]> * ioutil.NopCloser to io.NopCloser Signed-off-by: Sandor Szücs <[email protected]> * ioutil.ReadAll to io.ReadAll Signed-off-by: Sandor Szücs <[email protected]> * ioutil.ReadDir to os.ReadDir and ioutil.ReadFile to os.ReadFile Signed-off-by: Sandor Szücs <[email protected]> * ioutil.TempDir to os.MkdirTemp and ioutil.TempFile to os.CreateTemp Signed-off-by: Sandor Szücs <[email protected]> * ioutil.WriteFile to os.WriteFile Signed-off-by: Sandor Szücs <[email protected]> * fix obstacle in fs interface change Signed-off-by: Sandor Szücs <[email protected]> * set go to 1.17 Signed-off-by: Sandor Szücs <[email protected]> * cleanup ioutil in doc reference Signed-off-by: Sandor Szücs <[email protected]> * set 1.16 as suggested Signed-off-by: Sandor Szücs <[email protected]>
1 parent 19afc43 commit 7f4a3e9

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

75 files changed

+211
-240
lines changed

cmd/eskip/load.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import (
1818
"encoding/json"
1919
"errors"
2020
"fmt"
21-
"io/ioutil"
21+
"os"
2222

2323
"github.com/zalando/skipper/eskip"
2424
)
@@ -144,7 +144,7 @@ func takePatchFilters(media []*medium) (prep, app []*eskip.Filter, err error) {
144144
fstr = m.patchFilters
145145
case patchPrependFile, patchAppendFile:
146146
var b []byte
147-
b, err = ioutil.ReadFile(m.patchFile)
147+
b, err = os.ReadFile(m.patchFile)
148148
if err != nil {
149149
return
150150
}

cmd/eskip/readclient.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
package main
22

33
import (
4+
"io"
5+
"os"
6+
47
"github.com/zalando/skipper/eskip"
58
"github.com/zalando/skipper/eskipfile"
69
etcdclient "github.com/zalando/skipper/etcd"
710
innkeeperclient "github.com/zalando/skipper/innkeeper"
8-
"io"
9-
"io/ioutil"
10-
"os"
1111
)
1212

1313
type readClient interface {
@@ -80,7 +80,7 @@ func (r *stdinReader) LoadAndParseAll() ([]*eskip.RouteInfo, error) {
8080
// and deletes the diff only after, it may not
8181
// even be consistent to do continuous piping.
8282
// May change in the future.
83-
doc, err := ioutil.ReadAll(r.reader)
83+
doc, err := io.ReadAll(r.reader)
8484
if err != nil {
8585
return nil, err
8686
}

cmd/webhook/admission/admission.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package admission
33
import (
44
"encoding/json"
55
"fmt"
6-
"io/ioutil"
6+
"io"
77
"net/http"
88
"time"
99

@@ -117,7 +117,7 @@ func Handler(admitter Admitter) http.HandlerFunc {
117117
return
118118
}
119119

120-
body, err := ioutil.ReadAll(r.Body)
120+
body, err := io.ReadAll(r.Body)
121121
if err != nil {
122122
log.Errorf("Failed to read request: %v", err)
123123
w.WriteHeader(http.StatusInternalServerError)

cmd/webhook/admission/admission_test.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package admission
33
import (
44
"bytes"
55
"encoding/json"
6-
"io/ioutil"
6+
"io"
77
"net/http"
88
"net/http/httptest"
99
"testing"
@@ -152,7 +152,7 @@ func TestResponseEncoding(t *testing.T) {
152152
assert.Equal(t, http.StatusOK, resp.StatusCode)
153153

154154
reviewResp := admissionsv1.AdmissionReview{}
155-
rb, err := ioutil.ReadAll(resp.Body)
155+
rb, err := io.ReadAll(resp.Body)
156156
assert.NoError(t, err, "could not read response")
157157

158158
err = json.Unmarshal(rb, &reviewResp)
@@ -199,7 +199,7 @@ func TestAdmitRouteGroups(t *testing.T) {
199199
assert.Equal(t, http.StatusOK, resp.StatusCode)
200200

201201
respReview := &admissionsv1.AdmissionReview{}
202-
rb, err := ioutil.ReadAll(resp.Body)
202+
rb, err := io.ReadAll(resp.Body)
203203
assert.NoError(t, err, "could not read response")
204204
err = json.Unmarshal(rb, &respReview)
205205
assert.NoError(t, err)

config/config.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
"crypto/tls"
55
"flag"
66
"fmt"
7-
"io/ioutil"
87
"net/http"
98
"os"
109
"sort"
@@ -492,7 +491,7 @@ func (c *Config) Parse() error {
492491

493492
configKeys := make(map[string]interface{})
494493
if c.ConfigFile != "" {
495-
yamlFile, err := ioutil.ReadFile(c.ConfigFile)
494+
yamlFile, err := os.ReadFile(c.ConfigFile)
496495
if err != nil {
497496
return fmt.Errorf("invalid config file: %v", err)
498497
}

dataclients/kubernetes/clusterclient.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ import (
88
"errors"
99
"fmt"
1010
"io"
11-
"io/ioutil"
1211
"net"
1312
"net/http"
13+
"os"
1414
"regexp"
1515
"sort"
1616
"time"
@@ -69,7 +69,7 @@ func buildHTTPClient(certFilePath string, inCluster bool, quit <-chan struct{})
6969
return http.DefaultClient, nil
7070
}
7171

72-
rootCA, err := ioutil.ReadFile(certFilePath)
72+
rootCA, err := os.ReadFile(certFilePath)
7373
if err != nil {
7474
return nil, err
7575
}

dataclients/kubernetes/defaultfilters.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package kubernetes
22

33
import (
44
"fmt"
5-
"io/ioutil"
65
"os"
76
"path/filepath"
87
"strings"
@@ -23,21 +22,22 @@ type filterSet struct {
2322
type defaultFilters map[definitions.ResourceID]*filterSet
2423

2524
func readDefaultFilters(dir string) (defaultFilters, error) {
26-
files, err := ioutil.ReadDir(dir)
25+
files, err := os.ReadDir(dir)
2726
if err != nil {
2827
return nil, err
2928
}
3029

3130
filters := make(defaultFilters)
3231
for _, f := range files {
3332
r := strings.Split(f.Name(), ".") // format: {service}.{namespace}
34-
if len(r) != 2 || !(f.Mode().IsRegular() || f.Mode()&os.ModeSymlink != 0) || f.Size() > maxFileSize {
33+
info, err := f.Info()
34+
if len(r) != 2 || !(f.Type().IsRegular() || f.Type()&os.ModeSymlink != 0) || info.Size() > maxFileSize {
3535
log.WithError(err).WithField("file", f.Name()).Debug("incompatible file")
3636
continue
3737
}
3838

3939
file := filepath.Join(dir, f.Name())
40-
config, err := ioutil.ReadFile(file)
40+
config, err := os.ReadFile(file)
4141
if err != nil {
4242
log.WithError(err).WithField("file", file).Debug("could not read file")
4343
continue

dataclients/kubernetes/kube_test.go

+10-11
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import (
1010
"encoding/pem"
1111
"fmt"
1212
"io"
13-
"io/ioutil"
1413
"math/big"
1514
mrand "math/rand"
1615
"net"
@@ -1766,7 +1765,7 @@ func TestCreateRequest(t *testing.T) {
17661765
err error
17671766
url string
17681767
)
1769-
rc := ioutil.NopCloser(&buf)
1768+
rc := io.NopCloser(&buf)
17701769

17711770
client := &clusterClient{}
17721771

@@ -1874,7 +1873,7 @@ func TestBuildHTTPClient(t *testing.T) {
18741873
t.Errorf("should return invalid certificate")
18751874
}
18761875

1877-
err = ioutil.WriteFile("ca.empty.crt", []byte(""), 0644)
1876+
err = os.WriteFile("ca.empty.crt", []byte(""), 0644)
18781877
if err != nil {
18791878
t.Error(err)
18801879
}
@@ -1886,7 +1885,7 @@ func TestBuildHTTPClient(t *testing.T) {
18861885
}
18871886

18881887
//create CA file
1889-
err = ioutil.WriteFile("ca.temp.crt", generateSSCert(), 0644)
1888+
err = os.WriteFile("ca.temp.crt", generateSSCert(), 0644)
18901889
if err != nil {
18911890
t.Error(err)
18921891
}
@@ -3141,12 +3140,12 @@ func TestSkipperDefaultFilters(t *testing.T) {
31413140
"service1", "", "", "", "", "", "", definitions.BackendPort{Value: 8080}, 1.0,
31423141
testRule("www.example.org", testPathRule("/", "service1", definitions.BackendPort{Value: 8080})))}}
31433142

3144-
defaultFiltersDir, err := ioutil.TempDir("", "filters")
3143+
defaultFiltersDir, err := os.MkdirTemp("", "filters")
31453144
if err != nil {
31463145
t.Error(err)
31473146
}
31483147
file := filepath.Join(defaultFiltersDir, "service1.namespace1")
3149-
if err := ioutil.WriteFile(file, []byte("consecutiveBreaker(15)"), 0666); err != nil {
3148+
if err := os.WriteFile(file, []byte("consecutiveBreaker(15)"), 0666); err != nil {
31503149
t.Error(err)
31513150
}
31523151

@@ -3181,12 +3180,12 @@ func TestSkipperDefaultFilters(t *testing.T) {
31813180
testRule("www.example.org", testPathRule("/", "service1", definitions.BackendPort{Value: "port1"})))}}
31823181

31833182
// store default configuration in the file
3184-
dir, err := ioutil.TempDir("", "filters")
3183+
dir, err := os.MkdirTemp("", "filters")
31853184
if err != nil {
31863185
t.Error(err)
31873186
}
31883187
file := filepath.Join(dir, "service1.namespace1")
3189-
if err := ioutil.WriteFile(file, []byte("consecutiveBreaker(15)"), 0666); err != nil {
3188+
if err := os.WriteFile(file, []byte("consecutiveBreaker(15)"), 0666); err != nil {
31903189
t.Error(err)
31913190
}
31923191

@@ -3213,20 +3212,20 @@ func TestSkipperDefaultFilters(t *testing.T) {
32133212
})
32143213

32153214
t.Run("check getDefaultFilterConfigurations ignores files names not following the pattern, directories and huge files", func(t *testing.T) {
3216-
defaultFiltersDir, err := ioutil.TempDir("", "filters")
3215+
defaultFiltersDir, err := os.MkdirTemp("", "filters")
32173216
if err != nil {
32183217
t.Error(err)
32193218
}
32203219
invalidFileName := filepath.Join(defaultFiltersDir, "file.name.doesnt.match.our.pattern")
3221-
if err := ioutil.WriteFile(invalidFileName, []byte("consecutiveBreaker(15)"), 0666); err != nil {
3220+
if err := os.WriteFile(invalidFileName, []byte("consecutiveBreaker(15)"), 0666); err != nil {
32223221
t.Error(err)
32233222
}
32243223
err = os.Mkdir(filepath.Join(defaultFiltersDir, "some.directory"), os.ModePerm)
32253224
if err != nil {
32263225
t.Error(err)
32273226
}
32283227
bigFile := filepath.Join(defaultFiltersDir, "huge.file")
3229-
if err := ioutil.WriteFile(bigFile, make([]byte, 1024*1024+1), 0666); err != nil {
3228+
if err := os.WriteFile(bigFile, make([]byte, 1024*1024+1), 0666); err != nil {
32303229
t.Error(err)
32313230
}
32323231

dataclients/kubernetes/kubernetestest/api.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
"encoding/json"
55
"errors"
66
"io"
7-
"io/ioutil"
87
"net/http"
98
"regexp"
109

@@ -205,7 +204,7 @@ func itemsJSON(b *[]byte, o []interface{}) error {
205204

206205
func readAPIOptions(r io.Reader) (o TestAPIOptions, err error) {
207206
var b []byte
208-
b, err = ioutil.ReadAll(r)
207+
b, err = io.ReadAll(r)
209208
if err != nil {
210209
return
211210
}

dataclients/kubernetes/kubernetestest/api_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import (
44
"bytes"
55
"encoding/json"
66
"fmt"
7-
"io/ioutil"
7+
"io"
88
"net/http"
99
"net/http/httptest"
1010
"testing"
@@ -126,7 +126,7 @@ func getJSON(u string, o interface{}) error {
126126
return fmt.Errorf("unexpected status code: %d", rsp.StatusCode)
127127
}
128128

129-
b, err := ioutil.ReadAll(rsp.Body)
129+
b, err := io.ReadAll(rsp.Body)
130130
if err != nil {
131131
return err
132132
}

dataclients/kubernetes/kubernetestest/fixtures.go

+4-5
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
"bytes"
55
"fmt"
66
"io"
7-
"io/ioutil"
87
"net/http/httptest"
98
"os"
109
"path/filepath"
@@ -97,7 +96,7 @@ func rangeOverFixtures(t *testing.T, dir string, fs []os.FileInfo, test func(fix
9796
}
9897

9998
func matchOutput(matchFile, output string) error {
100-
b, err := ioutil.ReadFile(matchFile)
99+
b, err := os.ReadFile(matchFile)
101100
if err != nil {
102101
return err
103102
}
@@ -197,7 +196,7 @@ func testFixture(t *testing.T, f fixtureSet) {
197196
}
198197

199198
defer safeFileClose(t, ko)
200-
b, err := ioutil.ReadAll(ko)
199+
b, err := io.ReadAll(ko)
201200
if err != nil {
202201
t.Fatal(err)
203202
}
@@ -240,7 +239,7 @@ func testFixture(t *testing.T, f fixtureSet) {
240239
}
241240

242241
defer safeFileClose(t, eskp)
243-
b, err := ioutil.ReadAll(eskp)
242+
b, err := io.ReadAll(eskp)
244243
if err != nil {
245244
t.Fatal(err)
246245
}
@@ -283,7 +282,7 @@ func testFixture(t *testing.T, f fixtureSet) {
283282

284283
if f.log != "" {
285284
if err := matchOutput(f.log, logBuf.String()); err != nil {
286-
b, err := ioutil.ReadFile(f.log)
285+
b, err := os.ReadFile(f.log)
287286
if err != nil {
288287
t.Fatal(err)
289288
}

dataclients/routestring/example_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ package routestring_test
55

66
import (
77
"fmt"
8-
"io/ioutil"
8+
"io"
99
"log"
1010
"net/http"
1111
"time"
@@ -37,7 +37,7 @@ func Example() {
3737
}
3838

3939
defer rsp.Body.Close()
40-
content, err := ioutil.ReadAll(rsp.Body)
40+
content, err := io.ReadAll(rsp.Body)
4141
if err != nil {
4242
log.Println(err)
4343
return

docs/reference/development.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -436,7 +436,7 @@ index 837b6cf..aa69f09 100644
436436
+/*
437437
import (
438438
"fmt"
439-
"io/ioutil"
439+
"os"
440440
@@ -13,8 +14,13 @@ import (
441441
"github.com/zalando/skipper/filters"
442442
"github.com/zalando/skipper/routing"

eskipfile/file.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package eskipfile
22

33
import (
4-
"io/ioutil"
4+
"os"
55

66
"github.com/zalando/skipper/eskip"
77
)
@@ -13,7 +13,7 @@ type Client struct{ routes []*eskip.Route }
1313
// Opens an eskip file and parses it, returning a DataClient implementation. If reading or parsing the file
1414
// fails, returns an error. This implementation doesn't provide file watch.
1515
func Open(path string) (*Client, error) {
16-
content, err := ioutil.ReadFile(path)
16+
content, err := os.ReadFile(path)
1717
if err != nil {
1818
return nil, err
1919
}

eskipfile/remote.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@ package eskipfile
22

33
import (
44
"errors"
5-
"github.com/zalando/skipper/eskip"
6-
"github.com/zalando/skipper/routing"
75
"io"
8-
"io/ioutil"
96
"net/http"
107
"os"
118
"strings"
129

10+
"github.com/zalando/skipper/eskip"
11+
"github.com/zalando/skipper/routing"
12+
1313
log "github.com/sirupsen/logrus"
1414
)
1515

@@ -43,7 +43,7 @@ func RemoteWatch(o *RemoteWatchOptions) (routing.DataClient, error) {
4343
return Watch(o.RemoteFile), nil
4444
}
4545

46-
tempFilename, err := ioutil.TempFile("", "routes")
46+
tempFilename, err := os.CreateTemp("", "routes")
4747

4848
if err != nil {
4949
return nil, err

0 commit comments

Comments
 (0)