This is an automated email from the ASF dual-hosted git repository. astefanutti pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-k.git
commit 194ae8a60057a625af99b077a20ac5800570bef1 Author: Luca Burgazzoli <[email protected]> AuthorDate: Wed Nov 24 15:30:33 2021 +0100 fix(lint): context should be propagated (contextcheck) --- .golangci.yml | 1 - pkg/builder/s2i.go | 1 + pkg/cmd/run.go | 6 +++--- pkg/cmd/run_help.go | 2 +- pkg/cmd/util_content.go | 20 ++++++++++---------- pkg/cmd/util_content_test.go | 15 ++++++++------- pkg/cmd/util_dependencies.go | 6 +++--- pkg/cmd/util_sources.go | 6 +++--- pkg/controller/build/monitor_routine.go | 2 ++ pkg/util/camel/catalog.go | 2 +- 10 files changed, 32 insertions(+), 29 deletions(-) diff --git a/.golangci.yml b/.golangci.yml index c9af8be..e7eb670 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -55,6 +55,5 @@ linters: - nilnil - exhaustive - nakedret - - contextcheck - maligned diff --git a/pkg/builder/s2i.go b/pkg/builder/s2i.go index 2f7f488..153d0a3 100644 --- a/pkg/builder/s2i.go +++ b/pkg/builder/s2i.go @@ -209,6 +209,7 @@ func (t *s2iTask) Do(ctx context.Context) v1.BuildStatus { err = t.waitForS2iBuildCompletion(ctx, t.c, &s2iBuild) if err != nil { if errors.Is(err, context.Canceled) || errors.Is(err, context.DeadlineExceeded) { + // nolint: contextcheck if err := t.cancelBuild(context.Background(), &s2iBuild); err != nil { log.Errorf(err, "cannot cancel s2i Build: %s/%s", s2iBuild.Namespace, s2iBuild.Name) } diff --git a/pkg/cmd/run.go b/pkg/cmd/run.go index 261c530..ba01178 100644 --- a/pkg/cmd/run.go +++ b/pkg/cmd/run.go @@ -579,7 +579,7 @@ func (o *runCmdOptions) createOrUpdateIntegration(cmd *cobra.Command, c client.C } for _, resource := range o.OpenAPIs { - if err = addResource(resource, &integration.Spec, o.Compression, v1.ResourceTypeOpenAPI); err != nil { + if err = addResource(o.Context, resource, &integration.Spec, o.Compression, v1.ResourceTypeOpenAPI); err != nil { return nil, err } } @@ -686,8 +686,8 @@ func (o *runCmdOptions) createOrUpdateIntegration(cmd *cobra.Command, c client.C return integration, nil } -func addResource(resourceLocation string, integrationSpec *v1.IntegrationSpec, enableCompression bool, resourceType v1.ResourceType) error { - if data, _, compressed, err := loadTextContent(resourceLocation, enableCompression); err == nil { +func addResource(ctx context.Context, resourceLocation string, integrationSpec *v1.IntegrationSpec, enableCompression bool, resourceType v1.ResourceType) error { + if data, _, compressed, err := loadTextContent(ctx, resourceLocation, enableCompression); err == nil { integrationSpec.AddResources(v1.ResourceSpec{ DataSpec: v1.DataSpec{ Name: path.Base(resourceLocation), diff --git a/pkg/cmd/run_help.go b/pkg/cmd/run_help.go index 645efef..38422de 100644 --- a/pkg/cmd/run_help.go +++ b/pkg/cmd/run_help.go @@ -210,7 +210,7 @@ func applyOption(config *RunConfigOption, integrationSpec *v1.IntegrationSpec, return fmt.Errorf("you cannot provide a file larger than 1 MB (it was %s MB), check configmap option or --volume instead", printSize) } // Don't allow a binary non compressed resource - rawData, contentType, err := loadRawContent(config.Name()) + rawData, contentType, err := loadRawContent(context.Background(), config.Name()) if err != nil { return err } diff --git a/pkg/cmd/util_content.go b/pkg/cmd/util_content.go index 0ec57a4..8b52a34 100644 --- a/pkg/cmd/util_content.go +++ b/pkg/cmd/util_content.go @@ -43,7 +43,7 @@ func fileSize(source string) (int64, error) { return fi.Size(), nil } -func loadRawContent(source string) ([]byte, string, error) { +func loadRawContent(ctx context.Context, source string) ([]byte, string, error) { var content []byte var err error @@ -63,11 +63,11 @@ func loadRawContent(source string) ([]byte, string, error) { switch u.Scheme { case "github": - content, err = loadContentGitHub(u) + content, err = loadContentGitHub(ctx, u) case "http": - content, err = loadContentHTTP(u) + content, err = loadContentHTTP(ctx, u) case "https": - content, err = loadContentHTTP(u) + content, err = loadContentHTTP(ctx, u) default: return nil, "", fmt.Errorf("missing file or unsupported scheme %s", u.Scheme) } @@ -87,8 +87,8 @@ func isBinary(contentType string) bool { return !strings.HasPrefix(contentType, "text") } -func loadTextContent(source string, base64Compression bool) (string, string, bool, error) { - content, contentType, err := loadRawContent(source) +func loadTextContent(ctx context.Context, source string, base64Compression bool) (string, string, bool, error) { + content, contentType, err := loadRawContent(ctx, source) if err != nil { return "", "", false, err } @@ -101,8 +101,8 @@ func loadTextContent(source string, base64Compression bool) (string, string, boo return string(content), contentType, false, nil } -func loadContentHTTP(u fmt.Stringer) ([]byte, error) { - req, err := http.NewRequestWithContext(context.Background(), http.MethodGet, u.String(), nil) +func loadContentHTTP(ctx context.Context, u fmt.Stringer) ([]byte, error) { + req, err := http.NewRequestWithContext(ctx, http.MethodGet, u.String(), nil) if err != nil { return nil, err } @@ -124,7 +124,7 @@ func loadContentHTTP(u fmt.Stringer) ([]byte, error) { return io.ReadAll(resp.Body) } -func loadContentGitHub(u *url.URL) ([]byte, error) { +func loadContentGitHub(ctx context.Context, u *url.URL) ([]byte, error) { src := u.Scheme + ":" + u.Opaque re := regexp.MustCompile(`^github:([^/]+)/([^/]+)/(.+)$`) @@ -144,5 +144,5 @@ func loadContentGitHub(u *url.URL) ([]byte, error) { return []byte{}, err } - return loadContentHTTP(rawURL) + return loadContentHTTP(ctx, rawURL) } diff --git a/pkg/cmd/util_content_test.go b/pkg/cmd/util_content_test.go index 5684ac8..388c867 100644 --- a/pkg/cmd/util_content_test.go +++ b/pkg/cmd/util_content_test.go @@ -18,6 +18,7 @@ limitations under the License. package cmd import ( + "context" "fmt" "io/ioutil" "net/http" @@ -30,7 +31,7 @@ import ( ) func TestRawContentFileMissing(t *testing.T) { - _, _, err := loadRawContent("dsadas") + _, _, err := loadRawContent(context.TODO(), "dsadas") assert.NotNil(t, err) } @@ -43,7 +44,7 @@ func TestRawBinaryContentType(t *testing.T) { assert.Nil(t, tmpFile.Close()) assert.Nil(t, ioutil.WriteFile(tmpFile.Name(), []byte{1, 2, 3, 4, 5, 6}, 0o400)) - data, contentType, err := loadRawContent(tmpFile.Name()) + data, contentType, err := loadRawContent(context.TODO(), tmpFile.Name()) assert.Nil(t, err) assert.Equal(t, []byte{1, 2, 3, 4, 5, 6}, data) assert.True(t, isBinary(contentType)) @@ -58,7 +59,7 @@ func TestRawApplicationContentType(t *testing.T) { assert.Nil(t, tmpFile.Close()) assert.Nil(t, ioutil.WriteFile(tmpFile.Name(), []byte(`{"hello":"world"}`), 0o400)) - data, contentType, err := loadRawContent(tmpFile.Name()) + data, contentType, err := loadRawContent(context.TODO(), tmpFile.Name()) assert.Nil(t, err) assert.Equal(t, `{"hello":"world"}`, string(data)) assert.False(t, isBinary(contentType)) @@ -73,7 +74,7 @@ func TestTextContentType(t *testing.T) { assert.Nil(t, tmpFile.Close()) assert.Nil(t, ioutil.WriteFile(tmpFile.Name(), []byte(`{"hello":"world"}`), 0o400)) - data, contentType, compressed, err := loadTextContent(tmpFile.Name(), false) + data, contentType, compressed, err := loadTextContent(context.TODO(), tmpFile.Name(), false) assert.Nil(t, err) assert.Equal(t, `{"hello":"world"}`, data) assert.False(t, isBinary(contentType)) @@ -89,7 +90,7 @@ func TestTextCompressed(t *testing.T) { assert.Nil(t, tmpFile.Close()) assert.Nil(t, ioutil.WriteFile(tmpFile.Name(), []byte(`{"hello":"world"}`), 0o400)) - data, contentType, compressed, err := loadTextContent(tmpFile.Name(), true) + data, contentType, compressed, err := loadTextContent(context.TODO(), tmpFile.Name(), true) assert.Nil(t, err) assert.NotEqual(t, `{"hello":"world"}`, data) assert.False(t, isBinary(contentType)) @@ -105,14 +106,14 @@ func TestIsBinary(t *testing.T) { func TestContentHttp(t *testing.T) { expected := "the content" svr := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - _, _ = fmt.Fprintf(w, expected) + _, _ = fmt.Fprint(w, expected) })) defer svr.Close() u, err := url.Parse(svr.URL) assert.Nil(t, err) - data, err := loadContentHTTP(u) + data, err := loadContentHTTP(context.TODO(), u) assert.Nil(t, err) assert.NotEmpty(t, data) assert.Equal(t, expected, string(data)) diff --git a/pkg/cmd/util_dependencies.go b/pkg/cmd/util_dependencies.go index 351091f..5f0a758 100644 --- a/pkg/cmd/util_dependencies.go +++ b/pkg/cmd/util_dependencies.go @@ -51,7 +51,7 @@ func getDependencies(ctx context.Context, args []string, additionalDependencies } // Get top-level dependencies - dependencies, err := getTopLevelDependencies(catalog, args) + dependencies, err := getTopLevelDependencies(ctx, catalog, args) if err != nil { return nil, err } @@ -75,13 +75,13 @@ func getDependencies(ctx context.Context, args []string, additionalDependencies return dependencies, nil } -func getTopLevelDependencies(catalog *camel.RuntimeCatalog, args []string) ([]string, error) { +func getTopLevelDependencies(ctx context.Context, catalog *camel.RuntimeCatalog, args []string) ([]string, error) { // List of top-level dependencies dependencies := strset.New() // Invoke the dependency inspector code for each source file for _, source := range args { - data, _, _, err := loadTextContent(source, false) + data, _, _, err := loadTextContent(ctx, source, false) if err != nil { return []string{}, err } diff --git a/pkg/cmd/util_sources.go b/pkg/cmd/util_sources.go index fc9e624..4765535 100644 --- a/pkg/cmd/util_sources.go +++ b/pkg/cmd/util_sources.go @@ -140,7 +140,7 @@ func ResolveSources(ctx context.Context, locations []string, compress bool) ([]S Compress: compress, } - content, err := loadContentGitHub(u) + content, err := loadContentGitHub(ctx, u) if err != nil { return sources, err } @@ -156,7 +156,7 @@ func ResolveSources(ctx context.Context, locations []string, compress bool) ([]S Compress: compress, } - content, err := loadContentHTTP(u) + content, err := loadContentHTTP(ctx, u) if err != nil { return sources, err } @@ -172,7 +172,7 @@ func ResolveSources(ctx context.Context, locations []string, compress bool) ([]S Compress: compress, } - content, err := loadContentHTTP(u) + content, err := loadContentHTTP(ctx, u) if err != nil { return sources, err } diff --git a/pkg/controller/build/monitor_routine.go b/pkg/controller/build/monitor_routine.go index aec80b8..cea4d0b 100644 --- a/pkg/controller/build/monitor_routine.go +++ b/pkg/controller/build/monitor_routine.go @@ -75,6 +75,8 @@ func (action *monitorRoutineAction) Handle(ctx context.Context, build *v1.Build) } // Start the build asynchronously to avoid blocking the reconciliation loop routines.Store(build.Name, true) + + // nolint: contextcheck go action.runBuild(build) case v1.BuildPhaseRunning: diff --git a/pkg/util/camel/catalog.go b/pkg/util/camel/catalog.go index 531e791..f47cf61 100644 --- a/pkg/util/camel/catalog.go +++ b/pkg/util/camel/catalog.go @@ -124,7 +124,7 @@ func GenerateCatalogCommon( if caCert != nil { trustStoreName := "trust.jks" trustStorePass := jvm.NewKeystorePassword() - err := jvm.GenerateKeystore(context.Background(), tmpDir, trustStoreName, trustStorePass, caCert) + err := jvm.GenerateKeystore(ctx, tmpDir, trustStoreName, trustStorePass, caCert) if err != nil { return nil, err }
