mirror of
https://github.com/kemko/nomad.git
synced 2026-01-08 19:35:41 +03:00
deps: Update ioutil deprecated library references to os and io respectively in the client package (#16318)
* Update ioutil deprecated library references to os and io respectively * Deal with the errors produced. Add error handling to filEntry info Add error handling to info
This commit is contained in:
@@ -3,7 +3,6 @@ package taskrunner
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"os"
|
||||
@@ -83,7 +82,7 @@ func TestTaskRunner_ArtifactHook_PartialDone(t *testing.T) {
|
||||
|
||||
// Only create one of the 2 artifacts to cause an error on first run.
|
||||
file1 := filepath.Join(srcdir, "foo.txt")
|
||||
require.NoError(t, ioutil.WriteFile(file1, []byte{'1'}, 0644))
|
||||
require.NoError(t, os.WriteFile(file1, []byte{'1'}, 0644))
|
||||
|
||||
// Test server to serve the artifacts
|
||||
ts := httptest.NewServer(http.FileServer(http.Dir(srcdir)))
|
||||
@@ -127,7 +126,7 @@ func TestTaskRunner_ArtifactHook_PartialDone(t *testing.T) {
|
||||
|
||||
// Write file2 so artifacts can download successfully
|
||||
file2 := filepath.Join(srcdir, "bar.txt")
|
||||
require.NoError(t, ioutil.WriteFile(file2, []byte{'1'}, 0644))
|
||||
require.NoError(t, os.WriteFile(file2, []byte{'1'}, 0644))
|
||||
|
||||
// Mock TaskRunner by copying state from resp to req and reset resp.
|
||||
req.PreviousState = maps.Clone(resp.State)
|
||||
@@ -174,7 +173,7 @@ func TestTaskRunner_ArtifactHook_ConcurrentDownloadSuccess(t *testing.T) {
|
||||
numOfFiles := 7
|
||||
for i := 0; i < numOfFiles; i++ {
|
||||
file := filepath.Join(srcdir, fmt.Sprintf("file%d.txt", i))
|
||||
require.NoError(t, ioutil.WriteFile(file, []byte{byte(i)}, 0644))
|
||||
require.NoError(t, os.WriteFile(file, []byte{byte(i)}, 0644))
|
||||
}
|
||||
|
||||
// Test server to serve the artifacts
|
||||
@@ -260,13 +259,13 @@ func TestTaskRunner_ArtifactHook_ConcurrentDownloadFailure(t *testing.T) {
|
||||
srcdir := t.TempDir()
|
||||
|
||||
file1 := filepath.Join(srcdir, "file1.txt")
|
||||
require.NoError(t, ioutil.WriteFile(file1, []byte{'1'}, 0644))
|
||||
require.NoError(t, os.WriteFile(file1, []byte{'1'}, 0644))
|
||||
|
||||
file2 := filepath.Join(srcdir, "file2.txt")
|
||||
require.NoError(t, ioutil.WriteFile(file2, []byte{'2'}, 0644))
|
||||
require.NoError(t, os.WriteFile(file2, []byte{'2'}, 0644))
|
||||
|
||||
file3 := filepath.Join(srcdir, "file3.txt")
|
||||
require.NoError(t, ioutil.WriteFile(file3, []byte{'3'}, 0644))
|
||||
require.NoError(t, os.WriteFile(file3, []byte{'3'}, 0644))
|
||||
|
||||
// Test server to serve the artifacts
|
||||
ts := httptest.NewServer(http.FileServer(http.Dir(srcdir)))
|
||||
@@ -319,7 +318,7 @@ func TestTaskRunner_ArtifactHook_ConcurrentDownloadFailure(t *testing.T) {
|
||||
|
||||
// create the missing file
|
||||
file0 := filepath.Join(srcdir, "file0.txt")
|
||||
require.NoError(t, ioutil.WriteFile(file0, []byte{'0'}, 0644))
|
||||
require.NoError(t, os.WriteFile(file0, []byte{'0'}, 0644))
|
||||
|
||||
// Mock TaskRunner by copying state from resp to req and reset resp.
|
||||
req.PreviousState = maps.Clone(resp.State)
|
||||
@@ -342,19 +341,19 @@ func TestTaskRunner_ArtifactHook_ConcurrentDownloadFailure(t *testing.T) {
|
||||
require.Contains(t, files[3], "file3.txt")
|
||||
|
||||
// verify the file contents too, since files will also be created for failed downloads
|
||||
data0, err := ioutil.ReadFile(files[0])
|
||||
data0, err := os.ReadFile(files[0])
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, data0, []byte{'0'})
|
||||
|
||||
data1, err := ioutil.ReadFile(files[1])
|
||||
data1, err := os.ReadFile(files[1])
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, data1, []byte{'1'})
|
||||
|
||||
data2, err := ioutil.ReadFile(files[2])
|
||||
data2, err := os.ReadFile(files[2])
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, data2, []byte{'2'})
|
||||
|
||||
data3, err := ioutil.ReadFile(files[3])
|
||||
data3, err := os.ReadFile(files[3])
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, data3, []byte{'3'})
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@ import (
|
||||
"context"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
@@ -270,7 +269,7 @@ func (h *connectNativeHook) maybeSetSITokenEnv(dir, task string, env map[string]
|
||||
return nil
|
||||
}
|
||||
|
||||
token, err := ioutil.ReadFile(filepath.Join(dir, sidsTokenFile))
|
||||
token, err := os.ReadFile(filepath.Join(dir, sidsTokenFile))
|
||||
if err != nil {
|
||||
if !os.IsNotExist(err) {
|
||||
return fmt.Errorf("failed to load SI token for native task %s: %w", task, err)
|
||||
|
||||
@@ -2,7 +2,8 @@ package taskrunner
|
||||
|
||||
import (
|
||||
"context"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
|
||||
@@ -27,8 +28,8 @@ func getTestConsul(t *testing.T) *consultest.TestServer {
|
||||
testConsul, err := consultest.NewTestServerConfigT(t, func(c *consultest.TestServerConfig) {
|
||||
c.Peering = nil // fix for older versions of Consul (<1.13.0) that don't support peering
|
||||
if !testing.Verbose() { // disable consul logging if -v not set
|
||||
c.Stdout = ioutil.Discard
|
||||
c.Stderr = ioutil.Discard
|
||||
c.Stdout = io.Discard
|
||||
c.Stderr = io.Discard
|
||||
}
|
||||
})
|
||||
require.NoError(t, err, "failed to start test consul server")
|
||||
@@ -42,7 +43,7 @@ func TestConnectNativeHook_Name(t *testing.T) {
|
||||
}
|
||||
|
||||
func setupCertDirs(t *testing.T) (string, string) {
|
||||
fd, err := ioutil.TempFile(t.TempDir(), "connect_native_testcert")
|
||||
fd, err := os.CreateTemp(t.TempDir(), "connect_native_testcert")
|
||||
require.NoError(t, err)
|
||||
_, err = fd.WriteString("ABCDEF")
|
||||
require.NoError(t, err)
|
||||
@@ -65,7 +66,7 @@ func TestConnectNativeHook_copyCertificate(t *testing.T) {
|
||||
t.Run("normal", func(t *testing.T) {
|
||||
err := new(connectNativeHook).copyCertificate(f, d, "out.pem")
|
||||
require.NoError(t, err)
|
||||
b, err := ioutil.ReadFile(filepath.Join(d, "out.pem"))
|
||||
b, err := os.ReadFile(filepath.Join(d, "out.pem"))
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "ABCDEF", string(b))
|
||||
})
|
||||
@@ -83,7 +84,7 @@ func TestConnectNativeHook_copyCertificates(t *testing.T) {
|
||||
KeyFile: f,
|
||||
}, d)
|
||||
require.NoError(t, err)
|
||||
ls, err := ioutil.ReadDir(d)
|
||||
ls, err := os.ReadDir(d)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, 3, len(ls))
|
||||
})
|
||||
@@ -411,7 +412,7 @@ func TestTaskRunner_ConnectNativeHook_with_SI_token(t *testing.T) {
|
||||
// Insert service identity token in the secrets directory
|
||||
token := uuid.Generate()
|
||||
siTokenFile := filepath.Join(request.TaskDir.SecretsDir, sidsTokenFile)
|
||||
err = ioutil.WriteFile(siTokenFile, []byte(token), 0440)
|
||||
err = os.WriteFile(siTokenFile, []byte(token), 0440)
|
||||
require.NoError(t, err)
|
||||
|
||||
response := new(interfaces.TaskPrestartResponse)
|
||||
@@ -538,7 +539,7 @@ func TestTaskRunner_ConnectNativeHook_shareTLS(t *testing.T) {
|
||||
}
|
||||
|
||||
func checkFilesInDir(t *testing.T, dir string, includes, excludes []string) {
|
||||
ls, err := ioutil.ReadDir(dir)
|
||||
ls, err := os.ReadDir(dir)
|
||||
require.NoError(t, err)
|
||||
|
||||
var present []string
|
||||
|
||||
@@ -2,7 +2,6 @@ package taskrunner
|
||||
|
||||
import (
|
||||
"context"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
@@ -69,5 +68,5 @@ func writeDispatchPayload(base, filename string, payload []byte) error {
|
||||
return err
|
||||
}
|
||||
|
||||
return ioutil.WriteFile(renderTo, decoded, 0777)
|
||||
return os.WriteFile(renderTo, decoded, 0777)
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ package taskrunner
|
||||
|
||||
import (
|
||||
"context"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
|
||||
@@ -50,7 +50,7 @@ func TestTaskRunner_DispatchHook_NoPayload(t *testing.T) {
|
||||
require.True(resp.Done)
|
||||
|
||||
// Assert payload directory is empty
|
||||
files, err := ioutil.ReadDir(req.TaskDir.LocalDir)
|
||||
files, err := os.ReadDir(req.TaskDir.LocalDir)
|
||||
require.NoError(err)
|
||||
require.Empty(files)
|
||||
}
|
||||
@@ -94,7 +94,7 @@ func TestTaskRunner_DispatchHook_Ok(t *testing.T) {
|
||||
require.True(resp.Done)
|
||||
|
||||
filename := filepath.Join(req.TaskDir.LocalDir, task.DispatchPayload.File)
|
||||
result, err := ioutil.ReadFile(filename)
|
||||
result, err := os.ReadFile(filename)
|
||||
require.NoError(err)
|
||||
require.Equal(expected, result)
|
||||
}
|
||||
@@ -141,7 +141,7 @@ func TestTaskRunner_DispatchHook_Error(t *testing.T) {
|
||||
require.False(resp.Done)
|
||||
|
||||
// Assert payload directory is empty
|
||||
files, err := ioutil.ReadDir(req.TaskDir.LocalDir)
|
||||
files, err := os.ReadDir(req.TaskDir.LocalDir)
|
||||
require.NoError(err)
|
||||
require.Empty(files)
|
||||
}
|
||||
|
||||
@@ -6,7 +6,6 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"net"
|
||||
"os"
|
||||
"os/exec"
|
||||
@@ -448,7 +447,7 @@ func buildEnvoyBind(alloc *structs.Allocation, ifce, service, task string, taskE
|
||||
}
|
||||
|
||||
func (h *envoyBootstrapHook) writeConfig(filename, config string) error {
|
||||
if err := ioutil.WriteFile(filename, []byte(config), 0440); err != nil {
|
||||
if err := os.WriteFile(filename, []byte(config), 0440); err != nil {
|
||||
_ = os.Remove(filename)
|
||||
return err
|
||||
}
|
||||
@@ -596,7 +595,7 @@ func (e envoyBootstrapArgs) env(env []string) []string {
|
||||
// Consul ACLs are enabled), it will be in place by the time we try to read it.
|
||||
func (h *envoyBootstrapHook) maybeLoadSIToken(task, dir string) (string, error) {
|
||||
tokenPath := filepath.Join(dir, sidsTokenFile)
|
||||
token, err := ioutil.ReadFile(tokenPath)
|
||||
token, err := os.ReadFile(tokenPath)
|
||||
if err != nil {
|
||||
if !os.IsNotExist(err) {
|
||||
h.logger.Error("failed to load SI token", "task", task, "error", err)
|
||||
|
||||
@@ -10,7 +10,6 @@ import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
@@ -46,7 +45,7 @@ func writeTmp(t *testing.T, s string, fm os.FileMode) string {
|
||||
dir := t.TempDir()
|
||||
|
||||
fPath := filepath.Join(dir, sidsTokenFile)
|
||||
err := ioutil.WriteFile(fPath, []byte(s), fm)
|
||||
err := os.WriteFile(fPath, []byte(s), fm)
|
||||
require.NoError(t, err)
|
||||
|
||||
return dir
|
||||
@@ -358,7 +357,7 @@ func TestEnvoyBootstrapHook_with_SI_token(t *testing.T) {
|
||||
// Insert service identity token in the secrets directory
|
||||
token := uuid.Generate()
|
||||
siTokenFile := filepath.Join(req.TaskDir.SecretsDir, sidsTokenFile)
|
||||
err = ioutil.WriteFile(siTokenFile, []byte(token), 0440)
|
||||
err = os.WriteFile(siTokenFile, []byte(token), 0440)
|
||||
require.NoError(t, err)
|
||||
|
||||
resp := &interfaces.TaskPrestartResponse{}
|
||||
|
||||
@@ -4,7 +4,6 @@ import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"sync"
|
||||
@@ -147,7 +146,7 @@ func (h *sidsHook) earlyExit() bool {
|
||||
// writeToken writes token into the secrets directory for the task.
|
||||
func (h *sidsHook) writeToken(dir string, token string) error {
|
||||
tokenPath := filepath.Join(dir, sidsTokenFile)
|
||||
if err := ioutil.WriteFile(tokenPath, []byte(token), sidsTokenFilePerms); err != nil {
|
||||
if err := os.WriteFile(tokenPath, []byte(token), sidsTokenFilePerms); err != nil {
|
||||
return fmt.Errorf("failed to write SI token: %w", err)
|
||||
}
|
||||
return nil
|
||||
@@ -158,7 +157,7 @@ func (h *sidsHook) writeToken(dir string, token string) error {
|
||||
// is returned only for some other (e.g. disk IO) error.
|
||||
func (h *sidsHook) recoverToken(dir string) (string, error) {
|
||||
tokenPath := filepath.Join(dir, sidsTokenFile)
|
||||
token, err := ioutil.ReadFile(tokenPath)
|
||||
token, err := os.ReadFile(tokenPath)
|
||||
if err != nil {
|
||||
if !os.IsNotExist(err) {
|
||||
h.logger.Error("failed to recover SI token", "error", err)
|
||||
|
||||
@@ -8,7 +8,6 @@ package taskrunner
|
||||
|
||||
import (
|
||||
"context"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
@@ -118,7 +117,7 @@ func TestSIDSHook_writeToken(t *testing.T) {
|
||||
err := h.writeToken(secrets, id)
|
||||
r.NoError(err)
|
||||
|
||||
content, err := ioutil.ReadFile(filepath.Join(secrets, sidsTokenFile))
|
||||
content, err := os.ReadFile(filepath.Join(secrets, sidsTokenFile))
|
||||
r.NoError(err)
|
||||
r.Equal(id, string(content))
|
||||
}
|
||||
@@ -273,7 +272,7 @@ func TestTaskRunner_DeriveSIToken_UnWritableTokenFile(t *testing.T) {
|
||||
// successful token derivation
|
||||
secrets := t.TempDir()
|
||||
trConfig.TaskDir.SecretsDir = secrets
|
||||
err := ioutil.WriteFile(filepath.Join(secrets, sidsTokenFile), nil, 0400)
|
||||
err := os.WriteFile(filepath.Join(secrets, sidsTokenFile), nil, 0400)
|
||||
r.NoError(err)
|
||||
|
||||
// set a consul token for the nomad client, which is what triggers the
|
||||
@@ -306,7 +305,7 @@ func TestTaskRunner_DeriveSIToken_UnWritableTokenFile(t *testing.T) {
|
||||
|
||||
// assert the token is *not* on disk, as secrets dir was un-writable
|
||||
tokenPath := filepath.Join(trConfig.TaskDir.SecretsDir, sidsTokenFile)
|
||||
token, err := ioutil.ReadFile(tokenPath)
|
||||
token, err := os.ReadFile(tokenPath)
|
||||
r.NoError(err)
|
||||
r.Empty(token)
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@ import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"os"
|
||||
@@ -743,7 +742,7 @@ func TestTaskRunner_TaskEnv_None(t *testing.T) {
|
||||
|
||||
// Read stdout
|
||||
p := filepath.Join(conf.TaskDir.LogDir, task.Name+".stdout.0")
|
||||
stdout, err := ioutil.ReadFile(p)
|
||||
stdout, err := os.ReadFile(p)
|
||||
require.NoError(err)
|
||||
require.Equalf(exp, string(stdout), "expected: %s\n\nactual: %s\n", exp, stdout)
|
||||
}
|
||||
@@ -1161,7 +1160,7 @@ func TestTaskRunner_Dispatch_Payload(t *testing.T) {
|
||||
|
||||
// Check that the file was written to disk properly
|
||||
payloadPath := filepath.Join(tr.taskDir.LocalDir, fileName)
|
||||
data, err := ioutil.ReadFile(payloadPath)
|
||||
data, err := os.ReadFile(payloadPath)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, expected, data)
|
||||
}
|
||||
@@ -1417,7 +1416,7 @@ func TestTaskRunner_BlockForSIDSToken(t *testing.T) {
|
||||
|
||||
// assert the token is on disk
|
||||
tokenPath := filepath.Join(trConfig.TaskDir.SecretsDir, sidsTokenFile)
|
||||
data, err := ioutil.ReadFile(tokenPath)
|
||||
data, err := os.ReadFile(tokenPath)
|
||||
r.NoError(err)
|
||||
r.Equal(token, string(data))
|
||||
}
|
||||
@@ -1470,7 +1469,7 @@ func TestTaskRunner_DeriveSIToken_Retry(t *testing.T) {
|
||||
|
||||
// assert the token is on disk
|
||||
tokenPath := filepath.Join(trConfig.TaskDir.SecretsDir, sidsTokenFile)
|
||||
data, err := ioutil.ReadFile(tokenPath)
|
||||
data, err := os.ReadFile(tokenPath)
|
||||
r.NoError(err)
|
||||
r.Equal(token, string(data))
|
||||
}
|
||||
@@ -1586,7 +1585,7 @@ func TestTaskRunner_BlockForVaultToken(t *testing.T) {
|
||||
|
||||
// Check that the token is on disk
|
||||
tokenPath := filepath.Join(conf.TaskDir.SecretsDir, vaultTokenFile)
|
||||
data, err := ioutil.ReadFile(tokenPath)
|
||||
data, err := os.ReadFile(tokenPath)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, token, string(data))
|
||||
|
||||
@@ -1663,7 +1662,7 @@ func TestTaskRunner_DeriveToken_Retry(t *testing.T) {
|
||||
|
||||
// Check that the token is on disk
|
||||
tokenPath := filepath.Join(conf.TaskDir.SecretsDir, vaultTokenFile)
|
||||
data, err := ioutil.ReadFile(tokenPath)
|
||||
data, err := os.ReadFile(tokenPath)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, token, string(data))
|
||||
|
||||
|
||||
@@ -3,7 +3,6 @@ package taskrunner
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"sync"
|
||||
@@ -130,7 +129,7 @@ func (h *vaultHook) Prestart(ctx context.Context, req *interfaces.TaskPrestartRe
|
||||
// directory
|
||||
recoveredToken := ""
|
||||
h.tokenPath = filepath.Join(req.TaskDir.SecretsDir, vaultTokenFile)
|
||||
data, err := ioutil.ReadFile(h.tokenPath)
|
||||
data, err := os.ReadFile(h.tokenPath)
|
||||
if err != nil {
|
||||
if !os.IsNotExist(err) {
|
||||
return fmt.Errorf("failed to recover vault token: %v", err)
|
||||
@@ -343,7 +342,7 @@ func (h *vaultHook) deriveVaultToken() (token string, exit bool) {
|
||||
|
||||
// writeToken writes the given token to disk
|
||||
func (h *vaultHook) writeToken(token string) error {
|
||||
if err := ioutil.WriteFile(h.tokenPath, []byte(token), 0666); err != nil {
|
||||
if err := os.WriteFile(h.tokenPath, []byte(token), 0666); err != nil {
|
||||
return fmt.Errorf("failed to write vault token: %v", err)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user