tremplin: replace use of deprecated modules/functions
This change ensures `tremplin` no longer uses deprecated modules and/or
functions. Most of the changes relate to `io/ioutil`, deprecated since
Go 1.16[1], with equivalent functions/variables being implemented in
the `io` and `os` modules.
The only other change involves using `grpc.WithContextDialer()` instead
of the deprecated `grpc.WithDialer()`[2].
[1] https://pkg.go.dev/io/ioutil
[2] https://pkg.go.dev/google.golang.org/grpc#WithDialer
BUG=b:218608945
TEST=staticcheck "chromiumos/tremplin/..."
Change-Id: I552074e12b619bad4dcb87c5afe62dec5fccb3c6
Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.corp-partner.google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/tremplin/+/6062823
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Commit-Queue: Jordan Abrahams-Whitehead <ajordanr@google.com>
Reviewed-by: Jordan Abrahams-Whitehead <ajordanr@google.com>
diff --git a/src/chromiumos/tremplin/instance_file_server.go b/src/chromiumos/tremplin/instance_file_server.go
index a58969f..c7bb8c6 100644
--- a/src/chromiumos/tremplin/instance_file_server.go
+++ b/src/chromiumos/tremplin/instance_file_server.go
@@ -6,7 +6,6 @@
import (
"io"
- "io/ioutil"
"log"
"os"
"syscall"
@@ -110,7 +109,7 @@
// instead of using FileMode.IsDir().
if (s.Mode & syscall.S_IFDIR) != 0 {
t = "directory"
- list, err := ioutil.ReadDir(p)
+ list, err := os.ReadDir(p)
if err != nil {
return nil, nil, err
}
@@ -166,11 +165,11 @@
log.Panic("Only overwrite supported by CreateInstanceFile")
}
var b []byte
- b, err = ioutil.ReadAll(args.Content)
+ b, err = io.ReadAll(args.Content)
if err != nil {
return err
}
- if err := ioutil.WriteFile(p, b, mode); err != nil {
+ if err := os.WriteFile(p, b, mode); err != nil {
return err
}
} else {
diff --git a/src/chromiumos/tremplin/lxd_helper.go b/src/chromiumos/tremplin/lxd_helper.go
index 0c51dfc..5b75aef 100644
--- a/src/chromiumos/tremplin/lxd_helper.go
+++ b/src/chromiumos/tremplin/lxd_helper.go
@@ -100,7 +100,7 @@
// LXD.
func signalLxdFailure() {
conn, err := grpc.Dial(crashHostPort,
- grpc.WithDialer(vsockHostDialer),
+ grpc.WithContextDialer(vsockHostDialer),
grpc.WithInsecure())
if err != nil {
log.Print("Could not connect to crash listener: ", err)
diff --git a/src/chromiumos/tremplin/main.go b/src/chromiumos/tremplin/main.go
index 8f25d71..584f898 100644
--- a/src/chromiumos/tremplin/main.go
+++ b/src/chromiumos/tremplin/main.go
@@ -27,7 +27,7 @@
// vsockHostDialer dials the vsock host. The addr is in this case is just the
// port, as the vsock cid is implied to be the host.
-func vsockHostDialer(addr string, timeout time.Duration) (net.Conn, error) {
+func vsockHostDialer(_ context.Context, addr string) (net.Conn, error) {
port, err := strconv.ParseInt(addr, 10, 32)
if err != nil {
return nil, fmt.Errorf("failed to convert addr to int: %q", addr)
@@ -50,7 +50,7 @@
}
conn, err := grpc.Dial(defaultHostPort,
- grpc.WithDialer(vsockHostDialer),
+ grpc.WithContextDialer(vsockHostDialer),
grpc.WithInsecure())
if err != nil {
log.Print("Could not connect to tremplin listener: ", err)
diff --git a/src/chromiumos/tremplin/passwd_db.go b/src/chromiumos/tremplin/passwd_db.go
index f44041a..23c5fde 100644
--- a/src/chromiumos/tremplin/passwd_db.go
+++ b/src/chromiumos/tremplin/passwd_db.go
@@ -8,7 +8,7 @@
"bytes"
"encoding"
"fmt"
- "io/ioutil"
+ "io"
"log"
"path"
"time"
@@ -52,7 +52,7 @@
}
defer r.Close()
- b, err := ioutil.ReadAll(r)
+ b, err := io.ReadAll(r)
if err != nil {
return fmt.Errorf("failed to read %q: %v", path, err)
}
@@ -223,7 +223,7 @@
switch s.Type {
case "file", "symlink":
- b, err := ioutil.ReadAll(r)
+ b, err := io.ReadAll(r)
if err != nil {
return fmt.Errorf("failed to read in file %q: %v", src, err)
}
diff --git a/src/chromiumos/tremplin/passwd_db_test.go b/src/chromiumos/tremplin/passwd_db_test.go
index 3b83214..d9f21fc 100644
--- a/src/chromiumos/tremplin/passwd_db_test.go
+++ b/src/chromiumos/tremplin/passwd_db_test.go
@@ -8,7 +8,6 @@
"bytes"
"errors"
"io"
- "io/ioutil"
"path"
"sort"
"strings"
@@ -305,7 +304,7 @@
switch e := entry.(type) {
case *fakeFile:
resp.Type = "file"
- content = ioutil.NopCloser(bytes.NewReader(e.content))
+ content = io.NopCloser(bytes.NewReader(e.content))
case *fakeDirectory:
resp.Type = "directory"
for _, dirEnt := range e.entries {
@@ -313,7 +312,7 @@
}
case *fakeSymlink:
resp.Type = "symlink"
- content = ioutil.NopCloser(strings.NewReader(e.path))
+ content = io.NopCloser(strings.NewReader(e.path))
}
return content, resp, nil
@@ -354,7 +353,7 @@
entries: []fsEntry{},
}
case "file":
- b, err := ioutil.ReadAll(args.Content)
+ b, err := io.ReadAll(args.Content)
if err != nil {
return err
}
@@ -363,7 +362,7 @@
content: b,
}
case "symlink":
- b, err := ioutil.ReadAll(args.Content)
+ b, err := io.ReadAll(args.Content)
if err != nil {
return err
}
diff --git a/src/chromiumos/tremplin/start_lxd.go b/src/chromiumos/tremplin/start_lxd.go
index 7120bc8..a3ee8a8 100644
--- a/src/chromiumos/tremplin/start_lxd.go
+++ b/src/chromiumos/tremplin/start_lxd.go
@@ -9,7 +9,6 @@
"bytes"
"fmt"
"io"
- "io/ioutil"
"log"
"os"
"os/user"
@@ -456,7 +455,7 @@
// then when the container is started.
milestone := s.milestone
- if err := ioutil.WriteFile(milestonePath, []byte(strconv.Itoa(milestone)), 0644); err != nil {
+ if err := os.WriteFile(milestonePath, []byte(strconv.Itoa(milestone)), 0644); err != nil {
return fmt.Errorf("could not write milestone file: %v", err)
}
@@ -535,7 +534,7 @@
return false
}
- data, err := ioutil.ReadFile(fmt.Sprintf("/mnt/stateful/lxd/containers/%s/backup.yaml", defaultContainerName))
+ data, err := os.ReadFile(fmt.Sprintf("/mnt/stateful/lxd/containers/%s/backup.yaml", defaultContainerName))
if err != nil {
log.Print("error reading backup.yaml, not resetting since can't import without backup.yaml: ", err)
return false
diff --git a/src/chromiumos/tremplin/stop_lxd.go b/src/chromiumos/tremplin/stop_lxd.go
index 2e5532e..df96d99 100644
--- a/src/chromiumos/tremplin/stop_lxd.go
+++ b/src/chromiumos/tremplin/stop_lxd.go
@@ -6,7 +6,6 @@
import (
"fmt"
- "io/ioutil"
"os"
"strconv"
"strings"
@@ -20,7 +19,7 @@
// /usr/sbin/lxd or /opt/google/lxd-next/usr/bin/lxd and
// {"lxd", "--group", "lxd", "--syslog"}.
func findLxdProcesses() []int {
- fileinfos, _ := ioutil.ReadDir("/proc")
+ fileinfos, _ := os.ReadDir("/proc")
// /proc/pid/cmdline contains the command line as a list of null-terminated strings.
cmdline := strings.Join(lxdCmd, "\x00") + "\x00"
@@ -49,7 +48,7 @@
if dest != "/usr/sbin/lxd" && dest != "/opt/google/lxd-next/usr/bin/lxd" {
continue
}
- procCmdline, err := ioutil.ReadFile("/proc/" + file.Name() + "/cmdline")
+ procCmdline, err := os.ReadFile("/proc/" + file.Name() + "/cmdline")
if err != nil {
// As above, we just skip over this path if there's an error
continue
diff --git a/src/chromiumos/tremplin/tremplin.go b/src/chromiumos/tremplin/tremplin.go
index 0f19b2b..ea4eea9 100644
--- a/src/chromiumos/tremplin/tremplin.go
+++ b/src/chromiumos/tremplin/tremplin.go
@@ -14,7 +14,6 @@
"fmt"
"golang.org/x/sys/unix"
"io"
- "io/ioutil"
"log"
"net"
"os"
@@ -594,7 +593,7 @@
continue
}
- err := ioutil.WriteFile(b.source, []byte(b.content), 0644)
+ err := os.WriteFile(b.source, []byte(b.content), 0644)
if err != nil {
req.Status = pb.ContainerStartProgress_FAILED
req.FailureReason = fmt.Sprintf("failed to write %q: %v", b.source, err)
@@ -1897,7 +1896,7 @@
h, err := tarr.Next()
metadataReadOK := false
if err == nil && h.Name == "metadata.yaml" {
- buf, _ := ioutil.ReadAll(tarr)
+ buf, _ := io.ReadAll(tarr)
metadata := api.ImageMetadata{}
err = yaml.Unmarshal(buf, &metadata)
if err == nil {
@@ -2314,7 +2313,7 @@
}
defer reader.Close()
- bytes, err := ioutil.ReadAll(reader)
+ bytes, err := io.ReadAll(reader)
str := string(bytes)
if err != nil {
str = fmt.Sprintf("Error reading log: %v. Got:\n%s", err, str)
diff --git a/src/chromiumos/tremplin/upgrade_container_test.go b/src/chromiumos/tremplin/upgrade_container_test.go
index 815e155..e51ebe5 100644
--- a/src/chromiumos/tremplin/upgrade_container_test.go
+++ b/src/chromiumos/tremplin/upgrade_container_test.go
@@ -10,7 +10,6 @@
"errors"
"fmt"
"io"
- "io/ioutil"
"log"
"strings"
"testing"
@@ -58,7 +57,7 @@
}
func (s *lxdStub) GetInstanceFile(containerName, path string) (io.ReadCloser, *lxd.InstanceFileResponse, error) {
- reader := ioutil.NopCloser(strings.NewReader(s.osRelease))
+ reader := io.NopCloser(strings.NewReader(s.osRelease))
resp := lxd.InstanceFileResponse{}
return reader, &resp, nil
}
diff --git a/src/chromiumos/tremplin/version.go b/src/chromiumos/tremplin/version.go
index 547c90f..357ab18 100644
--- a/src/chromiumos/tremplin/version.go
+++ b/src/chromiumos/tremplin/version.go
@@ -9,7 +9,6 @@
"errors"
"fmt"
"io"
- "io/ioutil"
"os"
"path"
"strconv"
@@ -82,7 +81,7 @@
return r, resp, nil
}
- b, err := ioutil.ReadAll(r)
+ b, err := io.ReadAll(r)
if err != nil {
return nil, nil, fmt.Errorf("failed to read symlink %q: %v", p, err)
}