diff --git a/scripts/subtests/lint b/scripts/subtests/lint index bc83445e..7332e721 100755 --- a/scripts/subtests/lint +++ b/scripts/subtests/lint @@ -5,14 +5,10 @@ set -o pipefail SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" -set +e -golangci_lint_executable=$(which golangci-lint) -set -e -if [ -z "${golangci_lint_executable}" ] || [ ! -x "${golangci_lint_executable}" ]; then +if ! command -v golangci-lint &> /dev/null; then go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@latest fi pushd "${SCRIPT_DIR}/../../src" > /dev/null golangci-lint run ./... -popd > /dev/null - +popd > /dev/null \ No newline at end of file diff --git a/scripts/subtests/spec-test b/scripts/subtests/spec-test index d8c8313e..0cd3756b 100755 --- a/scripts/subtests/spec-test +++ b/scripts/subtests/spec-test @@ -5,10 +5,7 @@ set -o pipefail SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" -set +e -bundler_executable=$(which bundle) -set -e -if [ -z "${bundler_executable}" ] || [ ! -x "${bundler_executable}" ]; then +if ! command -v bundle &> /dev/null; then gem install bundler fi diff --git a/scripts/subtests/unit-test b/scripts/subtests/unit-test index 45688302..cba0b9ad 100755 --- a/scripts/subtests/unit-test +++ b/scripts/subtests/unit-test @@ -11,6 +11,8 @@ if [ "${CI:-false}" = 'false' ]; then fi pushd "${SCRIPT_DIR}/../../src" > /dev/null - go run github.com/onsi/ginkgo/v2/ginkgo $flags -popd > /dev/null - + if ! command -v ginkgo &> /dev/null; then + go install github.com/onsi/ginkgo/v2/ginkgo@latest + fi + ginkgo $flags +popd > /dev/null \ No newline at end of file diff --git a/src/.golangci.yml b/src/.golangci.yml index 0f67598b..79b1e72c 100644 --- a/src/.golangci.yml +++ b/src/.golangci.yml @@ -26,6 +26,11 @@ linters: - third_party$ - builtin$ - examples$ + rules: + # Exclude gosec from all test files + - path: _test\.go + linters: + - gosec issues: # Disable max issues per linter. @@ -33,6 +38,7 @@ issues: # Disable max same issues. max-same-issues: 0 + formatters: exclusions: generated: lax diff --git a/src/cmd/cf-auth-proxy/config.go b/src/cmd/cf-auth-proxy/config.go index f9fd7da5..145096a3 100644 --- a/src/cmd/cf-auth-proxy/config.go +++ b/src/cmd/cf-auth-proxy/config.go @@ -15,7 +15,7 @@ type CAPI struct { type UAA struct { ClientID string `env:"UAA_CLIENT_ID,"` - ClientSecret string `env:"UAA_CLIENT_SECRET,"` + ClientSecret string `env:"UAA_CLIENT_SECRET,"` //#nosec G117 Addr string `env:"UAA_ADDR, required, report"` CAPath string `env:"UAA_CA_PATH, report"` } diff --git a/src/internal/auth/capi_client.go b/src/internal/auth/capi_client.go index 3c6d07a5..8c083bce 100644 --- a/src/internal/auth/capi_client.go +++ b/src/internal/auth/capi_client.go @@ -96,7 +96,7 @@ func (c *CAPIClient) IsAuthorized(sourceId string, clientToken string) bool { } func (c *CAPIClient) HasApp(sourceID, authToken string) bool { - req, err := http.NewRequest(http.MethodGet, c.addr+"/v3/apps/"+sourceID, nil) + req, err := http.NewRequest(http.MethodGet, c.addr+"/v3/apps/"+sourceID, nil) //#nosec G704 if err != nil { c.log.Printf("failed to build authorize log access request: %s", err) return false @@ -130,7 +130,7 @@ func (c *CAPIClient) GetRelatedSourceIds(appNames []string, authToken string) ma return map[string][]string{} } - req, err := http.NewRequest(http.MethodGet, c.addr+"/v3/apps", nil) + req, err := http.NewRequest(http.MethodGet, c.addr+"/v3/apps", nil) //#nosec G704 if err != nil { c.log.Printf("failed to build app list request: %s", err) return map[string][]string{} diff --git a/src/internal/cache/log_cache.go b/src/internal/cache/log_cache.go index 522327f1..48d31898 100644 --- a/src/internal/cache/log_cache.go +++ b/src/internal/cache/log_cache.go @@ -1,6 +1,7 @@ package cache import ( + "context" "log" "net" "strconv" @@ -9,7 +10,6 @@ import ( metrics "code.cloudfoundry.org/go-metric-registry" - "golang.org/x/net/context" "google.golang.org/grpc" "google.golang.org/grpc/credentials/insecure" diff --git a/src/internal/gateway/gateway.go b/src/internal/gateway/gateway.go index eb04f237..4206e64a 100644 --- a/src/internal/gateway/gateway.go +++ b/src/internal/gateway/gateway.go @@ -1,6 +1,7 @@ package gateway import ( + "context" "fmt" "io" "log" @@ -10,7 +11,6 @@ import ( "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" "github.com/shirou/gopsutil/v4/host" - "golang.org/x/net/context" "google.golang.org/grpc" "google.golang.org/grpc/status" "google.golang.org/protobuf/encoding/protojson" diff --git a/src/internal/nozzle/nozzle.go b/src/internal/nozzle/nozzle.go index 8abc9433..771e6259 100644 --- a/src/internal/nozzle/nozzle.go +++ b/src/internal/nozzle/nozzle.go @@ -1,6 +1,7 @@ package nozzle import ( + "context" "log" "runtime" "time" @@ -11,7 +12,6 @@ import ( diodes "code.cloudfoundry.org/go-diodes" "code.cloudfoundry.org/go-log-cache/v3/rpc/logcache_v1" "code.cloudfoundry.org/go-loggregator/v10/rpc/loggregator_v2" - "golang.org/x/net/context" "google.golang.org/grpc" "google.golang.org/grpc/credentials/insecure" ) @@ -177,7 +177,7 @@ func (n *Nozzle) envelopeWriter(ch chan []*loggregator_v2.Envelope, client logca for { envelopes := <-ch - ctx, _ := context.WithTimeout(context.Background(), 3*time.Second) + ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second) _, err := client.Send(ctx, &logcache_v1.SendRequest{ Envelopes: &loggregator_v2.EnvelopeBatch{ Batch: envelopes, @@ -186,10 +186,12 @@ func (n *Nozzle) envelopeWriter(ch chan []*loggregator_v2.Envelope, client logca if err != nil { n.errCounter.Add(1) + cancel() continue } n.egressCounter.Add(float64(len(envelopes))) + cancel() } } diff --git a/src/internal/nozzle/nozzle_test.go b/src/internal/nozzle/nozzle_test.go index 79aabddb..c3e18e41 100644 --- a/src/internal/nozzle/nozzle_test.go +++ b/src/internal/nozzle/nozzle_test.go @@ -1,6 +1,7 @@ package nozzle_test import ( + "context" "log" "sync" @@ -9,7 +10,6 @@ import ( "code.cloudfoundry.org/go-loggregator/v10" "code.cloudfoundry.org/go-loggregator/v10/rpc/loggregator_v2" . "code.cloudfoundry.org/log-cache/internal/nozzle" - "golang.org/x/net/context" "google.golang.org/grpc" "google.golang.org/grpc/credentials" "google.golang.org/grpc/credentials/insecure" diff --git a/src/internal/routing/batched_ingress_client.go b/src/internal/routing/batched_ingress_client.go index 6ee212c6..4d33c1f3 100644 --- a/src/internal/routing/batched_ingress_client.go +++ b/src/internal/routing/batched_ingress_client.go @@ -1,6 +1,7 @@ package routing import ( + "context" "log" "time" @@ -10,7 +11,6 @@ import ( diodes "code.cloudfoundry.org/go-diodes" rpc "code.cloudfoundry.org/go-log-cache/v3/rpc/logcache_v1" "code.cloudfoundry.org/go-loggregator/v10/rpc/loggregator_v2" - "golang.org/x/net/context" "google.golang.org/grpc" ) @@ -96,7 +96,8 @@ func (b *BatchedIngressClient) write(batch []interface{}) { e = append(e, i.(*loggregator_v2.Envelope)) } - ctx, _ := context.WithTimeout(context.Background(), 3*time.Second) + ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second) + defer cancel() _, err := b.c.Send(ctx, &rpc.SendRequest{ LocalOnly: b.localOnly, Envelopes: &loggregator_v2.EnvelopeBatch{Batch: e}, diff --git a/src/internal/routing/batched_ingress_client_test.go b/src/internal/routing/batched_ingress_client_test.go index f9a1d8d7..4e393154 100644 --- a/src/internal/routing/batched_ingress_client_test.go +++ b/src/internal/routing/batched_ingress_client_test.go @@ -1,6 +1,7 @@ package routing_test import ( + "context" "io" "log" "time" @@ -11,7 +12,6 @@ import ( "code.cloudfoundry.org/go-loggregator/v10/rpc/loggregator_v2" metrics "code.cloudfoundry.org/go-metric-registry" "code.cloudfoundry.org/log-cache/internal/routing" - "golang.org/x/net/context" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" diff --git a/src/internal/routing/local_store_reader.go b/src/internal/routing/local_store_reader.go index 2a00b6ac..d8862ad3 100644 --- a/src/internal/routing/local_store_reader.go +++ b/src/internal/routing/local_store_reader.go @@ -1,13 +1,13 @@ package routing import ( + "context" "fmt" "regexp" "time" "code.cloudfoundry.org/go-log-cache/v3/rpc/logcache_v1" "code.cloudfoundry.org/go-loggregator/v10/rpc/loggregator_v2" - "golang.org/x/net/context" "google.golang.org/grpc" ) diff --git a/src/internal/routing/local_store_reader_test.go b/src/internal/routing/local_store_reader_test.go index 692d32b4..72cb3a42 100644 --- a/src/internal/routing/local_store_reader_test.go +++ b/src/internal/routing/local_store_reader_test.go @@ -1,13 +1,13 @@ package routing_test import ( + "context" "regexp" "time" "code.cloudfoundry.org/go-log-cache/v3/rpc/logcache_v1" "code.cloudfoundry.org/go-loggregator/v10/rpc/loggregator_v2" "code.cloudfoundry.org/log-cache/internal/routing" - "golang.org/x/net/context" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" diff --git a/src/internal/routing/static_lookup.go b/src/internal/routing/static_lookup.go index 49f2fd82..5acab019 100644 --- a/src/internal/routing/static_lookup.go +++ b/src/internal/routing/static_lookup.go @@ -23,8 +23,8 @@ func NewStaticLookup(numOfRoutes int, hasher func(string) uint64) *StaticLookup // NOTE: 18446744073709551615 is 0xFFFFFFFFFFFFFFFF or the max value of a // uint64. - x := (18446744073709551615 / uint64(numOfRoutes)) - for i := uint64(0); i < uint64(numOfRoutes); i++ { + x := (18446744073709551615 / uint64(numOfRoutes)) //#nosec G115 + for i := uint64(0); i < uint64(numOfRoutes); i++ { //#nosec G115 t.Put(i*x, i) } diff --git a/src/internal/syslog/server.go b/src/internal/syslog/server.go index 5473105e..ee309bf3 100644 --- a/src/internal/syslog/server.go +++ b/src/internal/syslog/server.go @@ -1,10 +1,15 @@ package syslog import ( + "context" "crypto/tls" "errors" "fmt" "log" + "net" + "strconv" + "strings" + "sync" "time" "code.cloudfoundry.org/go-loggregator/v10" @@ -15,13 +20,6 @@ import ( "github.com/leodido/go-syslog/v4/nontransparent" "github.com/leodido/go-syslog/v4/octetcounting" "github.com/leodido/go-syslog/v4/rfc5424" - - "net" - "strconv" - "strings" - "sync" - - "golang.org/x/net/context" ) type Server struct {