mirror of https://github.com/grafana/grafana.git
Handle ioutil deprecations (#53526)
* replace ioutil.ReadFile -> os.ReadFile * replace ioutil.ReadAll -> io.ReadAll * replace ioutil.TempFile -> os.CreateTemp * replace ioutil.NopCloser -> io.NopCloser * replace ioutil.WriteFile -> os.WriteFile * replace ioutil.TempDir -> os.MkdirTemp * replace ioutil.Discard -> io.Discard
This commit is contained in:
parent
4926767737
commit
062d255124
|
|
@ -3,14 +3,13 @@ package main
|
|||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"net/http"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func hello(w http.ResponseWriter, r *http.Request) {
|
||||
body, err := ioutil.ReadAll(r.Body)
|
||||
body, err := io.ReadAll(r.Body)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,9 +11,9 @@ import (
|
|||
"bytes"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"regexp"
|
||||
"strconv"
|
||||
|
|
@ -188,7 +188,7 @@ func newNotFound(cfg *setting.Cfg) *Avatar {
|
|||
// It's safe to ignore gosec warning G304 since the variable part of the file path comes from a configuration
|
||||
// variable.
|
||||
// nolint:gosec
|
||||
if data, err := ioutil.ReadFile(path); err != nil {
|
||||
if data, err := os.ReadFile(path); err != nil {
|
||||
alog.Error("Failed to read user_profile.png", "path", path)
|
||||
} else {
|
||||
avatar.data = bytes.NewBuffer(data)
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@ import (
|
|||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
|
|
@ -77,7 +77,7 @@ func TestGetHomeDashboard(t *testing.T) {
|
|||
dash.Meta.IsHome = true
|
||||
dash.Meta.FolderTitle = "General"
|
||||
|
||||
homeDashJSON, err := ioutil.ReadFile(tc.expectedDashboardPath)
|
||||
homeDashJSON, err := os.ReadFile(tc.expectedDashboardPath)
|
||||
require.NoError(t, err, "must be able to read expected dashboard file")
|
||||
hs.Cfg.DefaultHomeDashboardPath = tc.defaultSetting
|
||||
bytes, err := simplejson.NewJson(homeDashJSON)
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ package api
|
|||
|
||||
import (
|
||||
"errors"
|
||||
"io/ioutil"
|
||||
"net/url"
|
||||
"os"
|
||||
"strings"
|
||||
|
|
@ -68,7 +67,7 @@ func logSentryEventScenario(t *testing.T, desc string, event frontendlogging.Fro
|
|||
return nil, errors.New("epic hard drive failure")
|
||||
}
|
||||
if strings.HasSuffix(path, "foo.js.map") {
|
||||
f, err := ioutil.ReadFile("./frontendlogging/test-data/foo.js.map")
|
||||
f, err := os.ReadFile("./frontendlogging/test-data/foo.js.map")
|
||||
require.NoError(t, err)
|
||||
return f, nil
|
||||
}
|
||||
|
|
@ -140,7 +139,7 @@ func logGrafanaJavascriptAgentEventScenario(t *testing.T, desc string, event fro
|
|||
return nil, errors.New("epic hard drive failure")
|
||||
}
|
||||
if strings.HasSuffix(path, "foo.js.map") {
|
||||
f, err := ioutil.ReadFile("./frontendlogging/test-data/foo.js.map")
|
||||
f, err := os.ReadFile("./frontendlogging/test-data/foo.js.map")
|
||||
require.NoError(t, err)
|
||||
return f, nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package frontendlogging
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"os"
|
||||
|
|
@ -39,7 +39,7 @@ func ReadSourceMapFromFS(dir string, path string) ([]byte, error) {
|
|||
logger.Error("Failed to close source map file", "err", err)
|
||||
}
|
||||
}()
|
||||
return ioutil.ReadAll(file)
|
||||
return io.ReadAll(file)
|
||||
}
|
||||
|
||||
type SourceMapStore struct {
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ import (
|
|||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"strings"
|
||||
|
|
@ -61,7 +60,7 @@ func fakeViewIndex(t *testing.T) {
|
|||
}
|
||||
|
||||
func getBody(resp *httptest.ResponseRecorder) (string, error) {
|
||||
responseData, err := ioutil.ReadAll(resp.Body)
|
||||
responseData, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import (
|
|||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"net/http"
|
||||
"testing"
|
||||
|
||||
|
|
@ -89,7 +89,7 @@ func TestGetPluginDashboards(t *testing.T) {
|
|||
resp, err := sendGetPluginDashboardsRequestForSignedInUser(t, s, existingPluginID, user)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, http.StatusOK, resp.StatusCode)
|
||||
bytes, err := ioutil.ReadAll(resp.Body)
|
||||
bytes, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.NoError(t, resp.Body.Close())
|
||||
var listResp []*plugindashboards.PluginDashboard
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package api
|
|||
|
||||
import (
|
||||
"context"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"net/http"
|
||||
"testing"
|
||||
|
||||
|
|
@ -39,7 +39,7 @@ func TestPluginMetricsEndpoint(t *testing.T) {
|
|||
require.NoError(t, err)
|
||||
require.NotNil(t, resp)
|
||||
|
||||
body, err := ioutil.ReadAll(resp.Body)
|
||||
body, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "http_errors=2", string(body))
|
||||
require.NoError(t, resp.Body.Close())
|
||||
|
|
@ -53,7 +53,7 @@ func TestPluginMetricsEndpoint(t *testing.T) {
|
|||
require.NoError(t, err)
|
||||
require.NotNil(t, resp)
|
||||
|
||||
body, err := ioutil.ReadAll(resp.Body)
|
||||
body, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.Empty(t, string(body))
|
||||
require.NoError(t, resp.Body.Close())
|
||||
|
|
@ -106,7 +106,7 @@ func TestPluginMetricsEndpoint(t *testing.T) {
|
|||
require.NoError(t, err)
|
||||
require.NotNil(t, resp)
|
||||
|
||||
body, err := ioutil.ReadAll(resp.Body)
|
||||
body, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "http_errors=2", string(body))
|
||||
require.NoError(t, resp.Body.Close())
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ import (
|
|||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"sync"
|
||||
|
|
@ -121,7 +120,7 @@ func (hs *HTTPServer) makePluginResourceRequest(w http.ResponseWriter, req *http
|
|||
proxyutil.ClearCookieHeader(req, keepCookieModel.KeepCookies)
|
||||
proxyutil.PrepareProxyRequest(req)
|
||||
|
||||
body, err := ioutil.ReadAll(req.Body)
|
||||
body, err := io.ReadAll(req.Body)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to read request body: %w", err)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import (
|
|||
"bytes"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"strconv"
|
||||
|
|
@ -106,7 +106,7 @@ func (proxy *DataSourceProxy) HandleRequest() {
|
|||
modifyResponse := func(resp *http.Response) error {
|
||||
if resp.StatusCode == 401 {
|
||||
// The data source rejected the request as unauthorized, convert to 400 (bad request)
|
||||
body, err := ioutil.ReadAll(resp.Body)
|
||||
body, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to read data source response body: %w", err)
|
||||
}
|
||||
|
|
@ -118,7 +118,7 @@ func (proxy *DataSourceProxy) HandleRequest() {
|
|||
*resp = http.Response{
|
||||
StatusCode: 400,
|
||||
Status: "Bad Request",
|
||||
Body: ioutil.NopCloser(strings.NewReader(msg)),
|
||||
Body: io.NopCloser(strings.NewReader(msg)),
|
||||
ContentLength: int64(len(msg)),
|
||||
Header: http.Header{},
|
||||
}
|
||||
|
|
@ -324,9 +324,9 @@ func (proxy *DataSourceProxy) logRequest() {
|
|||
|
||||
var body string
|
||||
if proxy.ctx.Req.Body != nil {
|
||||
buffer, err := ioutil.ReadAll(proxy.ctx.Req.Body)
|
||||
buffer, err := io.ReadAll(proxy.ctx.Req.Body)
|
||||
if err == nil {
|
||||
proxy.ctx.Req.Body = ioutil.NopCloser(bytes.NewBuffer(buffer))
|
||||
proxy.ctx.Req.Body = io.NopCloser(bytes.NewBuffer(buffer))
|
||||
body = string(buffer)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,10 +5,11 @@ import (
|
|||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"net/url"
|
||||
"os"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
|
|
@ -176,7 +177,7 @@ func TestDataSourceProxy_routeRule(t *testing.T) {
|
|||
proxy.matchedRoute = routes[5]
|
||||
ApplyRoute(proxy.ctx.Req.Context(), req, proxy.proxyPath, proxy.matchedRoute, dsInfo, cfg)
|
||||
|
||||
content, err := ioutil.ReadAll(req.Body)
|
||||
content, err := io.ReadAll(req.Body)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, `{ "url": "https://dynamic.grafana.com", "secret": "123" }`, string(content))
|
||||
})
|
||||
|
|
@ -275,7 +276,7 @@ func TestDataSourceProxy_routeRule(t *testing.T) {
|
|||
var authorizationHeaderCall2 string
|
||||
|
||||
t.Run("first call should add authorization header with access token", func(t *testing.T) {
|
||||
json, err := ioutil.ReadFile("./test-data/access-token-1.json")
|
||||
json, err := os.ReadFile("./test-data/access-token-1.json")
|
||||
require.NoError(t, err)
|
||||
|
||||
originalClient := client
|
||||
|
|
@ -303,7 +304,7 @@ func TestDataSourceProxy_routeRule(t *testing.T) {
|
|||
assert.True(t, strings.HasPrefix(authorizationHeaderCall1, "Bearer eyJ0e"))
|
||||
|
||||
t.Run("second call to another route should add a different access token", func(t *testing.T) {
|
||||
json2, err := ioutil.ReadFile("./test-data/access-token-2.json")
|
||||
json2, err := os.ReadFile("./test-data/access-token-2.json")
|
||||
require.NoError(t, err)
|
||||
|
||||
req, err := http.NewRequest("GET", "http://localhost/asd", nil)
|
||||
|
|
@ -887,7 +888,7 @@ func (c *httpClientStub) Do(req *http.Request) (*http.Response, error) {
|
|||
body, err := bodyJSON.MarshalJSON()
|
||||
require.NoError(c.t, err)
|
||||
resp := &http.Response{
|
||||
Body: ioutil.NopCloser(bytes.NewReader(body)),
|
||||
Body: io.NopCloser(bytes.NewReader(body)),
|
||||
}
|
||||
|
||||
return resp, nil
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package pluginproxy
|
|||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"net/http"
|
||||
"net/http/httputil"
|
||||
"net/url"
|
||||
|
|
@ -107,9 +107,9 @@ func logAppPluginProxyRequest(appID string, cfg *setting.Cfg, c *models.ReqConte
|
|||
|
||||
var body string
|
||||
if c.Req.Body != nil {
|
||||
buffer, err := ioutil.ReadAll(c.Req.Body)
|
||||
buffer, err := io.ReadAll(c.Req.Body)
|
||||
if err == nil {
|
||||
c.Req.Body = ioutil.NopCloser(bytes.NewBuffer(buffer))
|
||||
c.Req.Body = io.NopCloser(bytes.NewBuffer(buffer))
|
||||
body = string(buffer)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package pluginproxy
|
|||
|
||||
import (
|
||||
"context"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"testing"
|
||||
|
|
@ -241,7 +241,7 @@ func TestPluginProxy(t *testing.T) {
|
|||
route,
|
||||
store,
|
||||
)
|
||||
content, err := ioutil.ReadAll(req.Body)
|
||||
content, err := io.ReadAll(req.Body)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, `{ "url": "https://dynamic.grafana.com", "secret": "123" }`, string(content))
|
||||
})
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package pluginproxy
|
|||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"net/http"
|
||||
"strings"
|
||||
"text/template"
|
||||
|
|
@ -78,7 +78,7 @@ func setBodyContent(req *http.Request, route *plugins.Route, data templateData)
|
|||
return err
|
||||
}
|
||||
|
||||
req.Body = ioutil.NopCloser(strings.NewReader(interpolatedBody))
|
||||
req.Body = io.NopCloser(strings.NewReader(interpolatedBody))
|
||||
req.ContentLength = int64(len(interpolatedBody))
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ import (
|
|||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"os"
|
||||
"path"
|
||||
|
|
@ -466,7 +465,7 @@ func (hs *HTTPServer) pluginMarkdown(ctx context.Context, pluginId string, name
|
|||
// nolint:gosec
|
||||
// We can ignore the gosec G304 warning since we have cleaned the requested file path and subsequently
|
||||
// use this with a prefix of the plugin's directory, which is set during plugin loading
|
||||
data, err := ioutil.ReadFile(path)
|
||||
data, err := os.ReadFile(path)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ import (
|
|||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"os"
|
||||
|
|
@ -101,9 +100,9 @@ func Test_PluginsInstallAndUninstall(t *testing.T) {
|
|||
func Test_GetPluginAssets(t *testing.T) {
|
||||
pluginID := "test-plugin"
|
||||
pluginDir := "."
|
||||
tmpFile, err := ioutil.TempFile(pluginDir, "")
|
||||
tmpFile, err := os.CreateTemp(pluginDir, "")
|
||||
require.NoError(t, err)
|
||||
tmpFileInParentDir, err := ioutil.TempFile("..", "")
|
||||
tmpFileInParentDir, err := os.CreateTemp("..", "")
|
||||
require.NoError(t, err)
|
||||
t.Cleanup(func() {
|
||||
err := os.RemoveAll(tmpFile.Name())
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package api
|
|||
|
||||
import (
|
||||
"encoding/json"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"net/http"
|
||||
"strings"
|
||||
"testing"
|
||||
|
|
@ -60,7 +60,7 @@ func TestAPIEndpoint_GetCurrentOrgPreferences_LegacyAccessControl(t *testing.T)
|
|||
response := callAPI(sc.server, http.MethodGet, getOrgPreferencesURL, nil, t)
|
||||
assert.Equal(t, http.StatusOK, response.Code)
|
||||
var resp map[string]interface{}
|
||||
b, err := ioutil.ReadAll(response.Body)
|
||||
b, err := io.ReadAll(response.Body)
|
||||
assert.NoError(t, err)
|
||||
assert.NoError(t, json.Unmarshal(b, &resp))
|
||||
assert.Equal(t, "home", resp["homeDashboardUID"])
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ import (
|
|||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
|
@ -103,7 +102,7 @@ func shortenBuildID(buildID string) string {
|
|||
func GetGrafanaVersion(buildID, grafanaDir string) (string, error) {
|
||||
pkgJSONPath := filepath.Join(grafanaDir, "package.json")
|
||||
//nolint:gosec
|
||||
pkgJSONB, err := ioutil.ReadFile(pkgJSONPath)
|
||||
pkgJSONB, err := os.ReadFile(pkgJSONPath)
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("failed to read %q: %w", pkgJSONPath, err)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ import (
|
|||
"crypto/md5"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
)
|
||||
|
|
@ -28,7 +27,7 @@ func MD5File(fpath string) error {
|
|||
}
|
||||
|
||||
// nolint:gosec
|
||||
if err := ioutil.WriteFile(fpath+".md5", []byte(fmt.Sprintf("%x\n", h.Sum(nil))), 0664); err != nil {
|
||||
if err := os.WriteFile(fpath+".md5", []byte(fmt.Sprintf("%x\n", h.Sum(nil))), 0664); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ import (
|
|||
"encoding/hex"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
"os/exec"
|
||||
|
|
@ -20,7 +19,7 @@ func verifyArchive(archive string) error {
|
|||
log.Printf("Verifying checksum of %q", archive)
|
||||
|
||||
//nolint:gosec
|
||||
shaB, err := ioutil.ReadFile(archive + ".sha256")
|
||||
shaB, err := os.ReadFile(archive + ".sha256")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ import (
|
|||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
|
|
@ -54,7 +53,7 @@ func Download(ctx context.Context, grafanaDir string, p syncutil.WorkerPool) err
|
|||
var m pluginsManifest
|
||||
manifestPath := filepath.Join(grafanaDir, "plugins-bundled", "external.json")
|
||||
//nolint:gosec
|
||||
manifestB, err := ioutil.ReadFile(manifestPath)
|
||||
manifestB, err := os.ReadFile(manifestPath)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to open plugins manifest %q: %w", manifestPath, err)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ import (
|
|||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
|
|
@ -105,7 +104,7 @@ func BuildManifest(ctx context.Context, dpath string, signingAdmin bool) error {
|
|||
}
|
||||
}()
|
||||
if resp.StatusCode != 200 {
|
||||
msg, err := ioutil.ReadAll(resp.Body)
|
||||
msg, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
log.Printf("Failed to read response body: %s", err)
|
||||
msg = []byte("")
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ import (
|
|||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"os"
|
||||
|
|
@ -142,7 +141,7 @@ func sendRequestGetBytes(client http.Client, repoUrl string, subPaths ...string)
|
|||
logger.Warn("Failed to close stream", "err", err)
|
||||
}
|
||||
}()
|
||||
return ioutil.ReadAll(bodyReader)
|
||||
return io.ReadAll(bodyReader)
|
||||
}
|
||||
|
||||
func sendRequest(client http.Client, repoUrl string, subPaths ...string) (io.ReadCloser, error) {
|
||||
|
|
@ -191,7 +190,7 @@ func handleResponse(res *http.Response) (io.ReadCloser, error) {
|
|||
}
|
||||
|
||||
if res.StatusCode/100 == 4 {
|
||||
body, err := ioutil.ReadAll(res.Body)
|
||||
body, err := io.ReadAll(res.Body)
|
||||
defer func() {
|
||||
if err := res.Body.Close(); err != nil {
|
||||
logger.Warn("Failed to close response body", "err", err)
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ import (
|
|||
"bytes"
|
||||
"errors"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"testing"
|
||||
|
||||
|
|
@ -19,7 +18,7 @@ func TestHandleResponse(t *testing.T) {
|
|||
resp := makeResponse(t, 200, "test")
|
||||
bodyReader, err := handleResponse(resp)
|
||||
require.NoError(t, err)
|
||||
body, err := ioutil.ReadAll(bodyReader)
|
||||
body, err := io.ReadAll(bodyReader)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, "test", string(body))
|
||||
})
|
||||
|
|
@ -81,7 +80,7 @@ func makeResponse(t *testing.T, status int, body string) *http.Response {
|
|||
func makeBody(t *testing.T, body string) io.ReadCloser {
|
||||
t.Helper()
|
||||
|
||||
reader := ioutil.NopCloser(bytes.NewReader([]byte(body)))
|
||||
reader := io.NopCloser(bytes.NewReader([]byte(body)))
|
||||
t.Cleanup(func() {
|
||||
err := reader.Close()
|
||||
assert.NoError(t, err)
|
||||
|
|
|
|||
|
|
@ -25,5 +25,5 @@ func (i IoUtilImp) ReadFile(filename string) ([]byte, error) {
|
|||
// from command line flag "pluginsDir". If the user shouldn't be reading from this directory, they shouldn't have
|
||||
// the permission in the file system.
|
||||
// nolint:gosec
|
||||
return ioutil.ReadFile(filename)
|
||||
return os.ReadFile(filename)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import (
|
|||
"go/format"
|
||||
"go/parser"
|
||||
"go/token"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"regexp"
|
||||
|
|
@ -79,7 +79,7 @@ func ExtractLineage(path string, lib thema.Library) (*ExtractedLineage, error) {
|
|||
return nil, fmt.Errorf("could not open lineage file at %s: %w", path, err)
|
||||
}
|
||||
|
||||
byt, err := ioutil.ReadAll(f)
|
||||
byt, err := io.ReadAll(f)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ import (
|
|||
"encoding/xml"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"mime"
|
||||
"net/http"
|
||||
"net/url"
|
||||
|
|
@ -77,7 +76,7 @@ func (az *AzureBlobUploader) Upload(ctx context.Context, imageDiskPath string) (
|
|||
}()
|
||||
|
||||
if resp.StatusCode > 400 && resp.StatusCode < 600 {
|
||||
body, err := ioutil.ReadAll(io.LimitReader(resp.Body, 1<<20))
|
||||
body, err := io.ReadAll(io.LimitReader(resp.Body, 1<<20))
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
|
@ -256,14 +255,15 @@ func tryget(headers map[string][]string, key string) string {
|
|||
|
||||
/*
|
||||
Based on Azure docs:
|
||||
Link: http://msdn.microsoft.com/en-us/library/windowsazure/dd179428.aspx#Constructing_Element
|
||||
|
||||
1) Retrieve all headers for the resource that begin with x-ms-, including the x-ms-date header.
|
||||
2) Convert each HTTP header name to lowercase.
|
||||
3) Sort the headers lexicographically by header name, in ascending order. Note that each header may appear only once in the string.
|
||||
4) Unfold the string by replacing any breaking white space with a single space.
|
||||
5) Trim any white space around the colon in the header.
|
||||
6) Finally, append a new line character to each canonicalized header in the resulting list. Construct the CanonicalizedHeaders string by concatenating all headers in this list into a single string.
|
||||
Link: http://msdn.microsoft.com/en-us/library/windowsazure/dd179428.aspx#Constructing_Element
|
||||
|
||||
1) Retrieve all headers for the resource that begin with x-ms-, including the x-ms-date header.
|
||||
2) Convert each HTTP header name to lowercase.
|
||||
3) Sort the headers lexicographically by header name, in ascending order. Note that each header may appear only once in the string.
|
||||
4) Unfold the string by replacing any breaking white space with a single space.
|
||||
5) Trim any white space around the colon in the header.
|
||||
6) Finally, append a new line character to each canonicalized header in the resulting list. Construct the CanonicalizedHeaders string by concatenating all headers in this list into a single string.
|
||||
*/
|
||||
func (a *Auth) canonicalizedHeaders(req *http.Request) string {
|
||||
var buffer bytes.Buffer
|
||||
|
|
@ -288,25 +288,26 @@ func (a *Auth) canonicalizedHeaders(req *http.Request) string {
|
|||
|
||||
/*
|
||||
Based on Azure docs
|
||||
Link: http://msdn.microsoft.com/en-us/library/windowsazure/dd179428.aspx#Constructing_Element
|
||||
|
||||
1) Beginning with an empty string (""), append a forward slash (/), followed by the name of the account that owns the resource being accessed.
|
||||
2) Append the resource's encoded URI path, without any query parameters.
|
||||
3) Retrieve all query parameters on the resource URI, including the comp parameter if it exists.
|
||||
4) Convert all parameter names to lowercase.
|
||||
5) Sort the query parameters lexicographically by parameter name, in ascending order.
|
||||
6) URL-decode each query parameter name and value.
|
||||
7) Append each query parameter name and value to the string in the following format, making sure to include the colon (:) between the name and the value:
|
||||
parameter-name:parameter-value
|
||||
Link: http://msdn.microsoft.com/en-us/library/windowsazure/dd179428.aspx#Constructing_Element
|
||||
|
||||
8) If a query parameter has more than one value, sort all values lexicographically, then include them in a comma-separated list:
|
||||
parameter-name:parameter-value-1,parameter-value-2,parameter-value-n
|
||||
1. Beginning with an empty string (""), append a forward slash (/), followed by the name of the account that owns the resource being accessed.
|
||||
2. Append the resource's encoded URI path, without any query parameters.
|
||||
3. Retrieve all query parameters on the resource URI, including the comp parameter if it exists.
|
||||
4. Convert all parameter names to lowercase.
|
||||
5. Sort the query parameters lexicographically by parameter name, in ascending order.
|
||||
6. URL-decode each query parameter name and value.
|
||||
7. Append each query parameter name and value to the string in the following format, making sure to include the colon (:) between the name and the value:
|
||||
parameter-name:parameter-value
|
||||
|
||||
8. If a query parameter has more than one value, sort all values lexicographically, then include them in a comma-separated list:
|
||||
parameter-name:parameter-value-1,parameter-value-2,parameter-value-n
|
||||
|
||||
9) Append a new line character (\n) after each name-value pair.
|
||||
|
||||
Rules:
|
||||
1) Avoid using the new line character (\n) in values for query parameters. If it must be used, ensure that it does not affect the format of the canonicalized resource string.
|
||||
2) Avoid using commas in query parameter values.
|
||||
1. Avoid using the new line character (\n) in values for query parameters. If it must be used, ensure that it does not affect the format of the canonicalized resource string.
|
||||
2. Avoid using commas in query parameter values.
|
||||
*/
|
||||
func (a *Auth) canonicalizedResource(req *http.Request) string {
|
||||
var buffer bytes.Buffer
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ import (
|
|||
"context"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path"
|
||||
"path/filepath"
|
||||
|
|
@ -75,7 +74,7 @@ func (u *Uploader) Upload(ctx context.Context, imageDiskPath string) (string, er
|
|||
var keyData []byte
|
||||
if u.KeyFile != "" {
|
||||
u.log.Debug("Opening key file ", u.KeyFile)
|
||||
keyData, err = ioutil.ReadFile(u.KeyFile)
|
||||
keyData, err = os.ReadFile(u.KeyFile)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import (
|
|||
"bytes"
|
||||
"context"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
"time"
|
||||
|
|
@ -115,7 +115,7 @@ func TestUploadToGCS_DefaultCredentials(t *testing.T) {
|
|||
content := []byte("test\n")
|
||||
tmpDir := t.TempDir()
|
||||
fpath := filepath.Join(tmpDir, "test.png")
|
||||
err := ioutil.WriteFile(fpath, content, 0600)
|
||||
err := os.WriteFile(fpath, content, 0600)
|
||||
require.NoError(t, err)
|
||||
|
||||
t.Run("Without signed URL", func(t *testing.T) {
|
||||
|
|
|
|||
|
|
@ -4,10 +4,11 @@ import (
|
|||
"bytes"
|
||||
"context"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"net"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"os"
|
||||
"path"
|
||||
"strings"
|
||||
"time"
|
||||
|
|
@ -58,7 +59,7 @@ func (u *WebdavUploader) Upload(ctx context.Context, imgToUpload string) (string
|
|||
// We can ignore the gosec G304 warning on this one because `imgToUpload` comes
|
||||
// from alert notifiers and is only used to upload images generated by alerting.
|
||||
// nolint:gosec
|
||||
imgData, err := ioutil.ReadFile(imgToUpload)
|
||||
imgData, err := os.ReadFile(imgToUpload)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
|
@ -85,7 +86,7 @@ func (u *WebdavUploader) Upload(ctx context.Context, imgToUpload string) (string
|
|||
}()
|
||||
|
||||
if res.StatusCode != http.StatusCreated {
|
||||
body, err := ioutil.ReadAll(res.Body)
|
||||
body, err := io.ReadAll(res.Body)
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("failed to read response body: %w", err)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ import (
|
|||
"context"
|
||||
"encoding/base64"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path"
|
||||
"testing"
|
||||
|
|
@ -87,7 +86,7 @@ func runTests(createCases func() []fsTestCase, t *testing.T) {
|
|||
|
||||
setupLocalFs := func() {
|
||||
commonSetup()
|
||||
tmpDir, err := ioutil.TempDir("", "")
|
||||
tmpDir, err := os.MkdirTemp("", "")
|
||||
tempDir = tmpDir
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
|
|
@ -102,7 +101,7 @@ func runTests(createCases func() []fsTestCase, t *testing.T) {
|
|||
|
||||
setupLocalFsNestedPath := func() {
|
||||
commonSetup()
|
||||
tmpDir, err := ioutil.TempDir("", "")
|
||||
tmpDir, err := os.MkdirTemp("", "")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
package fs
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
|
@ -12,16 +11,16 @@ import (
|
|||
)
|
||||
|
||||
func TestCopyFile(t *testing.T) {
|
||||
src, err := ioutil.TempFile("", "")
|
||||
src, err := os.CreateTemp("", "")
|
||||
require.NoError(t, err)
|
||||
t.Cleanup(func() {
|
||||
err := os.RemoveAll(src.Name())
|
||||
assert.NoError(t, err)
|
||||
})
|
||||
err = ioutil.WriteFile(src.Name(), []byte("Contents"), 0600)
|
||||
err = os.WriteFile(src.Name(), []byte("Contents"), 0600)
|
||||
require.NoError(t, err)
|
||||
|
||||
dst, err := ioutil.TempFile("", "")
|
||||
dst, err := os.CreateTemp("", "")
|
||||
require.NoError(t, err)
|
||||
t.Cleanup(func() {
|
||||
err := os.RemoveAll(dst.Name())
|
||||
|
|
@ -35,18 +34,18 @@ func TestCopyFile(t *testing.T) {
|
|||
func TestCopyFile_Permissions(t *testing.T) {
|
||||
const perms = os.FileMode(0700)
|
||||
|
||||
src, err := ioutil.TempFile("", "")
|
||||
src, err := os.CreateTemp("", "")
|
||||
require.NoError(t, err)
|
||||
t.Cleanup(func() {
|
||||
err := os.RemoveAll(src.Name())
|
||||
assert.NoError(t, err)
|
||||
})
|
||||
err = ioutil.WriteFile(src.Name(), []byte("Contents"), 0600)
|
||||
err = os.WriteFile(src.Name(), []byte("Contents"), 0600)
|
||||
require.NoError(t, err)
|
||||
err = os.Chmod(src.Name(), perms)
|
||||
require.NoError(t, err)
|
||||
|
||||
dst, err := ioutil.TempFile("", "")
|
||||
dst, err := os.CreateTemp("", "")
|
||||
require.NoError(t, err)
|
||||
t.Cleanup(func() {
|
||||
err := os.RemoveAll(dst.Name())
|
||||
|
|
@ -65,7 +64,7 @@ func TestCopyFile_Permissions(t *testing.T) {
|
|||
// Test case where destination directory doesn't exist.
|
||||
func TestCopyFile_NonExistentDestDir(t *testing.T) {
|
||||
// nolint:gosec
|
||||
src, err := ioutil.TempFile("", "")
|
||||
src, err := os.CreateTemp("", "")
|
||||
require.NoError(t, err)
|
||||
t.Cleanup(func() {
|
||||
err := os.RemoveAll(src.Name())
|
||||
|
|
@ -82,7 +81,7 @@ func TestCopyRecursive_NonExistentDest(t *testing.T) {
|
|||
err := os.MkdirAll(filepath.Join(src, "data"), 0750)
|
||||
require.NoError(t, err)
|
||||
// nolint:gosec
|
||||
err = ioutil.WriteFile(filepath.Join(src, "data", "file.txt"), []byte("Test"), 0644)
|
||||
err = os.WriteFile(filepath.Join(src, "data", "file.txt"), []byte("Test"), 0644)
|
||||
require.NoError(t, err)
|
||||
|
||||
dstParent := t.TempDir()
|
||||
|
|
@ -101,7 +100,7 @@ func TestCopyRecursive_ExistentDest(t *testing.T) {
|
|||
err := os.MkdirAll(filepath.Join(src, "data"), 0750)
|
||||
require.NoError(t, err)
|
||||
// nolint:gosec
|
||||
err = ioutil.WriteFile(filepath.Join(src, "data", "file.txt"), []byte("Test"), 0644)
|
||||
err = os.WriteFile(filepath.Join(src, "data", "file.txt"), []byte("Test"), 0644)
|
||||
require.NoError(t, err)
|
||||
|
||||
dst := t.TempDir()
|
||||
|
|
@ -139,10 +138,10 @@ func compareDirs(t *testing.T, src, dst string) {
|
|||
}
|
||||
|
||||
// nolint:gosec
|
||||
srcData, err := ioutil.ReadFile(srcPath)
|
||||
srcData, err := os.ReadFile(srcPath)
|
||||
require.NoError(t, err)
|
||||
// nolint:gosec
|
||||
dstData, err := ioutil.ReadFile(dstPath)
|
||||
dstData, err := os.ReadFile(dstPath)
|
||||
require.NoError(t, err)
|
||||
|
||||
require.Equal(t, srcData, dstData)
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
package fs
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
|
|
@ -17,7 +16,7 @@ func TestExists_NonExistent(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestExists_Existent(t *testing.T) {
|
||||
f, err := ioutil.TempFile("", "")
|
||||
f, err := os.CreateTemp("", "")
|
||||
require.NoError(t, err)
|
||||
t.Cleanup(func() {
|
||||
err := os.Remove(f.Name())
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package httpclient
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
|
|
@ -20,14 +20,14 @@ func TestCountBytesReader(t *testing.T) {
|
|||
|
||||
for index, tc := range tcs {
|
||||
t.Run(fmt.Sprintf("Test CountBytesReader %d", index), func(t *testing.T) {
|
||||
body := ioutil.NopCloser(strings.NewReader(tc.body))
|
||||
body := io.NopCloser(strings.NewReader(tc.body))
|
||||
var actualBytesRead int64
|
||||
|
||||
readCloser := CountBytesReader(body, func(bytesRead int64) {
|
||||
actualBytesRead = bytesRead
|
||||
})
|
||||
|
||||
bodyBytes, err := ioutil.ReadAll(readCloser)
|
||||
bodyBytes, err := io.ReadAll(readCloser)
|
||||
require.NoError(t, err)
|
||||
err = readCloser.Close()
|
||||
require.NoError(t, err)
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import (
|
|||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"net/http"
|
||||
"strings"
|
||||
"testing"
|
||||
|
|
@ -27,7 +27,7 @@ func TestResponseLimitMiddleware(t *testing.T) {
|
|||
for _, tc := range tcs {
|
||||
t.Run(fmt.Sprintf("Test ResponseLimitMiddleware with limit: %d", tc.limit), func(t *testing.T) {
|
||||
finalRoundTripper := httpclient.RoundTripperFunc(func(req *http.Request) (*http.Response, error) {
|
||||
return &http.Response{StatusCode: http.StatusOK, Request: req, Body: ioutil.NopCloser(strings.NewReader("dummy"))}, nil
|
||||
return &http.Response{StatusCode: http.StatusOK, Request: req, Body: io.NopCloser(strings.NewReader("dummy"))}, nil
|
||||
})
|
||||
|
||||
mw := ResponseLimitMiddleware(tc.limit)
|
||||
|
|
@ -46,7 +46,7 @@ func TestResponseLimitMiddleware(t *testing.T) {
|
|||
require.NotNil(t, res.Body)
|
||||
require.NoError(t, res.Body.Close())
|
||||
|
||||
bodyBytes, err := ioutil.ReadAll(res.Body)
|
||||
bodyBytes, err := io.ReadAll(res.Body)
|
||||
if err != nil {
|
||||
require.EqualError(t, tc.err, err.Error())
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package httpclientprovider
|
|||
|
||||
import (
|
||||
"bytes"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"net/http"
|
||||
|
||||
"github.com/grafana/grafana-plugin-sdk-go/backend/httpclient"
|
||||
|
|
@ -18,7 +18,7 @@ func (c *testContext) createRoundTripper(name string) http.RoundTripper {
|
|||
return &http.Response{
|
||||
StatusCode: http.StatusOK,
|
||||
Request: req,
|
||||
Body: ioutil.NopCloser(bytes.NewBufferString("")),
|
||||
Body: io.NopCloser(bytes.NewBufferString("")),
|
||||
}, nil
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package httpclient
|
|||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
|
|
@ -23,10 +23,10 @@ func TestMaxBytesReader(t *testing.T) {
|
|||
}
|
||||
for _, tc := range tcs {
|
||||
t.Run(fmt.Sprintf("Test MaxBytesReader with limit: %d", tc.limit), func(t *testing.T) {
|
||||
body := ioutil.NopCloser(strings.NewReader("dummy"))
|
||||
body := io.NopCloser(strings.NewReader("dummy"))
|
||||
readCloser := MaxBytesReader(body, tc.limit)
|
||||
|
||||
bodyBytes, err := ioutil.ReadAll(readCloser)
|
||||
bodyBytes, err := io.ReadAll(readCloser)
|
||||
if err != nil {
|
||||
require.EqualError(t, tc.err, err.Error())
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ package log
|
|||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"sort"
|
||||
|
|
@ -46,7 +45,7 @@ func init() {
|
|||
|
||||
// Use discard by default
|
||||
format := func(w io.Writer) gokitlog.Logger {
|
||||
return gokitlog.NewLogfmtLogger(gokitlog.NewSyncWriter(ioutil.Discard))
|
||||
return gokitlog.NewLogfmtLogger(gokitlog.NewSyncWriter(io.Discard))
|
||||
}
|
||||
logger := level.NewFilter(format(os.Stderr), level.AllowInfo())
|
||||
root = newManager(logger)
|
||||
|
|
@ -205,9 +204,12 @@ func (cl *ConcreteLogger) New(ctx ...interface{}) *ConcreteLogger {
|
|||
// name plus additional contextual information, you must use the
|
||||
// Logger interface New method for it to work as expected.
|
||||
// Example creating a shared logger:
|
||||
// requestLogger := log.New("request-logger")
|
||||
//
|
||||
// requestLogger := log.New("request-logger")
|
||||
//
|
||||
// Example creating a contextual logger:
|
||||
// contextualLogger := requestLogger.New("username", "user123")
|
||||
//
|
||||
// contextualLogger := requestLogger.New("username", "user123")
|
||||
func New(ctx ...interface{}) *ConcreteLogger {
|
||||
if len(ctx) == 0 {
|
||||
return root.New()
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import (
|
|||
"context"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"runtime"
|
||||
|
|
@ -84,7 +84,7 @@ func TestMetrics(t *testing.T) {
|
|||
ch := make(chan httpResp)
|
||||
ticker := time.NewTicker(2 * time.Second)
|
||||
ts := httptest.NewServer(http.HandlerFunc(func(rw http.ResponseWriter, r *http.Request) {
|
||||
buf, err := ioutil.ReadAll(r.Body)
|
||||
buf, err := io.ReadAll(r.Body)
|
||||
if err != nil {
|
||||
t.Logf("Fake HTTP handler received an error: %s", err.Error())
|
||||
ch <- httpResp{
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package statscollector
|
|||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"net/http"
|
||||
"time"
|
||||
|
||||
|
|
@ -107,7 +107,7 @@ func (s *Service) detectPrometheusVariant(ctx context.Context, ds *datasources.D
|
|||
return "unknown", nil
|
||||
}
|
||||
|
||||
body, err := ioutil.ReadAll(resp.Body)
|
||||
body, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
s.log.Error("Failed to read Prometheus build info", "error", err)
|
||||
return "", err
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import (
|
|||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
|
|
@ -54,7 +54,7 @@ func (s *SocialBase) httpGet(client *http.Client, url string) (response httpGetR
|
|||
}
|
||||
}()
|
||||
|
||||
body, err := ioutil.ReadAll(r.Body)
|
||||
body, err := io.ReadAll(r.Body)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import (
|
|||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"net/http"
|
||||
"net/mail"
|
||||
"regexp"
|
||||
|
|
@ -259,7 +259,7 @@ func (s *SocialGenericOAuth) extractFromToken(token *oauth2.Token) *UserInfoJson
|
|||
s.log.Warn("Failed closing zlib reader", "error", err)
|
||||
}
|
||||
}()
|
||||
rawJSON, err = ioutil.ReadAll(fr)
|
||||
rawJSON, err = io.ReadAll(fr)
|
||||
if err != nil {
|
||||
s.log.Error("Error decompressing payload", "error", err)
|
||||
return nil
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@ import (
|
|||
"crypto/x509"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"context"
|
||||
|
|
@ -388,7 +388,7 @@ func (ss *SocialService) GetOAuthHttpClient(name string) (*http.Client, error) {
|
|||
}
|
||||
|
||||
if info.TlsClientCa != "" {
|
||||
caCert, err := ioutil.ReadFile(info.TlsClientCa)
|
||||
caCert, err := os.ReadFile(info.TlsClientCa)
|
||||
if err != nil {
|
||||
logger.Error("Failed to setup TlsClientCa", "oauth", name, "error", err)
|
||||
return nil, fmt.Errorf("failed to setup TlsClientCa: %w", err)
|
||||
|
|
|
|||
|
|
@ -19,8 +19,8 @@ import (
|
|||
"bytes"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"os"
|
||||
"runtime"
|
||||
|
||||
"github.com/grafana/grafana/pkg/infra/log"
|
||||
|
|
@ -54,7 +54,7 @@ func stack(skip int) []byte {
|
|||
// We can ignore the gosec G304 warning on this one because `file`
|
||||
// comes from the runtime.Caller() function.
|
||||
// nolint:gosec
|
||||
data, err := ioutil.ReadFile(file)
|
||||
data, err := os.ReadFile(file)
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ package grpcplugin
|
|||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
|
||||
glog "github.com/grafana/grafana/pkg/infra/log"
|
||||
|
|
@ -159,5 +158,5 @@ func (lw logWrapper) StandardLogger(ops *hclog.StandardLoggerOptions) *log.Logge
|
|||
|
||||
// Return a value that conforms to io.Writer, which can be passed into log.SetOutput()
|
||||
func (lw logWrapper) StandardWriter(opts *hclog.StandardLoggerOptions) io.Writer {
|
||||
return ioutil.Discard
|
||||
return io.Discard
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@ import (
|
|||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"net"
|
||||
"net/http"
|
||||
"net/url"
|
||||
|
|
@ -125,7 +124,7 @@ func (i *Installer) Install(ctx context.Context, pluginID, version, pluginsDir,
|
|||
i.log.Debugf("Installing plugin\nfrom: %s\ninto: %s", pluginZipURL, pluginsDir)
|
||||
|
||||
// Create temp file for downloading zip file
|
||||
tmpFile, err := ioutil.TempFile("", "*.zip")
|
||||
tmpFile, err := os.CreateTemp("", "*.zip")
|
||||
if err != nil {
|
||||
return fmt.Errorf("%v: %w", "failed to create temporary file", err)
|
||||
}
|
||||
|
|
@ -288,7 +287,7 @@ func (i *Installer) sendRequestGetBytes(URL string, subPaths ...string) ([]byte,
|
|||
i.log.Warn("Failed to close stream", "err", err)
|
||||
}
|
||||
}()
|
||||
return ioutil.ReadAll(bodyReader)
|
||||
return io.ReadAll(bodyReader)
|
||||
}
|
||||
|
||||
func (i *Installer) sendRequest(URL string, subPaths ...string) (io.ReadCloser, error) {
|
||||
|
|
@ -342,7 +341,7 @@ func (i *Installer) createRequest(URL string, subPaths ...string) (*http.Request
|
|||
|
||||
func (i *Installer) handleResponse(res *http.Response) (io.ReadCloser, error) {
|
||||
if res.StatusCode/100 == 4 {
|
||||
body, err := ioutil.ReadAll(res.Body)
|
||||
body, err := io.ReadAll(res.Body)
|
||||
defer func() {
|
||||
if err := res.Body.Close(); err != nil {
|
||||
i.log.Warn("Failed to close response body", "err", err)
|
||||
|
|
@ -676,12 +675,12 @@ func toPluginDTO(pluginDir, pluginID string) (InstalledPlugin, error) {
|
|||
|
||||
// It's safe to ignore gosec warning G304 since the file path suffix is hardcoded
|
||||
// nolint:gosec
|
||||
data, err := ioutil.ReadFile(distPluginDataPath)
|
||||
data, err := os.ReadFile(distPluginDataPath)
|
||||
if err != nil {
|
||||
pluginDataPath := filepath.Join(pluginDir, pluginID, "plugin.json")
|
||||
// It's safe to ignore gosec warning G304 since the file path suffix is hardcoded
|
||||
// nolint:gosec
|
||||
data, err = ioutil.ReadFile(pluginDataPath)
|
||||
data, err = os.ReadFile(pluginDataPath)
|
||||
if err != nil {
|
||||
return InstalledPlugin{}, errors.New("Could not find dist/plugin.json or plugin.json on " + pluginID + " in " + pluginDir)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ import (
|
|||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"net/url"
|
||||
"os"
|
||||
"path"
|
||||
|
|
@ -29,7 +28,8 @@ import (
|
|||
)
|
||||
|
||||
// Soon we can fetch keys from:
|
||||
// https://grafana.com/api/plugins/ci/keys
|
||||
//
|
||||
// https://grafana.com/api/plugins/ci/keys
|
||||
const publicKeyText = `-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: OpenPGP.js v4.10.1
|
||||
Comment: https://openpgpjs.org
|
||||
|
|
@ -116,7 +116,7 @@ func Calculate(mlog log.Logger, plugin *plugins.Plugin) (plugins.Signature, erro
|
|||
// nolint:gosec
|
||||
// We can ignore the gosec G304 warning on this one because `manifestPath` is based
|
||||
// on plugin the folder structure on disk and not user input.
|
||||
byteValue, err := ioutil.ReadFile(manifestPath)
|
||||
byteValue, err := os.ReadFile(manifestPath)
|
||||
if err != nil || len(byteValue) < 10 {
|
||||
mlog.Debug("Plugin is unsigned", "id", plugin.ID)
|
||||
return plugins.Signature{
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ import (
|
|||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"net"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
|
@ -233,7 +232,7 @@ func (s *Server) writePIDFile() {
|
|||
|
||||
// Retrieve the PID and write it to file.
|
||||
pid := strconv.Itoa(os.Getpid())
|
||||
if err := ioutil.WriteFile(s.pidFile, []byte(pid), 0644); err != nil {
|
||||
if err := os.WriteFile(s.pidFile, []byte(pid), 0644); err != nil {
|
||||
s.log.Error("Failed to write pidfile", "error", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package alerting
|
|||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
"github.com/google/go-cmp/cmp"
|
||||
|
|
@ -34,7 +34,7 @@ func TestAlertingUsageStats(t *testing.T) {
|
|||
var createFake = func(file string) *simplejson.Json {
|
||||
// Ignore gosec warning G304 since it's a test
|
||||
// nolint:gosec
|
||||
content, err := ioutil.ReadFile(file)
|
||||
content, err := os.ReadFile(file)
|
||||
require.NoError(t, err, "expected to be able to read file")
|
||||
|
||||
j, err := simplejson.NewJson(content)
|
||||
|
|
@ -104,7 +104,7 @@ func TestParsingAlertRuleSettings(t *testing.T) {
|
|||
t.Run(tc.name, func(t *testing.T) {
|
||||
var settings json.Marshaler
|
||||
if tc.file != "" {
|
||||
content, err := ioutil.ReadFile(tc.file)
|
||||
content, err := os.ReadFile(tc.file)
|
||||
require.NoError(t, err, "expected to be able to read file")
|
||||
|
||||
settings, err = simplejson.NewJson(content)
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package alerting
|
|||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
|
|
@ -27,7 +27,7 @@ func TestAlertRuleExtraction(t *testing.T) {
|
|||
defaultDs := &datasources.DataSource{Id: 12, OrgId: 1, Name: "I am default", IsDefault: true, Uid: "def-uid"}
|
||||
graphite2Ds := &datasources.DataSource{Id: 15, OrgId: 1, Name: "graphite2", Uid: "graphite2-uid"}
|
||||
|
||||
json, err := ioutil.ReadFile("./testdata/graphite-alert.json")
|
||||
json, err := os.ReadFile("./testdata/graphite-alert.json")
|
||||
require.Nil(t, err)
|
||||
|
||||
dsPermissions := permissions.NewMockDatasourcePermissionService()
|
||||
|
|
@ -117,7 +117,7 @@ func TestAlertRuleExtraction(t *testing.T) {
|
|||
})
|
||||
|
||||
t.Run("Panels missing id should return error", func(t *testing.T) {
|
||||
panelWithoutID, err := ioutil.ReadFile("./testdata/panels-missing-id.json")
|
||||
panelWithoutID, err := os.ReadFile("./testdata/panels-missing-id.json")
|
||||
require.Nil(t, err)
|
||||
|
||||
dashJSON, err := simplejson.NewJson(panelWithoutID)
|
||||
|
|
@ -133,7 +133,7 @@ func TestAlertRuleExtraction(t *testing.T) {
|
|||
})
|
||||
|
||||
t.Run("Panels missing id should return error", func(t *testing.T) {
|
||||
panelWithIDZero, err := ioutil.ReadFile("./testdata/panel-with-id-0.json")
|
||||
panelWithIDZero, err := os.ReadFile("./testdata/panel-with-id-0.json")
|
||||
require.Nil(t, err)
|
||||
|
||||
dashJSON, err := simplejson.NewJson(panelWithIDZero)
|
||||
|
|
@ -149,7 +149,7 @@ func TestAlertRuleExtraction(t *testing.T) {
|
|||
})
|
||||
|
||||
t.Run("Cannot save panel with query that is referenced by legacy alerting", func(t *testing.T) {
|
||||
panelWithQuery, err := ioutil.ReadFile("./testdata/panel-with-bad-query-id.json")
|
||||
panelWithQuery, err := os.ReadFile("./testdata/panel-with-bad-query-id.json")
|
||||
require.Nil(t, err)
|
||||
dashJSON, err := simplejson.NewJson(panelWithQuery)
|
||||
require.Nil(t, err)
|
||||
|
|
@ -163,7 +163,7 @@ func TestAlertRuleExtraction(t *testing.T) {
|
|||
})
|
||||
|
||||
t.Run("Panel does not have datasource configured, use the default datasource", func(t *testing.T) {
|
||||
panelWithoutSpecifiedDatasource, err := ioutil.ReadFile("./testdata/panel-without-specified-datasource.json")
|
||||
panelWithoutSpecifiedDatasource, err := os.ReadFile("./testdata/panel-without-specified-datasource.json")
|
||||
require.Nil(t, err)
|
||||
|
||||
dashJSON, err := simplejson.NewJson(panelWithoutSpecifiedDatasource)
|
||||
|
|
@ -183,7 +183,7 @@ func TestAlertRuleExtraction(t *testing.T) {
|
|||
})
|
||||
|
||||
t.Run("Parse alerts from dashboard without rows", func(t *testing.T) {
|
||||
json, err := ioutil.ReadFile("./testdata/v5-dashboard.json")
|
||||
json, err := os.ReadFile("./testdata/v5-dashboard.json")
|
||||
require.Nil(t, err)
|
||||
|
||||
dashJSON, err := simplejson.NewJson(json)
|
||||
|
|
@ -210,7 +210,7 @@ func TestAlertRuleExtraction(t *testing.T) {
|
|||
err = sqlStore.CreateAlertNotificationCommand(context.Background(), &secondNotification)
|
||||
require.Nil(t, err)
|
||||
|
||||
json, err := ioutil.ReadFile("./testdata/influxdb-alert.json")
|
||||
json, err := os.ReadFile("./testdata/influxdb-alert.json")
|
||||
require.Nil(t, err)
|
||||
|
||||
dashJSON, err := simplejson.NewJson(json)
|
||||
|
|
@ -236,7 +236,7 @@ func TestAlertRuleExtraction(t *testing.T) {
|
|||
})
|
||||
|
||||
t.Run("Should be able to extract collapsed panels", func(t *testing.T) {
|
||||
json, err := ioutil.ReadFile("./testdata/collapsed-panels.json")
|
||||
json, err := os.ReadFile("./testdata/collapsed-panels.json")
|
||||
require.Nil(t, err)
|
||||
|
||||
dashJSON, err := simplejson.NewJson(json)
|
||||
|
|
@ -255,7 +255,7 @@ func TestAlertRuleExtraction(t *testing.T) {
|
|||
})
|
||||
|
||||
t.Run("Parse and validate dashboard without id and containing an alert", func(t *testing.T) {
|
||||
json, err := ioutil.ReadFile("./testdata/dash-without-id.json")
|
||||
json, err := os.ReadFile("./testdata/dash-without-id.json")
|
||||
require.Nil(t, err)
|
||||
|
||||
dashJSON, err := simplejson.NewJson(json)
|
||||
|
|
@ -275,7 +275,7 @@ func TestAlertRuleExtraction(t *testing.T) {
|
|||
})
|
||||
|
||||
t.Run("Extract data source given new DataSourceRef object model", func(t *testing.T) {
|
||||
json, err := ioutil.ReadFile("./testdata/panel-with-datasource-ref.json")
|
||||
json, err := os.ReadFile("./testdata/panel-with-datasource-ref.json")
|
||||
require.Nil(t, err)
|
||||
|
||||
dashJSON, err := simplejson.NewJson(json)
|
||||
|
|
@ -308,7 +308,7 @@ func TestFilterPermissionsErrors(t *testing.T) {
|
|||
// mock data
|
||||
defaultDs := &datasources.DataSource{Id: 12, OrgId: 1, Name: "I am default", IsDefault: true, Uid: "def-uid"}
|
||||
|
||||
json, err := ioutil.ReadFile("./testdata/graphite-alert.json")
|
||||
json, err := os.ReadFile("./testdata/graphite-alert.json")
|
||||
require.Nil(t, err)
|
||||
dashJSON, err := simplejson.NewJson(json)
|
||||
require.Nil(t, err)
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ import (
|
|||
"encoding/base64"
|
||||
"encoding/json"
|
||||
"encoding/pem"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"os"
|
||||
|
|
@ -66,7 +65,7 @@ func TestVerifyUsingJWKSetFile(t *testing.T) {
|
|||
configure := func(t *testing.T, cfg *setting.Cfg) {
|
||||
t.Helper()
|
||||
|
||||
file, err := ioutil.TempFile(os.TempDir(), "jwk-*.json")
|
||||
file, err := os.CreateTemp(os.TempDir(), "jwk-*.json")
|
||||
require.NoError(t, err)
|
||||
t.Cleanup(func() {
|
||||
if err := os.Remove(file.Name()); err != nil {
|
||||
|
|
@ -402,7 +401,7 @@ func scenarioRunner(fn scenarioFunc, cbs ...configureFunc) func(t *testing.T) {
|
|||
func configurePKIXPublicKeyFile(t *testing.T, cfg *setting.Cfg) {
|
||||
t.Helper()
|
||||
|
||||
file, err := ioutil.TempFile(os.TempDir(), "public-key-*.pem")
|
||||
file, err := os.CreateTemp(os.TempDir(), "public-key-*.pem")
|
||||
require.NoError(t, err)
|
||||
t.Cleanup(func() {
|
||||
if err := os.Remove(file.Name()); err != nil {
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ import (
|
|||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"os"
|
||||
|
|
@ -83,7 +82,7 @@ func (s *AuthService) initKeySet() error {
|
|||
}
|
||||
}()
|
||||
|
||||
data, err := ioutil.ReadAll(file)
|
||||
data, err := io.ReadAll(file)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package service
|
|||
|
||||
import (
|
||||
"context"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
|
||||
|
|
@ -144,7 +144,7 @@ func TestImportDashboardService(t *testing.T) {
|
|||
func loadTestDashboard(ctx context.Context, req *plugindashboards.LoadPluginDashboardRequest) (*plugindashboards.LoadPluginDashboardResponse, error) {
|
||||
// It's safe to ignore gosec warning G304 since this is a test and arguments comes from test configuration.
|
||||
// nolint:gosec
|
||||
bytes, err := ioutil.ReadFile(filepath.Join("testdata", req.Reference))
|
||||
bytes, err := os.ReadFile(filepath.Join("testdata", req.Reference))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package service
|
|||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"testing"
|
||||
|
|
@ -449,7 +449,7 @@ func TestService_GetHttpTransport(t *testing.T) {
|
|||
err := res.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
body, err := ioutil.ReadAll(res.Body)
|
||||
body, err := io.ReadAll(res.Body)
|
||||
require.NoError(t, err)
|
||||
bodyStr := string(body)
|
||||
require.Equal(t, "Ok", bodyStr)
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ package export
|
|||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path"
|
||||
"strings"
|
||||
|
|
@ -108,7 +107,7 @@ func (ch *commitHelper) add(opts commitOptions) error {
|
|||
}
|
||||
}
|
||||
|
||||
err = ioutil.WriteFile(b.fpath, body, 0644)
|
||||
err = os.WriteFile(b.fpath, body, 0644)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package export
|
|||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"time"
|
||||
|
|
@ -13,7 +13,7 @@ import (
|
|||
|
||||
func exportDashboardThumbnails(helper *commitHelper, job *gitExportJob) error {
|
||||
alias := make(map[string]string, 100)
|
||||
aliasLookup, err := ioutil.ReadFile(filepath.Join(helper.orgDir, "root-alias.json"))
|
||||
aliasLookup, err := os.ReadFile(filepath.Join(helper.orgDir, "root-alias.json"))
|
||||
if err != nil {
|
||||
return fmt.Errorf("missing dashboard alias files (must export dashboards first)")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package featuremgmt
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"os"
|
||||
|
||||
"gopkg.in/yaml.v2"
|
||||
)
|
||||
|
|
@ -23,7 +23,7 @@ func readConfigFile(filename string) (*configBody, error) {
|
|||
|
||||
// Can ignore gosec G304 because the file path is forced within config subfolder
|
||||
//nolint:gosec
|
||||
yamlFile, err := ioutil.ReadFile(filename)
|
||||
yamlFile, err := os.ReadFile(filename)
|
||||
if err != nil {
|
||||
return cfg, err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ import (
|
|||
"bytes"
|
||||
"fmt"
|
||||
"html/template"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
|
@ -61,7 +60,7 @@ func TestFeatureToggleFiles(t *testing.T) {
|
|||
func verifyAndGenerateFile(t *testing.T, fpath string, gen string) {
|
||||
// nolint:gosec
|
||||
// We can ignore the gosec G304 warning since this is a test and the function is only called explicitly above
|
||||
body, err := ioutil.ReadFile(fpath)
|
||||
body, err := os.ReadFile(fpath)
|
||||
if err == nil {
|
||||
if diff := cmp.Diff(gen, string(body)); diff != "" {
|
||||
str := fmt.Sprintf("body mismatch (-want +got):\n%s\n", diff)
|
||||
|
|
|
|||
|
|
@ -5,9 +5,9 @@ import (
|
|||
"crypto/x509"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"math"
|
||||
"net"
|
||||
"os"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
|
@ -101,7 +101,7 @@ func (server *Server) Dial() error {
|
|||
for _, caCertFile := range strings.Split(server.Config.RootCACert, " ") {
|
||||
// nolint:gosec
|
||||
// We can ignore the gosec G304 warning on this one because `caCertFile` comes from ldap config.
|
||||
pem, err := ioutil.ReadFile(caCertFile)
|
||||
pem, err := os.ReadFile(caCertFile)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package ldap
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"sync"
|
||||
|
||||
"github.com/BurntSushi/toml"
|
||||
|
|
@ -123,7 +123,7 @@ func readConfig(configFile string) (*Config, error) {
|
|||
|
||||
// nolint:gosec
|
||||
// We can ignore the gosec G304 warning on this one because `filename` comes from grafana configuration file
|
||||
fileBytes, err := ioutil.ReadFile(configFile)
|
||||
fileBytes, err := os.ReadFile(configFile)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("%v: %w", "Failed to load LDAP config file", err)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import (
|
|||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"os"
|
||||
|
|
@ -1124,7 +1124,7 @@ func (s *DryRunRuleStorage) ListChannelRules(_ context.Context, _ int64) ([]pipe
|
|||
|
||||
// HandlePipelineConvertTestHTTP ...
|
||||
func (g *GrafanaLive) HandlePipelineConvertTestHTTP(c *models.ReqContext) response.Response {
|
||||
body, err := ioutil.ReadAll(c.Req.Body)
|
||||
body, err := io.ReadAll(c.Req.Body)
|
||||
if err != nil {
|
||||
return response.Error(http.StatusInternalServerError, "Error reading body", err)
|
||||
}
|
||||
|
|
@ -1169,7 +1169,7 @@ func (g *GrafanaLive) HandlePipelineConvertTestHTTP(c *models.ReqContext) respon
|
|||
|
||||
// HandleChannelRulesPostHTTP ...
|
||||
func (g *GrafanaLive) HandleChannelRulesPostHTTP(c *models.ReqContext) response.Response {
|
||||
body, err := ioutil.ReadAll(c.Req.Body)
|
||||
body, err := io.ReadAll(c.Req.Body)
|
||||
if err != nil {
|
||||
return response.Error(http.StatusInternalServerError, "Error reading body", err)
|
||||
}
|
||||
|
|
@ -1189,7 +1189,7 @@ func (g *GrafanaLive) HandleChannelRulesPostHTTP(c *models.ReqContext) response.
|
|||
|
||||
// HandleChannelRulesPutHTTP ...
|
||||
func (g *GrafanaLive) HandleChannelRulesPutHTTP(c *models.ReqContext) response.Response {
|
||||
body, err := ioutil.ReadAll(c.Req.Body)
|
||||
body, err := io.ReadAll(c.Req.Body)
|
||||
if err != nil {
|
||||
return response.Error(http.StatusInternalServerError, "Error reading body", err)
|
||||
}
|
||||
|
|
@ -1212,7 +1212,7 @@ func (g *GrafanaLive) HandleChannelRulesPutHTTP(c *models.ReqContext) response.R
|
|||
|
||||
// HandleChannelRulesDeleteHTTP ...
|
||||
func (g *GrafanaLive) HandleChannelRulesDeleteHTTP(c *models.ReqContext) response.Response {
|
||||
body, err := ioutil.ReadAll(c.Req.Body)
|
||||
body, err := io.ReadAll(c.Req.Body)
|
||||
if err != nil {
|
||||
return response.Error(http.StatusInternalServerError, "Error reading body", err)
|
||||
}
|
||||
|
|
@ -1259,7 +1259,7 @@ func (g *GrafanaLive) HandleWriteConfigsListHTTP(c *models.ReqContext) response.
|
|||
|
||||
// HandleWriteConfigsPostHTTP ...
|
||||
func (g *GrafanaLive) HandleWriteConfigsPostHTTP(c *models.ReqContext) response.Response {
|
||||
body, err := ioutil.ReadAll(c.Req.Body)
|
||||
body, err := io.ReadAll(c.Req.Body)
|
||||
if err != nil {
|
||||
return response.Error(http.StatusInternalServerError, "Error reading body", err)
|
||||
}
|
||||
|
|
@ -1279,7 +1279,7 @@ func (g *GrafanaLive) HandleWriteConfigsPostHTTP(c *models.ReqContext) response.
|
|||
|
||||
// HandleWriteConfigsPutHTTP ...
|
||||
func (g *GrafanaLive) HandleWriteConfigsPutHTTP(c *models.ReqContext) response.Response {
|
||||
body, err := ioutil.ReadAll(c.Req.Body)
|
||||
body, err := io.ReadAll(c.Req.Body)
|
||||
if err != nil {
|
||||
return response.Error(http.StatusInternalServerError, "Error reading body", err)
|
||||
}
|
||||
|
|
@ -1323,7 +1323,7 @@ func (g *GrafanaLive) HandleWriteConfigsPutHTTP(c *models.ReqContext) response.R
|
|||
|
||||
// HandleWriteConfigsDeleteHTTP ...
|
||||
func (g *GrafanaLive) HandleWriteConfigsDeleteHTTP(c *models.ReqContext) response.Response {
|
||||
body, err := ioutil.ReadAll(c.Req.Body)
|
||||
body, err := io.ReadAll(c.Req.Body)
|
||||
if err != nil {
|
||||
return response.Error(http.StatusInternalServerError, "Error reading body", err)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package pipeline
|
|||
import (
|
||||
"context"
|
||||
"flag"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
"time"
|
||||
|
|
@ -19,7 +19,7 @@ func loadTestJson(t testing.TB, file string) []byte {
|
|||
t.Helper()
|
||||
// Safe to disable, this is a test.
|
||||
// nolint:gosec
|
||||
content, err := ioutil.ReadFile(filepath.Join("testdata", file+".json"))
|
||||
content, err := os.ReadFile(filepath.Join("testdata", file+".json"))
|
||||
require.NoError(t, err, "expected to be able to read file")
|
||||
require.True(t, len(content) > 0)
|
||||
return content
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ import (
|
|||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
|
|
@ -240,7 +239,7 @@ func (f *FileStorage) readRules() (ChannelRules, error) {
|
|||
ruleFile := f.ruleFilePath()
|
||||
// Safe to ignore gosec warning G304.
|
||||
// nolint:gosec
|
||||
ruleBytes, err := ioutil.ReadFile(ruleFile)
|
||||
ruleBytes, err := os.ReadFile(ruleFile)
|
||||
if err != nil {
|
||||
return ChannelRules{}, fmt.Errorf("can't read pipeline rules: %s: %w", f.ruleFilePath(), err)
|
||||
}
|
||||
|
|
@ -309,7 +308,7 @@ func (f *FileStorage) readWriteConfigs() (WriteConfigs, error) {
|
|||
filePath := f.writeConfigsFilePath()
|
||||
// Safe to ignore gosec warning G304.
|
||||
// nolint:gosec
|
||||
bytes, err := ioutil.ReadFile(filePath)
|
||||
bytes, err := os.ReadFile(filePath)
|
||||
if err != nil {
|
||||
return WriteConfigs{}, fmt.Errorf("can't read %s file: %w", filePath, err)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import (
|
|||
"encoding/json"
|
||||
"flag"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
|
||||
|
|
@ -18,7 +18,7 @@ func loadTestData(tb testing.TB, file string) []byte {
|
|||
tb.Helper()
|
||||
// Safe to disable, this is a test.
|
||||
// nolint:gosec
|
||||
content, err := ioutil.ReadFile(filepath.Join("testdata", file+".txt"))
|
||||
content, err := os.ReadFile(filepath.Join("testdata", file+".txt"))
|
||||
require.NoError(tb, err, "expected to be able to read file")
|
||||
require.True(tb, len(content) > 0)
|
||||
return content
|
||||
|
|
@ -28,7 +28,7 @@ func checkTestData(t *testing.T, file string) *backend.DataResponse {
|
|||
t.Helper()
|
||||
// Safe to disable, this is a test.
|
||||
// nolint:gosec
|
||||
content, err := ioutil.ReadFile(filepath.Join("testdata", file+".txt"))
|
||||
content, err := os.ReadFile(filepath.Join("testdata", file+".txt"))
|
||||
require.NoError(t, err, "expected to be able to read file")
|
||||
require.True(t, len(content) > 0)
|
||||
|
||||
|
|
@ -143,13 +143,13 @@ func TestConverter_Convert_NumFrameFields(t *testing.T) {
|
|||
frameJSON, err := json.MarshalIndent(frame, "", " ")
|
||||
require.NoError(t, err)
|
||||
if *update {
|
||||
if err := ioutil.WriteFile(goldenFile, frameJSON, 0600); err != nil {
|
||||
if err := os.WriteFile(goldenFile, frameJSON, 0600); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
// Safe to disable, this is a test.
|
||||
// nolint:gosec
|
||||
want, err := ioutil.ReadFile(goldenFile)
|
||||
want, err := os.ReadFile(goldenFile)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
|
@ -223,13 +223,13 @@ func TestConverter_Convert_NumFrameFields_LabelsColumn(t *testing.T) {
|
|||
frameJSON, err := json.MarshalIndent(frame, "", " ")
|
||||
require.NoError(t, err)
|
||||
if *update {
|
||||
if err := ioutil.WriteFile(goldenFile, frameJSON, 0600); err != nil {
|
||||
if err := os.WriteFile(goldenFile, frameJSON, 0600); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
// Safe to disable, this is a test.
|
||||
// nolint:gosec
|
||||
want, err := ioutil.ReadFile(goldenFile)
|
||||
want, err := os.ReadFile(goldenFile)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@ package main
|
|||
import (
|
||||
"encoding/json"
|
||||
"flag"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
|
||||
|
|
@ -22,7 +22,7 @@ func main() {
|
|||
}
|
||||
|
||||
//nolint
|
||||
b, err := ioutil.ReadFile(input)
|
||||
b, err := os.ReadFile(input)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
|
@ -101,7 +101,7 @@ func main() {
|
|||
log.Fatal(err)
|
||||
}
|
||||
|
||||
err = ioutil.WriteFile(output, out, 0644)
|
||||
err = os.WriteFile(output, out, 0644)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package definitions
|
|||
import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
|
|
@ -808,10 +808,10 @@ alertmanager_config: |
|
|||
func Test_GettableUserConfigRoundtrip(t *testing.T) {
|
||||
// raw contains secret fields. We'll unmarshal, re-marshal, and ensure
|
||||
// the fields are not redacted.
|
||||
yamlEncoded, err := ioutil.ReadFile("alertmanager_test_artifact.yaml")
|
||||
yamlEncoded, err := os.ReadFile("alertmanager_test_artifact.yaml")
|
||||
require.Nil(t, err)
|
||||
|
||||
jsonEncoded, err := ioutil.ReadFile("alertmanager_test_artifact.json")
|
||||
jsonEncoded, err := os.ReadFile("alertmanager_test_artifact.json")
|
||||
require.Nil(t, err)
|
||||
|
||||
// test GettableUserConfig (yamlDecode -> jsonEncode)
|
||||
|
|
@ -1031,7 +1031,7 @@ routes:
|
|||
}
|
||||
|
||||
func Test_Marshaling_Validation(t *testing.T) {
|
||||
jsonEncoded, err := ioutil.ReadFile("alertmanager_test_artifact.json")
|
||||
jsonEncoded, err := os.ReadFile("alertmanager_test_artifact.json")
|
||||
require.Nil(t, err)
|
||||
|
||||
var tmp GettableUserConfig
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
package channels
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
|
|
@ -92,7 +91,7 @@ Labels:
|
|||
`
|
||||
|
||||
func templateForTests(t *testing.T) *template.Template {
|
||||
f, err := ioutil.TempFile("/tmp", "template")
|
||||
f, err := os.CreateTemp("/tmp", "template")
|
||||
require.NoError(t, err)
|
||||
defer func(f *os.File) {
|
||||
_ = f.Close()
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ package channels
|
|||
|
||||
import (
|
||||
"context"
|
||||
"io/ioutil"
|
||||
"net/url"
|
||||
"os"
|
||||
"testing"
|
||||
|
|
@ -56,7 +55,7 @@ func TestDefaultTemplateString(t *testing.T) {
|
|||
},
|
||||
}
|
||||
|
||||
f, err := ioutil.TempFile("/tmp", "template")
|
||||
f, err := os.CreateTemp("/tmp", "template")
|
||||
require.NoError(t, err)
|
||||
defer func(f *os.File) {
|
||||
_ = f.Close()
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import (
|
|||
"context"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"strings"
|
||||
|
|
@ -268,7 +268,7 @@ func TestTeamsNotifier(t *testing.T) {
|
|||
expBody, err := json.Marshal(c.expMsg)
|
||||
require.NoError(t, err)
|
||||
|
||||
body, err := ioutil.ReadAll(clientStub.lastRequest.Body)
|
||||
body, err := io.ReadAll(clientStub.lastRequest.Body)
|
||||
require.NoError(t, err)
|
||||
require.JSONEq(t, string(expBody), string(body))
|
||||
})
|
||||
|
|
@ -311,6 +311,6 @@ func newMockClient(resp *mockResponse) *mockClient {
|
|||
func makeResponse(status int, body string) *http.Response {
|
||||
return &http.Response{
|
||||
StatusCode: status,
|
||||
Body: ioutil.NopCloser(strings.NewReader(body)),
|
||||
Body: io.NopCloser(strings.NewReader(body)),
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ func PersistTemplates(cfg *api.PostableUserConfig, path string) ([]string, bool,
|
|||
// Check if the template file already exists and if it has changed
|
||||
// We can safely ignore gosec here as we've previously checked the filename is clean
|
||||
// nolint:gosec
|
||||
if tmpl, err := ioutil.ReadFile(file); err == nil && string(tmpl) == content {
|
||||
if tmpl, err := os.ReadFile(file); err == nil && string(tmpl) == content {
|
||||
// Templates file is the same we have, no-op and continue.
|
||||
continue
|
||||
} else if err != nil && !os.IsNotExist(err) {
|
||||
|
|
@ -45,7 +45,7 @@ func PersistTemplates(cfg *api.PostableUserConfig, path string) ([]string, bool,
|
|||
|
||||
// We can safely ignore gosec here as we've previously checked the filename is clean
|
||||
// nolint:gosec
|
||||
if err := ioutil.WriteFile(file, []byte(content), 0644); err != nil {
|
||||
if err := os.WriteFile(file, []byte(content), 0644); err != nil {
|
||||
return nil, false, fmt.Errorf("unable to create Alertmanager template file %q: %s", file, err)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package notifier
|
|||
import (
|
||||
"errors"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
|
||||
|
|
@ -71,7 +72,7 @@ func TestPersistTemplates(t *testing.T) {
|
|||
dir := t.TempDir()
|
||||
// Write "existing files"
|
||||
for name, content := range tt.existingTemplates {
|
||||
err := ioutil.WriteFile(filepath.Join(dir, name), []byte(content), 0644)
|
||||
err := os.WriteFile(filepath.Join(dir, name), []byte(content), 0644)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
c := &api.PostableUserConfig{TemplateFiles: tt.templates}
|
||||
|
|
@ -87,7 +88,7 @@ func TestPersistTemplates(t *testing.T) {
|
|||
}
|
||||
// Safe to disable, this is a test.
|
||||
// nolint:gosec
|
||||
content, err := ioutil.ReadFile(filepath.Join(dir, f.Name()))
|
||||
content, err := os.ReadFile(filepath.Join(dir, f.Name()))
|
||||
// nolint:gosec
|
||||
require.NoError(t, err)
|
||||
files[f.Name()] = string(content)
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ package notifier
|
|||
|
||||
import (
|
||||
"context"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
|
|
@ -24,7 +23,7 @@ func TestFileStore_FilepathFor_DirectoryNotExist(t *testing.T) {
|
|||
r, err := fs.FilepathFor(context.Background(), filekey)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, filePath, r)
|
||||
f, err := ioutil.ReadFile(filepath.Clean(filePath))
|
||||
f, err := os.ReadFile(filepath.Clean(filePath))
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "silence1,silence3", string(f))
|
||||
require.NoError(t, os.Remove(filePath))
|
||||
|
|
@ -44,7 +43,7 @@ func TestFileStore_FilepathFor(t *testing.T) {
|
|||
r, err := fs.FilepathFor(context.Background(), filekey)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, filePath, r)
|
||||
f, err := ioutil.ReadFile(filepath.Clean(filePath))
|
||||
f, err := os.ReadFile(filepath.Clean(filePath))
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "silence1,silence2", string(f))
|
||||
require.NoError(t, os.Remove(filePath))
|
||||
|
|
@ -56,7 +55,7 @@ func TestFileStore_FilepathFor(t *testing.T) {
|
|||
r, err := fs.FilepathFor(context.Background(), filekey)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, filePath, r)
|
||||
f, err := ioutil.ReadFile(filepath.Clean(filePath))
|
||||
f, err := os.ReadFile(filepath.Clean(filePath))
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "silence1,silence3", string(f))
|
||||
require.NoError(t, os.Remove(filePath))
|
||||
|
|
@ -68,7 +67,7 @@ func TestFileStore_FilepathFor(t *testing.T) {
|
|||
r, err := fs.FilepathFor(context.Background(), filekey)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, filePath, r)
|
||||
_, err = ioutil.ReadFile(filepath.Clean(filePath))
|
||||
_, err = os.ReadFile(filepath.Clean(filePath))
|
||||
require.Error(t, err)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package sender
|
|||
|
||||
import (
|
||||
"encoding/json"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"sync"
|
||||
|
|
@ -71,7 +71,7 @@ func (am *FakeExternalAlertmanager) Alerts() amv2.PostableAlerts {
|
|||
|
||||
func (am *FakeExternalAlertmanager) Handler() func(w http.ResponseWriter, r *http.Request) {
|
||||
return func(w http.ResponseWriter, r *http.Request) {
|
||||
b, err := ioutil.ReadAll(r.Body)
|
||||
b, err := io.ReadAll(r.Body)
|
||||
require.NoError(am.t, err)
|
||||
|
||||
a := amv2.PostableAlerts{}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package notifications
|
|||
|
||||
import (
|
||||
"context"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
"github.com/grafana/grafana/pkg/models"
|
||||
|
|
@ -62,9 +62,9 @@ func TestEmailIntegrationTest(t *testing.T) {
|
|||
sentMsg := <-ns.mailQueue
|
||||
require.Equal(t, sentMsg.From, "Grafana Admin <from@address.com>")
|
||||
require.Equal(t, sentMsg.To[0], "asdf@asdf.com")
|
||||
err = ioutil.WriteFile("../../../tmp/test_email.html", []byte(sentMsg.Body["text/html"]), 0777)
|
||||
err = os.WriteFile("../../../tmp/test_email.html", []byte(sentMsg.Body["text/html"]), 0777)
|
||||
require.NoError(t, err)
|
||||
err = ioutil.WriteFile("../../../tmp/test_email.txt", []byte(sentMsg.Body["text/plain"]), 0777)
|
||||
err = os.WriteFile("../../../tmp/test_email.txt", []byte(sentMsg.Body["text/plain"]), 0777)
|
||||
require.NoError(t, err)
|
||||
})
|
||||
})
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import (
|
|||
"context"
|
||||
"crypto/tls"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"net"
|
||||
"net/http"
|
||||
"time"
|
||||
|
|
@ -88,7 +88,7 @@ func (ns *NotificationService) sendWebRequestSync(ctx context.Context, webhook *
|
|||
}
|
||||
}()
|
||||
|
||||
body, err := ioutil.ReadAll(resp.Body)
|
||||
body, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import (
|
|||
"fmt"
|
||||
"io/fs"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
|
|
@ -65,7 +66,7 @@ func (cr *rulesConfigReader) parseConfig(path string, file fs.FileInfo) (*Alerti
|
|||
filename, _ := filepath.Abs(filepath.Join(path, file.Name()))
|
||||
// nolint:gosec
|
||||
// We can ignore the gosec G304 warning on this one because `filename` comes from ps.Cfg.ProvisioningPath
|
||||
yamlFile, err := ioutil.ReadFile(filename)
|
||||
yamlFile, err := os.ReadFile(filename)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ func (cr *configReader) parseConfigs(file os.FileInfo) ([]*config, error) {
|
|||
|
||||
// nolint:gosec
|
||||
// We can ignore the gosec G304 warning on this one because `filename` comes from ps.Cfg.ProvisioningPath
|
||||
yamlFile, err := ioutil.ReadFile(filename)
|
||||
yamlFile, err := os.ReadFile(filename)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import (
|
|||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
|
@ -397,7 +397,7 @@ func (fr *FileReader) readDashboardFromFile(path string, lastModified time.Time,
|
|||
}
|
||||
}()
|
||||
|
||||
all, err := ioutil.ReadAll(reader)
|
||||
all, err := io.ReadAll(reader)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ func (cr *configReader) parseDatasourceConfig(path string, file os.FileInfo) (*c
|
|||
|
||||
// nolint:gosec
|
||||
// We can ignore the gosec G304 warning on this one because `filename` comes from ps.Cfg.ProvisioningPath
|
||||
yamlFile, err := ioutil.ReadFile(filename)
|
||||
yamlFile, err := os.ReadFile(filename)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ func (cr *configReader) parseNotificationConfig(path string, file os.FileInfo) (
|
|||
|
||||
// nolint:gosec
|
||||
// We can ignore the gosec G304 warning on this one because `filename` comes from ps.Cfg.ProvisioningPath
|
||||
yamlFile, err := ioutil.ReadFile(filename)
|
||||
yamlFile, err := os.ReadFile(filename)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ func (cr *configReaderImpl) parsePluginConfig(path string, file os.FileInfo) (*p
|
|||
|
||||
// nolint:gosec
|
||||
// We can ignore the gosec G304 warning on this one because `filename` comes from ps.Cfg.ProvisioningPath
|
||||
yamlFile, err := ioutil.ReadFile(filename)
|
||||
yamlFile, err := os.ReadFile(filename)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ package values
|
|||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
|
|
@ -311,7 +310,7 @@ func TestValues_readFile(t *testing.T) {
|
|||
Val StringValue `yaml:"val"`
|
||||
}
|
||||
|
||||
f, err := ioutil.TempFile(os.TempDir(), "file expansion *")
|
||||
f, err := os.CreateTemp(os.TempDir(), "file expansion *")
|
||||
require.NoError(t, err)
|
||||
file := f.Name()
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ import (
|
|||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"os/exec"
|
||||
"runtime"
|
||||
|
|
@ -356,7 +355,7 @@ func (i *searchIndex) reportSizeOfIndexDiskBackup(orgID int64) {
|
|||
defer cancel()
|
||||
|
||||
// create a temp directory to store the index
|
||||
tmpDir, err := ioutil.TempDir("", "grafana.dashboard_index")
|
||||
tmpDir, err := os.MkdirTemp("", "grafana.dashboard_index")
|
||||
if err != nil {
|
||||
i.logger.Error("can't create temp dir", "error", err)
|
||||
return
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import (
|
|||
"crypto/tls"
|
||||
"crypto/x509"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
|
||||
"github.com/grafana/grafana/pkg/infra/log"
|
||||
)
|
||||
|
|
@ -13,7 +13,7 @@ var tlslog = log.New("tls_mysql")
|
|||
|
||||
func makeCert(config DatabaseConfig) (*tls.Config, error) {
|
||||
rootCertPool := x509.NewCertPool()
|
||||
pem, err := ioutil.ReadFile(config.CaCertPath)
|
||||
pem, err := os.ReadFile(config.CaCertPath)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("could not read DB CA Cert path %q: %w", config.CaCertPath, err)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ package store
|
|||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
|
|
@ -32,7 +31,7 @@ func LoadStorageConfig(cfg *setting.Cfg, features featuremgmt.FeatureToggles) (*
|
|||
if _, err := os.Stat(fpath); err == nil {
|
||||
// nolint:gosec
|
||||
// We can ignore the gosec G304 warning since the path is hardcoded above
|
||||
body, err := ioutil.ReadFile(fpath)
|
||||
body, err := os.ReadFile(fpath)
|
||||
if err != nil {
|
||||
return g, err
|
||||
}
|
||||
|
|
@ -96,7 +95,7 @@ func (c *GlobalStorageConfig) save() error {
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return ioutil.WriteFile(c.filepath, out, 0600)
|
||||
return os.WriteFile(c.filepath, out, 0600)
|
||||
}
|
||||
|
||||
type RootStorageConfig struct {
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ import (
|
|||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
|
|
@ -114,7 +113,7 @@ func (s *standardStorageService) doUpload(c *models.ReqContext) response.Respons
|
|||
if err != nil {
|
||||
return response.Error(500, "Internal Server Error", err)
|
||||
}
|
||||
data, err := ioutil.ReadAll(file)
|
||||
data, err := io.ReadAll(file)
|
||||
if err != nil {
|
||||
return response.Error(500, "Internal Server Error", err)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package store
|
|||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
|
||||
|
|
@ -24,9 +24,9 @@ var (
|
|||
AllowUnsanitizedSvgUpload: true,
|
||||
},
|
||||
}
|
||||
htmlBytes, _ = ioutil.ReadFile("testdata/page.html")
|
||||
jpgBytes, _ = ioutil.ReadFile("testdata/image.jpg")
|
||||
svgBytes, _ = ioutil.ReadFile("testdata/image.svg")
|
||||
htmlBytes, _ = os.ReadFile("testdata/page.html")
|
||||
jpgBytes, _ = os.ReadFile("testdata/image.jpg")
|
||||
svgBytes, _ = os.ReadFile("testdata/image.svg")
|
||||
dummyUser = &user.SignedInUser{OrgId: 1}
|
||||
allowAllAuthService = newStaticStorageAuthService(func(ctx context.Context, user *user.SignedInUser, storageName string) map[string]filestorage.PathFilter {
|
||||
return map[string]filestorage.PathFilter{
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ import (
|
|||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"time"
|
||||
|
||||
|
|
@ -388,7 +387,7 @@ func (hs *thumbService) SetImage(c *models.ReqContext) {
|
|||
hs.log.Info("File Size: %+v\n", handler.Size)
|
||||
hs.log.Info("MIME Header: %+v\n", handler.Header)
|
||||
|
||||
fileBytes, err := ioutil.ReadAll(file)
|
||||
fileBytes, err := io.ReadAll(file)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
c.JSON(400, map[string]string{"error": "error reading file"})
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package updatechecker
|
|||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"net/http"
|
||||
"strings"
|
||||
"sync"
|
||||
|
|
@ -68,7 +68,7 @@ func (s *GrafanaService) checkForUpdates() {
|
|||
s.log.Warn("Failed to close response body", "err", err)
|
||||
}
|
||||
}()
|
||||
body, err := ioutil.ReadAll(resp.Body)
|
||||
body, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
s.log.Debug("Update check failed, reading response from github.com", "error", err)
|
||||
return
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package updatechecker
|
|||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"net/http"
|
||||
"strings"
|
||||
"sync"
|
||||
|
|
@ -99,7 +99,7 @@ func (s *PluginsService) checkForUpdates(ctx context.Context) {
|
|||
}
|
||||
}()
|
||||
|
||||
body, err := ioutil.ReadAll(resp.Body)
|
||||
body, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
s.log.Debug("Update check failed, reading response from grafana.com", "error", err.Error())
|
||||
return
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ package updatechecker
|
|||
|
||||
import (
|
||||
"context"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"net/http"
|
||||
"strings"
|
||||
"testing"
|
||||
|
|
@ -190,7 +190,7 @@ func (c *fakeHTTPClient) Get(url string) (*http.Response, error) {
|
|||
c.requestURL = url
|
||||
|
||||
resp := &http.Response{
|
||||
Body: ioutil.NopCloser(strings.NewReader(c.fakeResp)),
|
||||
Body: io.NopCloser(strings.NewReader(c.fakeResp)),
|
||||
}
|
||||
|
||||
return resp, nil
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ package setting
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"regexp"
|
||||
"sort"
|
||||
|
|
@ -145,7 +144,7 @@ func (e fileExpander) Expand(s string) (string, error) {
|
|||
|
||||
// nolint:gosec
|
||||
// We can ignore the gosec G304 warning on this one because `s` comes from configuration section keys
|
||||
f, err := ioutil.ReadFile(s)
|
||||
f, err := os.ReadFile(s)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ package setting
|
|||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"math/rand"
|
||||
"os"
|
||||
"testing"
|
||||
|
|
@ -35,7 +34,7 @@ func TestExpandVar_EnvSuccessful(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestExpandVar_FileSuccessful(t *testing.T) {
|
||||
f, err := ioutil.TempFile(os.TempDir(), "file expansion *")
|
||||
f, err := os.CreateTemp(os.TempDir(), "file expansion *")
|
||||
require.NoError(t, err)
|
||||
file := f.Name()
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import (
|
|||
"bytes"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"net/http"
|
||||
"testing"
|
||||
"time"
|
||||
|
|
@ -62,7 +62,7 @@ func TestAdminConfiguration_SendingToExternalAlertmanagers(t *testing.T) {
|
|||
{
|
||||
alertsURL := fmt.Sprintf("http://grafana:password@%s/api/v1/ngalert/admin_config", grafanaListedAddr)
|
||||
resp := getRequest(t, alertsURL, http.StatusNotFound) // nolint
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
var res map[string]interface{}
|
||||
err = json.Unmarshal(b, &res)
|
||||
|
|
@ -82,7 +82,7 @@ func TestAdminConfiguration_SendingToExternalAlertmanagers(t *testing.T) {
|
|||
|
||||
alertsURL := fmt.Sprintf("http://grafana:password@%s/api/v1/ngalert/admin_config", grafanaListedAddr)
|
||||
resp := postRequest(t, alertsURL, buf.String(), http.StatusBadRequest) // nolint
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
var res map[string]interface{}
|
||||
err = json.Unmarshal(b, &res)
|
||||
|
|
@ -103,7 +103,7 @@ func TestAdminConfiguration_SendingToExternalAlertmanagers(t *testing.T) {
|
|||
|
||||
alertsURL := fmt.Sprintf("http://grafana:password@%s/api/v1/ngalert/admin_config", grafanaListedAddr)
|
||||
resp := postRequest(t, alertsURL, buf.String(), http.StatusBadRequest) // nolint
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
var res map[string]interface{}
|
||||
err = json.Unmarshal(b, &res)
|
||||
|
|
@ -125,7 +125,7 @@ func TestAdminConfiguration_SendingToExternalAlertmanagers(t *testing.T) {
|
|||
|
||||
alertsURL := fmt.Sprintf("http://grafana:password@%s/api/v1/ngalert/admin_config", grafanaListedAddr)
|
||||
resp := postRequest(t, alertsURL, buf.String(), http.StatusCreated) // nolint
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
var res map[string]interface{}
|
||||
err = json.Unmarshal(b, &res)
|
||||
|
|
@ -137,7 +137,7 @@ func TestAdminConfiguration_SendingToExternalAlertmanagers(t *testing.T) {
|
|||
{
|
||||
alertsURL := fmt.Sprintf("http://grafana:password@%s/api/v1/ngalert/admin_config", grafanaListedAddr)
|
||||
resp := getRequest(t, alertsURL, http.StatusOK) // nolint
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.JSONEq(t, fmt.Sprintf("{\"alertmanagers\":[\"%s\",\"%s\"], \"alertmanagersChoice\": %q}\n", fakeAM1.URL(), fakeAM2.URL(), ngmodels.ExternalAlertmanagers), string(b))
|
||||
}
|
||||
|
|
@ -147,7 +147,7 @@ func TestAdminConfiguration_SendingToExternalAlertmanagers(t *testing.T) {
|
|||
alertsURL := fmt.Sprintf("http://grafana:password@%s/api/v1/ngalert/alertmanagers", grafanaListedAddr)
|
||||
require.Eventually(t, func() bool {
|
||||
resp := getRequest(t, alertsURL, http.StatusOK) // nolint
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
|
||||
var alertmanagers apimodels.GettableAlertmanagers
|
||||
|
|
@ -227,7 +227,7 @@ func TestAdminConfiguration_SendingToExternalAlertmanagers(t *testing.T) {
|
|||
|
||||
alertsURL := fmt.Sprintf("http://admin-42:admin-42@%s/api/v1/ngalert/admin_config", grafanaListedAddr)
|
||||
resp := postRequest(t, alertsURL, buf.String(), http.StatusCreated) // nolint
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
var res map[string]interface{}
|
||||
err = json.Unmarshal(b, &res)
|
||||
|
|
@ -239,7 +239,7 @@ func TestAdminConfiguration_SendingToExternalAlertmanagers(t *testing.T) {
|
|||
{
|
||||
alertsURL := fmt.Sprintf("http://admin-42:admin-42@%s/api/v1/ngalert/admin_config", grafanaListedAddr)
|
||||
resp := getRequest(t, alertsURL, http.StatusOK) // nolint
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.JSONEq(t, fmt.Sprintf("{\"alertmanagers\":[\"%s\"], \"alertmanagersChoice\": %q}\n", fakeAM3.URL(), ngmodels.AllAlertmanagers), string(b))
|
||||
}
|
||||
|
|
@ -249,7 +249,7 @@ func TestAdminConfiguration_SendingToExternalAlertmanagers(t *testing.T) {
|
|||
alertsURL := fmt.Sprintf("http://admin-42:admin-42@%s/api/v1/ngalert/alertmanagers", grafanaListedAddr)
|
||||
require.Eventually(t, func() bool {
|
||||
resp := getRequest(t, alertsURL, http.StatusOK) // nolint
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
|
||||
var alertmanagers apimodels.GettableAlertmanagers
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package alerting
|
|||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"net/http"
|
||||
"regexp"
|
||||
"testing"
|
||||
|
|
@ -87,7 +87,7 @@ func TestAlertmanagerConfigurationIsTransactional(t *testing.T) {
|
|||
}
|
||||
`
|
||||
resp := postRequest(t, alertConfigURL, payload, http.StatusBadRequest) // nolint
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
var res map[string]interface{}
|
||||
require.NoError(t, json.Unmarshal(b, &res))
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import (
|
|||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"net/http"
|
||||
"regexp"
|
||||
"strings"
|
||||
|
|
@ -127,7 +127,7 @@ func TestAMConfigAccess(t *testing.T) {
|
|||
})
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, tc.expStatus, resp.StatusCode)
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.Contains(t, string(b), tc.expBody)
|
||||
})
|
||||
|
|
@ -194,7 +194,7 @@ func TestAMConfigAccess(t *testing.T) {
|
|||
})
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, tc.expStatus, resp.StatusCode)
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
if tc.expStatus == http.StatusOK {
|
||||
re := regexp.MustCompile(`"uid":"([\w|-]+)"`)
|
||||
b = re.ReplaceAll(b, []byte(`"uid":""`))
|
||||
|
|
@ -260,7 +260,7 @@ func TestAMConfigAccess(t *testing.T) {
|
|||
})
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, tc.expStatus, resp.StatusCode)
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
if tc.expStatus == http.StatusAccepted {
|
||||
re := regexp.MustCompile(`"id":"([\w|-]+)"`)
|
||||
|
|
@ -309,7 +309,7 @@ func TestAMConfigAccess(t *testing.T) {
|
|||
require.Equal(t, tc.expStatus, resp.StatusCode)
|
||||
require.NoError(t, err)
|
||||
if tc.expStatus == http.StatusOK {
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
blob = b
|
||||
}
|
||||
|
|
@ -379,7 +379,7 @@ func TestAMConfigAccess(t *testing.T) {
|
|||
})
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, tc.expStatus, resp.StatusCode)
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
if tc.expStatus == http.StatusOK {
|
||||
unconsumedSilenceIdx++
|
||||
|
|
@ -410,7 +410,7 @@ func TestAlertAndGroupsQuery(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, http.StatusUnauthorized, resp.StatusCode)
|
||||
require.JSONEq(t, `{"message": "Unauthorized"}`, string(b))
|
||||
|
|
@ -435,7 +435,7 @@ func TestAlertAndGroupsQuery(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, http.StatusUnauthorized, resp.StatusCode)
|
||||
|
||||
|
|
@ -454,7 +454,7 @@ func TestAlertAndGroupsQuery(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, 200, resp.StatusCode)
|
||||
require.JSONEq(t, "[]", string(b))
|
||||
|
|
@ -470,7 +470,7 @@ func TestAlertAndGroupsQuery(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, 200, resp.StatusCode)
|
||||
|
|
@ -529,7 +529,7 @@ func TestAlertAndGroupsQuery(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, 200, resp.StatusCode)
|
||||
|
||||
|
|
@ -704,7 +704,7 @@ func TestDeleteFolderWithRules(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.Equal(t, 200, resp.StatusCode)
|
||||
|
|
@ -781,7 +781,7 @@ func TestDeleteFolderWithRules(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, http.StatusBadRequest, resp.StatusCode)
|
||||
require.JSONEq(t, `{"message":"folder cannot be deleted: folder contains alert rules"}`, string(b))
|
||||
|
|
@ -799,7 +799,7 @@ func TestDeleteFolderWithRules(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, 200, resp.StatusCode)
|
||||
require.JSONEq(t, `{"id":1,"message":"Folder default deleted","title":"default"}`, string(b))
|
||||
|
|
@ -815,7 +815,7 @@ func TestDeleteFolderWithRules(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.Equal(t, 200, resp.StatusCode)
|
||||
|
|
@ -1155,7 +1155,7 @@ func TestAlertRuleCRUD(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.Equal(t, resp.StatusCode, 202)
|
||||
|
|
@ -1322,7 +1322,7 @@ func TestAlertRuleCRUD(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.Equal(t, resp.StatusCode, 202)
|
||||
|
|
@ -1428,7 +1428,7 @@ func TestAlertRuleCRUD(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.Equal(t, resp.StatusCode, 202)
|
||||
|
|
@ -1500,7 +1500,7 @@ func TestAlertRuleCRUD(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.Equal(t, resp.StatusCode, 202)
|
||||
|
|
@ -1617,7 +1617,7 @@ func TestAlertRuleCRUD(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.Equal(t, resp.StatusCode, 202)
|
||||
|
|
@ -1702,7 +1702,7 @@ func TestAlertRuleCRUD(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.Equal(t, resp.StatusCode, 202)
|
||||
|
|
@ -1774,7 +1774,7 @@ func TestAlertRuleCRUD(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
|
||||
require.Equal(t, http.StatusAccepted, resp.StatusCode)
|
||||
|
|
@ -1793,7 +1793,7 @@ func TestAlertRuleCRUD(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
|
||||
require.Equal(t, http.StatusAccepted, resp.StatusCode)
|
||||
|
|
@ -1822,7 +1822,7 @@ func TestAlertmanagerStatus(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, 200, resp.StatusCode)
|
||||
require.JSONEq(t, `
|
||||
|
|
@ -1904,7 +1904,7 @@ func TestQuota(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.Equal(t, resp.StatusCode, 202)
|
||||
|
|
@ -2022,7 +2022,7 @@ func TestQuota(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.Equal(t, resp.StatusCode, 202)
|
||||
|
|
@ -2318,7 +2318,7 @@ func TestEval(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
res := Response{}
|
||||
err = json.Unmarshal(b, &res)
|
||||
|
|
@ -2501,7 +2501,7 @@ func TestEval(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
res := Response{}
|
||||
err = json.Unmarshal(b, &res)
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package alerting
|
|||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"net/http"
|
||||
"testing"
|
||||
|
||||
|
|
@ -40,7 +40,7 @@ func TestAvailableChannels(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, 200, resp.StatusCode)
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ import (
|
|||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"mime/multipart"
|
||||
"net"
|
||||
"net/http"
|
||||
|
|
@ -59,7 +58,7 @@ func TestTestReceivers(t *testing.T) {
|
|||
require.NoError(t, err)
|
||||
})
|
||||
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
res := Response{}
|
||||
err = json.Unmarshal(b, &res)
|
||||
|
|
@ -110,7 +109,7 @@ func TestTestReceivers(t *testing.T) {
|
|||
require.NoError(t, err)
|
||||
})
|
||||
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
|
||||
var result apimodels.TestReceiversResult
|
||||
|
|
@ -189,7 +188,7 @@ func TestTestReceivers(t *testing.T) {
|
|||
require.NoError(t, resp.Body.Close())
|
||||
})
|
||||
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
|
||||
var result apimodels.TestReceiversResult
|
||||
|
|
@ -276,7 +275,7 @@ func TestTestReceivers(t *testing.T) {
|
|||
})
|
||||
require.Equal(t, http.StatusRequestTimeout, resp.StatusCode)
|
||||
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
|
||||
var result apimodels.TestReceiversResult
|
||||
|
|
@ -375,7 +374,7 @@ func TestTestReceivers(t *testing.T) {
|
|||
})
|
||||
require.Equal(t, http.StatusMultiStatus, resp.StatusCode)
|
||||
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
|
||||
var result apimodels.TestReceiversResult
|
||||
|
|
@ -478,7 +477,7 @@ func TestTestReceiversAlertCustomization(t *testing.T) {
|
|||
require.NoError(t, err)
|
||||
})
|
||||
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
|
||||
var result apimodels.TestReceiversResult
|
||||
|
|
@ -568,7 +567,7 @@ func TestTestReceiversAlertCustomization(t *testing.T) {
|
|||
require.NoError(t, err)
|
||||
})
|
||||
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
|
||||
var result apimodels.TestReceiversResult
|
||||
|
|
@ -655,7 +654,7 @@ func TestTestReceiversAlertCustomization(t *testing.T) {
|
|||
require.NoError(t, err)
|
||||
})
|
||||
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
|
||||
var result apimodels.TestReceiversResult
|
||||
|
|
@ -752,7 +751,7 @@ func TestNotificationChannels(t *testing.T) {
|
|||
// There are no notification channel config initially - so it returns the default configuration.
|
||||
alertsURL := fmt.Sprintf("http://grafana:password@%s/api/alertmanager/grafana/config/api/v1/alerts", grafanaListedAddr)
|
||||
resp := getRequest(t, alertsURL, http.StatusOK) // nolint
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.JSONEq(t, defaultAlertmanagerConfigJSON, string(b))
|
||||
}
|
||||
|
|
@ -812,14 +811,14 @@ func TestNotificationChannels(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, 202, resp.StatusCode)
|
||||
require.JSONEq(t, `{"message":"configuration deleted; the default is applied"}`, string(b))
|
||||
|
||||
alertsURL := fmt.Sprintf("http://grafana:password@%s/api/alertmanager/grafana/config/api/v1/alerts", grafanaListedAddr)
|
||||
resp = getRequest(t, alertsURL, http.StatusOK) // nolint
|
||||
b, err = ioutil.ReadAll(resp.Body)
|
||||
b, err = io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.JSONEq(t, defaultAlertmanagerConfigJSON, string(b))
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import (
|
|||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"net/http"
|
||||
"sort"
|
||||
"testing"
|
||||
|
|
@ -74,7 +74,7 @@ func TestPrometheusRules(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, 200, resp.StatusCode)
|
||||
require.JSONEq(t, `{"status": "success", "data": {"groups": []}}`, string(b))
|
||||
|
|
@ -149,7 +149,7 @@ func TestPrometheusRules(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.Equal(t, resp.StatusCode, 202)
|
||||
|
|
@ -203,7 +203,7 @@ func TestPrometheusRules(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.Equal(t, 400, resp.StatusCode)
|
||||
|
|
@ -222,7 +222,7 @@ func TestPrometheusRules(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, 200, resp.StatusCode)
|
||||
|
||||
|
|
@ -275,7 +275,7 @@ func TestPrometheusRules(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, 200, resp.StatusCode)
|
||||
require.JSONEq(t, `
|
||||
|
|
@ -414,7 +414,7 @@ func TestPrometheusRulesFilterByDashboard(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.Equal(t, resp.StatusCode, 202)
|
||||
|
|
@ -501,7 +501,7 @@ func TestPrometheusRulesFilterByDashboard(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, 200, resp.StatusCode)
|
||||
|
||||
|
|
@ -518,7 +518,7 @@ func TestPrometheusRulesFilterByDashboard(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, 200, resp.StatusCode)
|
||||
|
||||
|
|
@ -535,7 +535,7 @@ func TestPrometheusRulesFilterByDashboard(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, 200, resp.StatusCode)
|
||||
|
||||
|
|
@ -552,7 +552,7 @@ func TestPrometheusRulesFilterByDashboard(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, 200, resp.StatusCode)
|
||||
|
||||
|
|
@ -569,7 +569,7 @@ func TestPrometheusRulesFilterByDashboard(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, 200, resp.StatusCode)
|
||||
|
||||
|
|
@ -587,7 +587,7 @@ func TestPrometheusRulesFilterByDashboard(t *testing.T) {
|
|||
require.NoError(t, err)
|
||||
})
|
||||
require.Equal(t, http.StatusBadRequest, resp.StatusCode)
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
var res map[string]interface{}
|
||||
require.NoError(t, json.Unmarshal(b, &res))
|
||||
|
|
@ -605,7 +605,7 @@ func TestPrometheusRulesFilterByDashboard(t *testing.T) {
|
|||
require.NoError(t, err)
|
||||
})
|
||||
require.Equal(t, http.StatusBadRequest, resp.StatusCode)
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
var res map[string]interface{}
|
||||
require.NoError(t, json.Unmarshal(b, &res))
|
||||
|
|
@ -657,7 +657,7 @@ func TestPrometheusRulesPermissions(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, 200, resp.StatusCode)
|
||||
|
||||
|
|
@ -687,7 +687,7 @@ func TestPrometheusRulesPermissions(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, 200, resp.StatusCode)
|
||||
|
||||
|
|
@ -712,7 +712,7 @@ func TestPrometheusRulesPermissions(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, 200, resp.StatusCode)
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package alerting
|
|||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"io"
|
||||
"math/rand"
|
||||
"net/http"
|
||||
"testing"
|
||||
|
|
@ -64,7 +64,7 @@ func TestAlertRulePermissions(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.Equal(t, resp.StatusCode, 200)
|
||||
|
|
@ -187,7 +187,7 @@ func TestAlertRulePermissions(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err = ioutil.ReadAll(resp.Body)
|
||||
b, err = io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.Equal(t, resp.StatusCode, 200)
|
||||
|
|
@ -261,7 +261,7 @@ func TestAlertRulePermissions(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.Equal(t, resp.StatusCode, 200)
|
||||
|
|
@ -604,7 +604,7 @@ func TestRulerRulesFilterByDashboard(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, 200, resp.StatusCode)
|
||||
|
||||
|
|
@ -622,7 +622,7 @@ func TestRulerRulesFilterByDashboard(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, 200, resp.StatusCode)
|
||||
|
||||
|
|
@ -640,7 +640,7 @@ func TestRulerRulesFilterByDashboard(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, 200, resp.StatusCode)
|
||||
|
||||
|
|
@ -657,7 +657,7 @@ func TestRulerRulesFilterByDashboard(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, 200, resp.StatusCode)
|
||||
|
||||
|
|
@ -675,7 +675,7 @@ func TestRulerRulesFilterByDashboard(t *testing.T) {
|
|||
err := resp.Body.Close()
|
||||
require.NoError(t, err)
|
||||
})
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, 200, resp.StatusCode)
|
||||
|
||||
|
|
@ -693,7 +693,7 @@ func TestRulerRulesFilterByDashboard(t *testing.T) {
|
|||
require.NoError(t, err)
|
||||
})
|
||||
require.Equal(t, http.StatusBadRequest, resp.StatusCode)
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
var res map[string]interface{}
|
||||
require.NoError(t, json.Unmarshal(b, &res))
|
||||
|
|
@ -711,7 +711,7 @@ func TestRulerRulesFilterByDashboard(t *testing.T) {
|
|||
require.NoError(t, err)
|
||||
})
|
||||
require.Equal(t, http.StatusBadRequest, resp.StatusCode)
|
||||
b, err := ioutil.ReadAll(resp.Body)
|
||||
b, err := io.ReadAll(resp.Body)
|
||||
require.NoError(t, err)
|
||||
var res map[string]interface{}
|
||||
require.NoError(t, json.Unmarshal(b, &res))
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue