diff --git a/cmd/devcloud/main.go b/cmd/devcloud/main.go index 5d5f608..1d5bcc9 100644 --- a/cmd/devcloud/main.go +++ b/cmd/devcloud/main.go @@ -105,7 +105,7 @@ func main() { // 404 handler so the dashboard routes don't leak service internals. bus := eventbus.New() logCollector := dashboard.NewLogCollector(1000) - var dashHandler http.Handler = http.NotFoundHandler() + dashHandler := http.NotFoundHandler() webDir := "" if cfg.Dashboard.Enabled { dashAPI := dashboard.NewDashboardAPI(registry, logCollector) diff --git a/internal/codegen/parser.go b/internal/codegen/parser.go index 7281a40..de1044c 100644 --- a/internal/codegen/parser.go +++ b/internal/codegen/parser.go @@ -105,7 +105,7 @@ func ParseSmithyJSON(data []byte) (*SmithyModel, error) { } if httpTrait, ok := opShape.Traits["smithy.api#http"]; ok { var ht rawHTTPTrait - json.Unmarshal(httpTrait, &ht) //nolint:errcheck + _ = json.Unmarshal(httpTrait, &ht) //nolint:errcheck op.HTTPMethod = ht.Method op.HTTPUri = ht.URI } @@ -146,12 +146,12 @@ func ParseSmithyJSON(data []byte) (*SmithyModel, error) { } if hdr, ok := member.Traits["smithy.api#httpHeader"]; ok { var headerName string - json.Unmarshal(hdr, &headerName) //nolint:errcheck + _ = json.Unmarshal(hdr, &headerName) //nolint:errcheck m.HTTPHeader = headerName } if q, ok := member.Traits["smithy.api#httpQuery"]; ok { var queryName string - json.Unmarshal(q, &queryName) //nolint:errcheck + _ = json.Unmarshal(q, &queryName) //nolint:errcheck m.HTTPQuery = queryName } } @@ -163,11 +163,11 @@ func ParseSmithyJSON(data []byte) (*SmithyModel, error) { if errType, ok := rs.Traits["smithy.api#error"]; ok { var et string - json.Unmarshal(errType, &et) //nolint:errcheck + _ = json.Unmarshal(errType, &et) //nolint:errcheck shape.ErrorTrait = &ErrorTrait{Type: et} if httpErr, ok := rs.Traits["smithy.api#httpError"]; ok { var status int - json.Unmarshal(httpErr, &status) //nolint:errcheck + _ = json.Unmarshal(httpErr, &status) //nolint:errcheck shape.ErrorTrait.HTTPStatus = status } } diff --git a/internal/dashboard/api_test.go b/internal/dashboard/api_test.go index 0c70a80..f7047e8 100644 --- a/internal/dashboard/api_test.go +++ b/internal/dashboard/api_test.go @@ -48,7 +48,8 @@ func newTestRegistry(p *mockServicePlugin) *plugin.Registry { reg.Register(p.id, func(cfg plugin.PluginConfig) plugin.ServicePlugin { return captured }) - reg.Init(p.id, plugin.PluginConfig{}) //nolint:errcheck + _, err := reg.Init(p.id, plugin.PluginConfig{}) + _ = err return reg } diff --git a/internal/dashboard/websocket.go b/internal/dashboard/websocket.go index 7fdf1dd..6174b13 100644 --- a/internal/dashboard/websocket.go +++ b/internal/dashboard/websocket.go @@ -93,7 +93,7 @@ func (h *Hub) ServeWS(w http.ResponseWriter, r *http.Request) { h.mu.Lock() delete(h.clients, client) h.mu.Unlock() - conn.Close() + _ = conn.Close() }) } diff --git a/internal/dashboard/websocket_test.go b/internal/dashboard/websocket_test.go index 2b4e583..3338507 100644 --- a/internal/dashboard/websocket_test.go +++ b/internal/dashboard/websocket_test.go @@ -42,7 +42,7 @@ func TestHub_ClientConnects(t *testing.T) { defer server.Close() conn := dialWS(t, wsURL(server.URL)) - defer conn.Close() + defer func() { _ = conn.Close() }() // Give the hub a moment to register the client. time.Sleep(50 * time.Millisecond) @@ -65,7 +65,7 @@ func TestHub_BroadcastEvent(t *testing.T) { defer server.Close() conn := dialWS(t, wsURL(server.URL)) - defer conn.Close() + defer func() { _ = conn.Close() }() // Allow the hub to register the client before publishing. time.Sleep(50 * time.Millisecond) @@ -81,7 +81,7 @@ func TestHub_BroadcastEvent(t *testing.T) { require.NoError(t, err) // Read message with a deadline to avoid hanging on failure. - conn.SetReadDeadline(time.Now().Add(2 * time.Second)) + _ = conn.SetReadDeadline(time.Now().Add(2 * time.Second)) _, raw, err := conn.ReadMessage() require.NoError(t, err) diff --git a/internal/eventbus/eventbus_test.go b/internal/eventbus/eventbus_test.go index 4abb232..62a4b6e 100644 --- a/internal/eventbus/eventbus_test.go +++ b/internal/eventbus/eventbus_test.go @@ -24,12 +24,11 @@ func TestPublishAndSubscribe(t *testing.T) { }) defer unsub() - err := bus.Publish(context.Background(), Event{ + require.NoError(t, bus.Publish(context.Background(), Event{ Source: "s3", Type: "s3:ObjectCreated", Detail: map[string]any{"bucket": "test", "key": "hello.txt"}, - }) - require.NoError(t, err) + })) time.Sleep(50 * time.Millisecond) mu.Lock() @@ -51,8 +50,8 @@ func TestSubscribeWildcard(t *testing.T) { }) defer unsub() - bus.Publish(context.Background(), Event{Source: "s3", Type: "s3:ObjectCreated"}) - bus.Publish(context.Background(), Event{Source: "sqs", Type: "sqs:MessageSent"}) + require.NoError(t, bus.Publish(context.Background(), Event{Source: "s3", Type: "s3:ObjectCreated"})) + require.NoError(t, bus.Publish(context.Background(), Event{Source: "sqs", Type: "sqs:MessageSent"})) time.Sleep(50 * time.Millisecond) mu.Lock() @@ -71,12 +70,12 @@ func TestUnsubscribe(t *testing.T) { mu.Unlock() }) - bus.Publish(context.Background(), Event{Type: "test"}) + require.NoError(t, bus.Publish(context.Background(), Event{Type: "test"})) time.Sleep(50 * time.Millisecond) unsub() - bus.Publish(context.Background(), Event{Type: "test"}) + require.NoError(t, bus.Publish(context.Background(), Event{Type: "test"})) time.Sleep(50 * time.Millisecond) mu.Lock() diff --git a/internal/gateway/gateway_test.go b/internal/gateway/gateway_test.go index 9425d69..c09e5d4 100644 --- a/internal/gateway/gateway_test.go +++ b/internal/gateway/gateway_test.go @@ -38,7 +38,7 @@ func TestGateway_Integration(t *testing.T) { res, err := http.Get(srv.URL + "/") require.NoError(t, err) - defer res.Body.Close() + defer func() { _ = res.Body.Close() }() assert.Equal(t, http.StatusOK, res.StatusCode) // Middleware headers must be present. diff --git a/internal/gateway/middleware.go b/internal/gateway/middleware.go index 4aedfdc..b4f6af4 100644 --- a/internal/gateway/middleware.go +++ b/internal/gateway/middleware.go @@ -78,11 +78,11 @@ func ErrorRecoveryMiddleware(next http.Handler) http.Handler { strings.HasPrefix(r.URL.Path, "/2015-03-31/") { w.Header().Set("Content-Type", "application/json") w.WriteHeader(http.StatusInternalServerError) - fmt.Fprintf(w, `{"__type":"InternalError","message":"%v"}`, rec) + _, _ = fmt.Fprintf(w, `{"__type":"InternalError","message":"%v"}`, rec) } else { w.Header().Set("Content-Type", "application/xml") w.WriteHeader(http.StatusInternalServerError) - fmt.Fprintf(w, `InternalError%v`, rec) + _, _ = fmt.Fprintf(w, `InternalError%v`, rec) } } }() diff --git a/internal/plugin/registry_test.go b/internal/plugin/registry_test.go index dab861b..dae4bad 100644 --- a/internal/plugin/registry_test.go +++ b/internal/plugin/registry_test.go @@ -42,6 +42,7 @@ func TestRegistryGetUnknown(t *testing.T) { func TestRegistryList(t *testing.T) { reg := NewRegistry() reg.Register("s3", func(cfg PluginConfig) ServicePlugin { return &mockPlugin{} }) - reg.Init("s3", PluginConfig{}) + _, err := reg.Init("s3", PluginConfig{}) + require.NoError(t, err) assert.Equal(t, []string{"s3"}, reg.ActiveServices()) } diff --git a/internal/services/account/provider.go b/internal/services/account/provider.go index 29a3efd..e031e73 100644 --- a/internal/services/account/provider.go +++ b/internal/services/account/provider.go @@ -50,7 +50,7 @@ func (p *AccountProvider) HandleRequest(_ context.Context, op string, req *http. body, _ := io.ReadAll(req.Body) var bodyMap map[string]any if len(body) > 0 { - json.Unmarshal(body, &bodyMap) + _ = json.Unmarshal(body, &bodyMap) } if bodyMap == nil { bodyMap = map[string]any{} diff --git a/internal/services/account/provider_test.go b/internal/services/account/provider_test.go index da202a1..4db5e02 100644 --- a/internal/services/account/provider_test.go +++ b/internal/services/account/provider_test.go @@ -19,7 +19,7 @@ func newTestProvider(t *testing.T) *AccountProvider { p := &AccountProvider{} err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/account/store.go b/internal/services/account/store.go index 549f1db..fa67d2a 100644 --- a/internal/services/account/store.go +++ b/internal/services/account/store.go @@ -180,24 +180,30 @@ type Region struct { } func (s *Store) ListRegions(accountID string) ([]*Region, error) { - s.ensureRegions(accountID) + if err := s.ensureRegions(accountID); err != nil { + return nil, err + } rows, err := s.db().Query( `SELECT region_name, opt_status FROM account_regions WHERE account_id=? ORDER BY region_name`, accountID) if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []*Region for rows.Next() { r := &Region{} - rows.Scan(&r.RegionName, &r.OptStatus) + if err := rows.Scan(&r.RegionName, &r.OptStatus); err != nil { + return nil, err + } out = append(out, r) } return out, rows.Err() } func (s *Store) GetRegionOptStatus(accountID, regionName string) (*Region, error) { - s.ensureRegions(accountID) + if err := s.ensureRegions(accountID); err != nil { + return nil, err + } row := s.db().QueryRow( `SELECT region_name, opt_status FROM account_regions WHERE account_id=? AND region_name=?`, accountID, regionName) @@ -213,7 +219,9 @@ func (s *Store) GetRegionOptStatus(accountID, regionName string) (*Region, error } func (s *Store) SetRegionOptStatus(accountID, regionName, status string) error { - s.ensureRegions(accountID) + if err := s.ensureRegions(accountID); err != nil { + return err + } _, err := s.db().Exec( `INSERT INTO account_regions (account_id, region_name, opt_status) VALUES (?,?,?) ON CONFLICT(account_id, region_name) DO UPDATE SET opt_status=excluded.opt_status`, @@ -224,7 +232,7 @@ func (s *Store) SetRegionOptStatus(accountID, regionName, status string) error { // --- Primary Email --- func (s *Store) GetPrimaryEmail(accountID string) (email, pending string) { - s.db().QueryRow(`SELECT COALESCE(email,''), COALESCE(pending_email,'') FROM account_primary_email WHERE account_id=?`, accountID). + _ = s.db().QueryRow(`SELECT COALESCE(email,''), COALESCE(pending_email,'') FROM account_primary_email WHERE account_id=?`, accountID). Scan(&email, &pending) return } @@ -248,7 +256,7 @@ func (s *Store) StartPrimaryEmailUpdate(accountID, pendingEmail string) error { func (s *Store) AcceptPrimaryEmailUpdate(accountID string) error { row := s.db().QueryRow(`SELECT COALESCE(pending_email,'') FROM account_primary_email WHERE account_id=?`, accountID) var pending string - row.Scan(&pending) + _ = row.Scan(&pending) if pending == "" { return ErrNotFound } diff --git a/internal/services/acm/store.go b/internal/services/acm/store.go index 04a631a..dae6f0b 100644 --- a/internal/services/acm/store.go +++ b/internal/services/acm/store.go @@ -115,7 +115,7 @@ func (s *ACMStore) ListCertificates(accountID string) ([]Certificate, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var certs []Certificate for rows.Next() { c, err := scanCert(rows) @@ -160,7 +160,7 @@ func (s *ACMStore) ListTags(arn string) ([]CertTag, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var tags []CertTag for rows.Next() { var t CertTag diff --git a/internal/services/acmpca/store.go b/internal/services/acmpca/store.go index 4c46173..f06f69e 100644 --- a/internal/services/acmpca/store.go +++ b/internal/services/acmpca/store.go @@ -137,7 +137,7 @@ func (s *ACMPCAStore) ListCAs() ([]CertificateAuthority, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var cas []CertificateAuthority for rows.Next() { ca, err := scanCA(rows) @@ -194,7 +194,7 @@ func (s *ACMPCAStore) ListPermissions(caARN string) ([]Permission, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var perms []Permission for rows.Next() { var p Permission @@ -243,7 +243,7 @@ func (s *ACMPCAStore) ListTags(caARN string) ([]Tag, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var tags []Tag for rows.Next() { var t Tag diff --git a/internal/services/amplify/provider.go b/internal/services/amplify/provider.go index e08bc0a..07715e2 100644 --- a/internal/services/amplify/provider.go +++ b/internal/services/amplify/provider.go @@ -437,7 +437,7 @@ func (p *Provider) createApp(params map[string]any) (*plugin.Response, error) { } if rawTags, ok := params["tags"].(map[string]any); ok { - p.store.tags.AddTags(arn, toStringMap(rawTags)) + _ = p.store.tags.AddTags(arn, toStringMap(rawTags)) } tags, _ := p.store.tags.ListTags(arn) @@ -489,7 +489,7 @@ func (p *Provider) deleteApp(appID string) (*plugin.Response, error) { if err != nil { return shared.JSONError("NotFoundException", "app not found", http.StatusNotFound), nil } - p.store.tags.DeleteAllTags(a.ARN) + _ = p.store.tags.DeleteAllTags(a.ARN) tags := map[string]string{} return shared.JSONResponse(http.StatusOK, map[string]any{"app": appToMap(a, tags)}) } @@ -832,7 +832,7 @@ func (p *Provider) stopJob(appID, branchName, jobID string) (*plugin.Response, e if err != nil { return shared.JSONError("NotFoundException", "job not found", http.StatusNotFound), nil } - p.store.UpdateJobStatus(appID, branchName, jobID, "CANCELLED") + p.store.UpdateJobStatus(appID, branchName, jobID, "CANCELLED") //nolint:errcheck j.Status = "CANCELLED" return shared.JSONResponse(http.StatusOK, map[string]any{"jobSummary": buildJobSummaryMap(j)}) } @@ -928,7 +928,7 @@ func branchToMap(b *Branch) map[string]any { func domainAssociationToMap(d *DomainAssociation) map[string]any { var subDomains any - json.Unmarshal([]byte(d.SubDomains), &subDomains) + _ = json.Unmarshal([]byte(d.SubDomains), &subDomains) if subDomains == nil { subDomains = []any{} } diff --git a/internal/services/amplify/provider_test.go b/internal/services/amplify/provider_test.go index 60d69f3..583fc23 100644 --- a/internal/services/amplify/provider_test.go +++ b/internal/services/amplify/provider_test.go @@ -20,7 +20,7 @@ func newTestProvider(t *testing.T) *Provider { p := &Provider{} err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/amplify/store.go b/internal/services/amplify/store.go index 8a81391..221440c 100644 --- a/internal/services/amplify/store.go +++ b/internal/services/amplify/store.go @@ -205,7 +205,7 @@ func (s *Store) ListApps() ([]App, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var apps []App for rows.Next() { a, err := scanApp(rows) @@ -289,7 +289,7 @@ func (s *Store) ListBranches(appID string) ([]Branch, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var branches []Branch for rows.Next() { b, err := scanBranch(rows) @@ -374,7 +374,7 @@ func (s *Store) ListDomainAssociations(appID string) ([]DomainAssociation, error if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var domains []DomainAssociation for rows.Next() { d, err := scanDomainAssociation(rows) @@ -445,7 +445,7 @@ func (s *Store) ListWebhooks(appID string) ([]Webhook, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var webhooks []Webhook for rows.Next() { w, err := scanWebhook(rows) @@ -513,7 +513,7 @@ func (s *Store) ListBackendEnvironments(appID string) ([]BackendEnvironment, err if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var envs []BackendEnvironment for rows.Next() { be, err := scanBackendEnvironment(rows) @@ -562,7 +562,7 @@ func (s *Store) ListJobs(appID, branchName string) ([]Job, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var jobs []Job for rows.Next() { j, err := scanJob(rows) diff --git a/internal/services/apigatewayv2/provider.go b/internal/services/apigatewayv2/provider.go index 015ab29..657d862 100644 --- a/internal/services/apigatewayv2/provider.go +++ b/internal/services/apigatewayv2/provider.go @@ -374,7 +374,7 @@ func (p *Provider) createAPI(params map[string]any) (*plugin.Response, error) { } if rawTags, ok := params["tags"].(map[string]any); ok { - p.store.tags.AddTags(arn, toStringMap(rawTags)) + _ = p.store.tags.AddTags(arn, toStringMap(rawTags)) } tags, _ := p.store.tags.ListTags(arn) @@ -428,7 +428,7 @@ func (p *Provider) deleteAPI(apiID string) (*plugin.Response, error) { if err != nil { return shared.JSONError("NotFoundException", "api not found", http.StatusNotFound), nil } - p.store.tags.DeleteAllTags(a.ARN) + _ = p.store.tags.DeleteAllTags(a.ARN) return shared.JSONResponse(http.StatusNoContent, nil) } @@ -959,7 +959,7 @@ func (p *Provider) createDomainName(params map[string]any) (*plugin.Response, er } if rawTags, ok := params["tags"].(map[string]any); ok { arn := shared.BuildARN("apigateway", "domainnames", name) - p.store.tags.AddTags(arn, toStringMap(rawTags)) + _ = p.store.tags.AddTags(arn, toStringMap(rawTags)) } return shared.JSONResponse(http.StatusCreated, domainNameToMap(d)) } @@ -1088,7 +1088,7 @@ func (p *Provider) createVpcLink(params map[string]any) (*plugin.Response, error } if rawTags, ok := params["tags"].(map[string]any); ok { arn := shared.BuildARN("apigateway", "vpclinks", v.ID) - p.store.tags.AddTags(arn, toStringMap(rawTags)) + _ = p.store.tags.AddTags(arn, toStringMap(rawTags)) } return shared.JSONResponse(http.StatusCreated, vpcLinkToMap(v)) } @@ -1228,7 +1228,7 @@ func integrationResponseToMap(ir *IntegrationResponse) map[string]any { func authorizerToMap(a *Authorizer) map[string]any { var jwtConfig any - json.Unmarshal([]byte(a.JWTConfig), &jwtConfig) + _ = json.Unmarshal([]byte(a.JWTConfig), &jwtConfig) if jwtConfig == nil { jwtConfig = map[string]any{} } @@ -1253,7 +1253,7 @@ func deploymentToMap(d *Deployment) map[string]any { func stageToMap(st *Stage) map[string]any { var stageVars any - json.Unmarshal([]byte(st.StageVariables), &stageVars) + _ = json.Unmarshal([]byte(st.StageVariables), &stageVars) if stageVars == nil { stageVars = map[string]any{} } @@ -1279,7 +1279,7 @@ func modelToMap(m *Model) map[string]any { func domainNameToMap(d *DomainName) map[string]any { var config any - json.Unmarshal([]byte(d.Config), &config) + _ = json.Unmarshal([]byte(d.Config), &config) if config == nil { config = []any{} } @@ -1302,12 +1302,12 @@ func apiMappingToMap(m *APIMapping) map[string]any { func vpcLinkToMap(v *VpcLink) map[string]any { var secGroups any - json.Unmarshal([]byte(v.SecurityGroups), &secGroups) + _ = json.Unmarshal([]byte(v.SecurityGroups), &secGroups) if secGroups == nil { secGroups = []any{} } var subnetIDs any - json.Unmarshal([]byte(v.SubnetIDs), &subnetIDs) + _ = json.Unmarshal([]byte(v.SubnetIDs), &subnetIDs) if subnetIDs == nil { subnetIDs = []any{} } diff --git a/internal/services/apigatewayv2/provider_test.go b/internal/services/apigatewayv2/provider_test.go index e7de6f1..a10a125 100644 --- a/internal/services/apigatewayv2/provider_test.go +++ b/internal/services/apigatewayv2/provider_test.go @@ -20,7 +20,7 @@ func newTestProvider(t *testing.T) *Provider { p := &Provider{} err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/apigatewayv2/store.go b/internal/services/apigatewayv2/store.go index 434eacc..7528a64 100644 --- a/internal/services/apigatewayv2/store.go +++ b/internal/services/apigatewayv2/store.go @@ -280,7 +280,7 @@ func (s *Store) ListAPIs() ([]API, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var apis []API for rows.Next() { a, err := scanAPI(rows) @@ -356,7 +356,7 @@ func (s *Store) ListRoutes(apiID string) ([]Route, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var routes []Route for rows.Next() { r, err := scanRoute(rows) @@ -435,7 +435,7 @@ func (s *Store) ListIntegrations(apiID string) ([]Integration, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var items []Integration for rows.Next() { i, err := scanIntegration(rows) @@ -515,7 +515,7 @@ func (s *Store) ListIntegrationResponses(apiID, integrationID string) ([]Integra if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var items []IntegrationResponse for rows.Next() { ir, err := scanIntegrationResponse(rows) @@ -590,7 +590,7 @@ func (s *Store) ListAuthorizers(apiID string) ([]Authorizer, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var items []Authorizer for rows.Next() { a, err := scanAuthorizer(rows) @@ -667,7 +667,7 @@ func (s *Store) ListDeployments(apiID string) ([]Deployment, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var items []Deployment for rows.Next() { d, err := scanDeployment(rows) @@ -738,7 +738,7 @@ func (s *Store) ListStages(apiID string) ([]Stage, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var items []Stage for rows.Next() { st, err := scanStage(rows) @@ -814,7 +814,7 @@ func (s *Store) ListModels(apiID string) ([]Model, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var items []Model for rows.Next() { m, err := scanModel(rows) @@ -889,7 +889,7 @@ func (s *Store) ListDomainNames() ([]DomainName, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var items []DomainName for rows.Next() { d, err := scanDomainName(rows) @@ -961,7 +961,7 @@ func (s *Store) ListAPIMappings(domainName string) ([]APIMapping, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var items []APIMapping for rows.Next() { m, err := scanAPIMapping(rows) @@ -1038,7 +1038,7 @@ func (s *Store) ListVpcLinks() ([]VpcLink, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var items []VpcLink for rows.Next() { v, err := scanVpcLink(rows) @@ -1109,7 +1109,7 @@ func (s *Store) ListRouteResponses(apiID, routeID string) ([]RouteResponse, erro if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var items []RouteResponse for rows.Next() { rr, err := scanRouteResponse(rows) diff --git a/internal/services/appconfig/provider.go b/internal/services/appconfig/provider.go index ddc914c..b34ee8d 100644 --- a/internal/services/appconfig/provider.go +++ b/internal/services/appconfig/provider.go @@ -247,7 +247,7 @@ func (p *Provider) createApplication(params map[string]any) (*plugin.Response, e return nil, err } if rawTags, ok := params["Tags"].(map[string]any); ok { - p.store.tags.AddTags(arn, toStringMap(rawTags)) + _ = p.store.tags.AddTags(arn, toStringMap(rawTags)) } return shared.JSONResponse(http.StatusCreated, map[string]any{ "Id": id, @@ -314,7 +314,7 @@ func (p *Provider) deleteApplication(appID string) (*plugin.Response, error) { if err != nil { return shared.JSONError("ResourceNotFoundException", "application not found", http.StatusNotFound), nil } - p.store.tags.DeleteAllTags(a.ARN) + _ = p.store.tags.DeleteAllTags(a.ARN) if err := p.store.DeleteApplication(appID); err != nil { return shared.JSONError("ResourceNotFoundException", "application not found", http.StatusNotFound), nil } @@ -343,7 +343,7 @@ func (p *Provider) createEnvironment(appID string, params map[string]any) (*plug return nil, err } if rawTags, ok := params["Tags"].(map[string]any); ok { - p.store.tags.AddTags(arn, toStringMap(rawTags)) + _ = p.store.tags.AddTags(arn, toStringMap(rawTags)) } return shared.JSONResponse(http.StatusCreated, environmentToMap(e)) } @@ -403,7 +403,7 @@ func (p *Provider) deleteEnvironment(appID, envID string) (*plugin.Response, err if err != nil { return shared.JSONError("ResourceNotFoundException", "environment not found", http.StatusNotFound), nil } - p.store.tags.DeleteAllTags(e.ARN) + _ = p.store.tags.DeleteAllTags(e.ARN) if err := p.store.DeleteEnvironment(appID, envID); err != nil { return shared.JSONError("ResourceNotFoundException", "environment not found", http.StatusNotFound), nil } @@ -439,7 +439,7 @@ func (p *Provider) createConfigProfile(appID string, params map[string]any) (*pl return nil, err } if rawTags, ok := params["Tags"].(map[string]any); ok { - p.store.tags.AddTags(arn, toStringMap(rawTags)) + _ = p.store.tags.AddTags(arn, toStringMap(rawTags)) } return shared.JSONResponse(http.StatusCreated, configProfileToMap(cp)) } @@ -496,7 +496,7 @@ func (p *Provider) deleteConfigProfile(appID, profileID string) (*plugin.Respons if err != nil { return shared.JSONError("ResourceNotFoundException", "configuration profile not found", http.StatusNotFound), nil } - p.store.tags.DeleteAllTags(cp.ARN) + _ = p.store.tags.DeleteAllTags(cp.ARN) if err := p.store.DeleteConfigProfile(appID, profileID); err != nil { return shared.JSONError("ResourceNotFoundException", "configuration profile not found", http.StatusNotFound), nil } @@ -550,7 +550,7 @@ func (p *Provider) createDeploymentStrategy(params map[string]any) (*plugin.Resp return nil, err } if rawTags, ok := params["Tags"].(map[string]any); ok { - p.store.tags.AddTags(arn, toStringMap(rawTags)) + _ = p.store.tags.AddTags(arn, toStringMap(rawTags)) } return shared.JSONResponse(http.StatusCreated, deploymentStrategyToMap(ds)) } @@ -676,7 +676,9 @@ func (p *Provider) stopDeployment(appID, envID string, number int) (*plugin.Resp if err != nil { return shared.JSONError("ResourceNotFoundException", "deployment not found", http.StatusNotFound), nil } - p.store.UpdateDeploymentState(appID, envID, number, "ROLLED_BACK") + if err := p.store.UpdateDeploymentState(appID, envID, number, "ROLLED_BACK"); err != nil { + return shared.JSONError("InternalError", "failed to update deployment state", http.StatusInternalServerError), nil + } d.State = "ROLLED_BACK" return shared.JSONResponse(http.StatusOK, deploymentToMap(d)) } @@ -1072,8 +1074,8 @@ func deploymentToMap(d *Deployment) map[string]any { func extensionToMap(e *Extension) map[string]any { var actions, parameters any - json.Unmarshal([]byte(e.Actions), &actions) - json.Unmarshal([]byte(e.Parameters), ¶meters) + _ = json.Unmarshal([]byte(e.Actions), &actions) + _ = json.Unmarshal([]byte(e.Parameters), ¶meters) if actions == nil { actions = map[string]any{} } @@ -1093,7 +1095,7 @@ func extensionToMap(e *Extension) map[string]any { func extensionAssociationToMap(ea *ExtensionAssociation) map[string]any { var parameters any - json.Unmarshal([]byte(ea.Parameters), ¶meters) + _ = json.Unmarshal([]byte(ea.Parameters), ¶meters) if parameters == nil { parameters = map[string]any{} } diff --git a/internal/services/appconfig/provider_test.go b/internal/services/appconfig/provider_test.go index 6f497bc..03be0b7 100644 --- a/internal/services/appconfig/provider_test.go +++ b/internal/services/appconfig/provider_test.go @@ -20,7 +20,7 @@ func newTestProvider(t *testing.T) *Provider { p := &Provider{} err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/appconfig/store.go b/internal/services/appconfig/store.go index 538cc80..a8093a4 100644 --- a/internal/services/appconfig/store.go +++ b/internal/services/appconfig/store.go @@ -233,7 +233,7 @@ func (s *Store) ListApplications() ([]Application, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var apps []Application for rows.Next() { a, err := scanApplication(rows) @@ -295,7 +295,7 @@ func (s *Store) ListEnvironments(appID string) ([]Environment, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var envs []Environment for rows.Next() { e, err := scanEnvironment(rows) @@ -358,7 +358,7 @@ func (s *Store) ListConfigProfiles(appID string) ([]ConfigProfile, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var profiles []ConfigProfile for rows.Next() { cp, err := scanConfigProfile(rows) @@ -427,7 +427,7 @@ func (s *Store) ListDeploymentStrategies() ([]DeploymentStrategy, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var strategies []DeploymentStrategy for rows.Next() { ds, err := scanDeploymentStrategy(rows) @@ -470,7 +470,7 @@ func (s *Store) DeleteDeploymentStrategy(id string) error { func (s *Store) CreateDeployment(d *Deployment) error { // Find next deployment number var maxNum sql.NullInt64 - s.store.DB().QueryRow( + _ = s.store.DB().QueryRow( `SELECT MAX(number) FROM deployments WHERE app_id=? AND env_id=?`, d.AppID, d.EnvID).Scan(&maxNum) if maxNum.Valid { d.Number = int(maxNum.Int64) + 1 @@ -507,7 +507,7 @@ func (s *Store) ListDeployments(appID, envID string) ([]Deployment, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var deployments []Deployment for rows.Next() { d, err := scanDeployment(rows) @@ -561,7 +561,7 @@ func (s *Store) ListExtensions() ([]Extension, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var exts []Extension for rows.Next() { e, err := scanExtension(rows) @@ -624,7 +624,7 @@ func (s *Store) ListExtensionAssociations() ([]ExtensionAssociation, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var assocs []ExtensionAssociation for rows.Next() { ea, err := scanExtensionAssociation(rows) @@ -666,7 +666,7 @@ func (s *Store) DeleteExtensionAssociation(id string) error { func (s *Store) CreateHostedConfigVersion(hcv *HostedConfigVersion) error { // Find next version number var maxVer sql.NullInt64 - s.store.DB().QueryRow( + _ = s.store.DB().QueryRow( `SELECT MAX(version) FROM hosted_config_versions WHERE app_id=? AND profile_id=?`, hcv.AppID, hcv.ProfileID).Scan(&maxVer) if maxVer.Valid { @@ -706,7 +706,7 @@ func (s *Store) ListHostedConfigVersions(appID, profileID string) ([]HostedConfi if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var versions []HostedConfigVersion for rows.Next() { hcv, err := scanHostedConfigVersion(rows) diff --git a/internal/services/applicationautoscaling/provider.go b/internal/services/applicationautoscaling/provider.go index 0dc8ebf..c2fbd58 100644 --- a/internal/services/applicationautoscaling/provider.go +++ b/internal/services/applicationautoscaling/provider.go @@ -308,7 +308,7 @@ func (p *Provider) deleteScalingPolicy(params map[string]any) (*plugin.Response, if name == "" || ns == "" || resourceID == "" || dimension == "" { return shared.JSONError("ValidationException", "PolicyName, ServiceNamespace, ResourceId, and ScalableDimension are required", http.StatusBadRequest), nil } - if err := p.store.DeletePolicy(name, ns, resourceID, dimension); err != nil { + if err := p.store.DeletePolicy(name, ns, resourceID, dimension); err != nil { //nolint:errcheck return shared.JSONError("ObjectNotFoundException", "scaling policy not found", http.StatusBadRequest), nil } return shared.JSONResponse(http.StatusOK, map[string]any{}) @@ -611,7 +611,7 @@ func (p *Provider) batchDeleteScalingPolicy(params map[string]any) (*plugin.Resp dimension, _ := params["ScalableDimension"].(string) for _, n := range policies { if name, ok := n.(string); ok { - p.store.DeletePolicy(name, ns, resourceID, dimension) + p.store.DeletePolicy(name, ns, resourceID, dimension) //nolint:errcheck } } return shared.JSONResponse(http.StatusOK, map[string]any{}) @@ -624,7 +624,7 @@ func (p *Provider) batchDeleteScheduledAction(params map[string]any) (*plugin.Re dimension, _ := params["ScalableDimension"].(string) for _, n := range actions { if name, ok := n.(string); ok { - p.store.DeleteScheduledAction(name, ns, resourceID, dimension) + p.store.DeleteScheduledAction(name, ns, resourceID, dimension) //nolint:errcheck } } return shared.JSONResponse(http.StatusOK, map[string]any{}) @@ -640,7 +640,7 @@ func (p *Provider) batchDeregisterScalableTarget(params map[string]any) (*plugin ns, _ := m["ServiceNamespace"].(string) rid, _ := m["ResourceId"].(string) dim, _ := m["ScalableDimension"].(string) - p.store.DeregisterTarget(ns, rid, dim) + p.store.DeregisterTarget(ns, rid, dim) //nolint:errcheck } return shared.JSONResponse(http.StatusOK, map[string]any{}) } diff --git a/internal/services/applicationautoscaling/provider_test.go b/internal/services/applicationautoscaling/provider_test.go index 08f9ad8..3c36be5 100644 --- a/internal/services/applicationautoscaling/provider_test.go +++ b/internal/services/applicationautoscaling/provider_test.go @@ -19,7 +19,7 @@ func newTestProvider(t *testing.T) *Provider { t.Helper() p := &Provider{} require.NoError(t, p.Init(plugin.PluginConfig{DataDir: t.TempDir()})) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/applicationautoscaling/store.go b/internal/services/applicationautoscaling/store.go index 7c12d92..1d2d3f7 100644 --- a/internal/services/applicationautoscaling/store.go +++ b/internal/services/applicationautoscaling/store.go @@ -187,7 +187,7 @@ func (s *Store) ListTargets(ns, resourceID, dimension string) ([]ScalableTarget, if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var targets []ScalableTarget for rows.Next() { t, err := scanTarget(rows) @@ -271,7 +271,7 @@ func (s *Store) ListPolicies(ns, resourceID, dimension string) ([]ScalingPolicy, if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var policies []ScalingPolicy for rows.Next() { var p ScalingPolicy @@ -341,7 +341,7 @@ func (s *Store) ListScheduledActions(ns, resourceID, dimension string) ([]Schedu if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var actions []ScheduledAction for rows.Next() { var a ScheduledAction @@ -422,7 +422,7 @@ func (s *Store) ListActivities(ns, resourceID, dimension string) ([]ScalingActiv if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []ScalingActivity for rows.Next() { var a ScalingActivity @@ -495,7 +495,7 @@ func (s *Store) ListCustomizedMetrics(ns, resourceID, dimension string) ([]Custo if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []CustomizedMetric for rows.Next() { var m CustomizedMetric diff --git a/internal/services/appsync/provider.go b/internal/services/appsync/provider.go index 0cbefaf..d6c87e9 100644 --- a/internal/services/appsync/provider.go +++ b/internal/services/appsync/provider.go @@ -472,7 +472,7 @@ func (p *Provider) createGraphqlApi(params map[string]any) (*plugin.Response, er return nil, err } if rawTags, ok := params["tags"].(map[string]any); ok { - p.store.tags.AddTags(arn, toStringMap(rawTags)) + _ = p.store.tags.AddTags(arn, toStringMap(rawTags)) } tags, _ := p.store.tags.ListTags(arn) return shared.JSONResponse(http.StatusOK, map[string]any{"graphqlApi": graphqlApiToMap(a, tags)}) @@ -523,7 +523,7 @@ func (p *Provider) deleteGraphqlApi(apiID string) (*plugin.Response, error) { if err != nil { return shared.JSONError("NotFoundException", "GraphQL API not found", http.StatusNotFound), nil } - p.store.tags.DeleteAllTags(a.ARN) + _ = p.store.tags.DeleteAllTags(a.ARN) //nolint:errcheck return shared.JSONResponse(http.StatusOK, map[string]any{}) } @@ -937,7 +937,7 @@ func graphqlApiToMap(a *GraphqlApi, tags map[string]string) map[string]any { tags = map[string]string{} } var uris map[string]string - json.Unmarshal([]byte(a.Uris), &uris) + _ = json.Unmarshal([]byte(a.Uris), &uris) if uris == nil { uris = map[string]string{} } diff --git a/internal/services/appsync/provider_test.go b/internal/services/appsync/provider_test.go index 2cd8304..eb5b84c 100644 --- a/internal/services/appsync/provider_test.go +++ b/internal/services/appsync/provider_test.go @@ -20,7 +20,7 @@ func newTestProvider(t *testing.T) *Provider { p := &Provider{} err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/appsync/store.go b/internal/services/appsync/store.go index 8e58768..e8fded7 100644 --- a/internal/services/appsync/store.go +++ b/internal/services/appsync/store.go @@ -179,7 +179,7 @@ func (s *Store) ListGraphqlApis() ([]GraphqlApi, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var apis []GraphqlApi for rows.Next() { a, err := scanGraphqlApi(rows) @@ -252,7 +252,7 @@ func (s *Store) ListDataSources(apiID string) ([]DataSource, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var dss []DataSource for rows.Next() { ds, err := scanDataSource(rows) @@ -327,7 +327,7 @@ func (s *Store) ListResolvers(apiID, typeName string) ([]Resolver, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var resolvers []Resolver for rows.Next() { r, err := scanResolver(rows) @@ -348,7 +348,7 @@ func (s *Store) ListResolversByFunction(apiID, functionID string) ([]Resolver, e if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var resolvers []Resolver for rows.Next() { r, err := scanResolver(rows) @@ -432,7 +432,7 @@ func (s *Store) ListFunctions(apiID string) ([]Function, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var fns []Function for rows.Next() { f, err := scanFunction(rows) @@ -511,7 +511,7 @@ func (s *Store) ListApiKeys(apiID string) ([]ApiKey, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var keys []ApiKey for rows.Next() { k, err := scanApiKey(rows) @@ -583,7 +583,7 @@ func (s *Store) ListTypes(apiID, format string) ([]Type, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var types []Type for rows.Next() { tp, err := scanType(rows) diff --git a/internal/services/athena/provider.go b/internal/services/athena/provider.go index 6d2a787..b239df0 100644 --- a/internal/services/athena/provider.go +++ b/internal/services/athena/provider.go @@ -251,7 +251,7 @@ func (p *Provider) createWorkGroup(params map[string]any) (*plugin.Response, err } // Handle tags if rawTags, ok := params["Tags"].([]any); ok { - p.store.tags.AddTags(wg.ARN, parseTags(rawTags)) + _ = p.store.tags.AddTags(wg.ARN, parseTags(rawTags)) //nolint:errcheck } return shared.JSONResponse(http.StatusOK, map[string]any{}) } @@ -296,7 +296,7 @@ func (p *Provider) deleteWorkGroup(params map[string]any) (*plugin.Response, err if err != nil { return shared.JSONError("InvalidRequestException", "WorkGroup not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(wg.ARN) + _ = p.store.tags.DeleteAllTags(wg.ARN) //nolint:errcheck if err := p.store.DeleteWorkGroup(name); err != nil { return shared.JSONError("InvalidRequestException", "WorkGroup not found", http.StatusBadRequest), nil } @@ -333,7 +333,7 @@ func (p *Provider) updateWorkGroup(params map[string]any) (*plugin.Response, err func workGroupToMap(wg *WorkGroup) map[string]any { var cfg any - json.Unmarshal([]byte(wg.Config), &cfg) + _ = json.Unmarshal([]byte(wg.Config), &cfg) return map[string]any{ "Name": wg.Name, "State": wg.State, @@ -667,7 +667,7 @@ func (p *Provider) deleteDataCatalog(params map[string]any) (*plugin.Response, e func dataCatalogToMap(dc *DataCatalog) map[string]any { var params any - json.Unmarshal([]byte(dc.Parameters), ¶ms) + _ = json.Unmarshal([]byte(dc.Parameters), ¶ms) return map[string]any{ "Name": dc.Name, "Type": dc.Type, diff --git a/internal/services/athena/provider_test.go b/internal/services/athena/provider_test.go index fe892a9..d2d6f6c 100644 --- a/internal/services/athena/provider_test.go +++ b/internal/services/athena/provider_test.go @@ -22,7 +22,7 @@ func newTestProvider(t *testing.T) *Provider { if err := p.Init(plugin.PluginConfig{DataDir: dir}); err != nil { t.Fatalf("Init: %v", err) } - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } @@ -39,7 +39,7 @@ func call(t *testing.T, p *Provider, action string, body map[string]any) map[str t.Fatalf("%s: unexpected status %d: %s", action, resp.StatusCode, string(resp.Body)) } var out map[string]any - json.Unmarshal(resp.Body, &out) + _ = json.Unmarshal(resp.Body, &out) return out } diff --git a/internal/services/athena/store.go b/internal/services/athena/store.go index 94a9018..27301c4 100644 --- a/internal/services/athena/store.go +++ b/internal/services/athena/store.go @@ -155,7 +155,7 @@ func (s *Store) ListWorkGroups() ([]WorkGroup, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var wgs []WorkGroup for rows.Next() { wg, err := scanWorkGroup(rows) @@ -242,7 +242,7 @@ func (s *Store) ListNamedQueries(workgroup string) ([]NamedQuery, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var queries []NamedQuery for rows.Next() { nq, err := scanNamedQuery(rows) @@ -312,7 +312,7 @@ func (s *Store) ListQueryExecutions(workgroup string) ([]QueryExecution, error) if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var execs []QueryExecution for rows.Next() { qe, err := scanQueryExecution(rows) @@ -375,7 +375,7 @@ func (s *Store) ListDataCatalogs() ([]DataCatalog, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var catalogs []DataCatalog for rows.Next() { dc, err := scanDataCatalog(rows) @@ -453,7 +453,7 @@ func (s *Store) ListPreparedStatements(workgroup string) ([]PreparedStatement, e if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var stmts []PreparedStatement for rows.Next() { ps, err := scanPreparedStatement(rows) diff --git a/internal/services/autoscaling/store.go b/internal/services/autoscaling/store.go index fa46537..deee0fb 100644 --- a/internal/services/autoscaling/store.go +++ b/internal/services/autoscaling/store.go @@ -197,7 +197,7 @@ func (s *Store) ListASGs(names []string) ([]AutoScalingGroup, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []AutoScalingGroup for rows.Next() { a, err := scanASG(rows) @@ -301,7 +301,7 @@ func (s *Store) ListLCs(names []string) ([]LaunchConfiguration, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []LaunchConfiguration for rows.Next() { lc, err := scanLC(rows) @@ -366,7 +366,7 @@ func (s *Store) ListPolicies(asgName, policyName string) ([]ScalingPolicy, error if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []ScalingPolicy for rows.Next() { var p ScalingPolicy @@ -428,7 +428,7 @@ func (s *Store) ListScheduledActions(asgName, actionName string) ([]ScheduledAct if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []ScheduledAction for rows.Next() { var a ScheduledAction @@ -488,7 +488,7 @@ func (s *Store) ListLifecycleHooks(asgName, hookName string) ([]LifecycleHook, e if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []LifecycleHook for rows.Next() { var h LifecycleHook @@ -532,7 +532,7 @@ func (s *Store) ListAllTags() (map[string]map[string]string, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() out := make(map[string]map[string]string) for rows.Next() { var resARN, k, v string diff --git a/internal/services/backup/provider.go b/internal/services/backup/provider.go index 4e7d493..3bd07ba 100644 --- a/internal/services/backup/provider.go +++ b/internal/services/backup/provider.go @@ -374,7 +374,7 @@ func (p *Provider) createBackupPlan(params map[string]any) (*plugin.Response, er if rawTags, ok := params["BackupPlanTags"].(map[string]any); ok { tags := toStringMap(rawTags) - p.store.tags.AddTags(arn, tags) + _ = p.store.tags.AddTags(arn, tags) } return shared.JSONResponse(http.StatusOK, map[string]any{ @@ -466,7 +466,7 @@ func (p *Provider) deleteBackupPlan(id string) (*plugin.Response, error) { if err != nil { return shared.JSONError("ResourceNotFoundException", "backup plan not found", http.StatusNotFound), nil } - p.store.tags.DeleteAllTags(plan.ARN) + _ = p.store.tags.DeleteAllTags(plan.ARN) if err := p.store.DeleteBackupPlan(id); err != nil { return shared.JSONError("ResourceNotFoundException", "backup plan not found", http.StatusNotFound), nil } @@ -520,7 +520,7 @@ func (p *Provider) getBackupPlanFromJSON(params map[string]any) (*plugin.Respons doc, _ := params["BackupPlanDocument"].(string) var planInput map[string]any if doc != "" { - json.Unmarshal([]byte(doc), &planInput) + _ = json.Unmarshal([]byte(doc), &planInput) } if planInput == nil { planInput = map[string]any{} @@ -570,7 +570,7 @@ func (p *Provider) createBackupVault(name string, params map[string]any) (*plugi } if rawTags, ok := params["BackupVaultTags"].(map[string]any); ok { - p.store.tags.AddTags(arn, toStringMap(rawTags)) + _ = p.store.tags.AddTags(arn, toStringMap(rawTags)) } return shared.JSONResponse(http.StatusOK, map[string]any{ @@ -611,7 +611,7 @@ func (p *Provider) deleteBackupVault(name string) (*plugin.Response, error) { if err != nil { return shared.JSONError("ResourceNotFoundException", "backup vault not found", http.StatusNotFound), nil } - p.store.tags.DeleteAllTags(v.ARN) + _ = p.store.tags.DeleteAllTags(v.ARN) if err := p.store.DeleteBackupVault(name); err != nil { return shared.JSONError("ResourceNotFoundException", "backup vault not found", http.StatusNotFound), nil } @@ -654,7 +654,7 @@ func (p *Provider) deleteBackupVaultAccessPolicy(name string) (*plugin.Response, if _, err := p.store.GetBackupVault(name); err != nil { return shared.JSONError("ResourceNotFoundException", "backup vault not found", http.StatusNotFound), nil } - p.store.UpdateBackupVaultAccessPolicy(name, "") + p.store.UpdateBackupVaultAccessPolicy(name, "") //nolint:errcheck return shared.JSONResponse(http.StatusOK, map[string]any{}) } @@ -673,7 +673,7 @@ func (p *Provider) putBackupVaultNotifications(name string, params map[string]an }) notifJSON = string(b) } - p.store.UpdateBackupVaultNotifications(name, notifJSON) + p.store.UpdateBackupVaultNotifications(name, notifJSON) //nolint:errcheck return shared.JSONResponse(http.StatusOK, map[string]any{}) } @@ -686,7 +686,7 @@ func (p *Provider) getBackupVaultNotifications(name string) (*plugin.Response, e return shared.JSONError("ResourceNotFoundException", "backup vault not found", http.StatusNotFound), nil } var notif map[string]any - json.Unmarshal([]byte(v.Notifications), ¬if) + _ = json.Unmarshal([]byte(v.Notifications), ¬if) if notif == nil { notif = map[string]any{} } @@ -702,7 +702,7 @@ func (p *Provider) deleteBackupVaultNotifications(name string) (*plugin.Response if _, err := p.store.GetBackupVault(name); err != nil { return shared.JSONError("ResourceNotFoundException", "backup vault not found", http.StatusNotFound), nil } - p.store.UpdateBackupVaultNotifications(name, "{}") + p.store.UpdateBackupVaultNotifications(name, "{}") //nolint:errcheck return shared.JSONResponse(http.StatusOK, map[string]any{}) } @@ -714,7 +714,7 @@ func (p *Provider) putBackupVaultLockConfiguration(name string, params map[strin return shared.JSONError("ResourceNotFoundException", "backup vault not found", http.StatusNotFound), nil } b, _ := json.Marshal(params) - p.store.UpdateBackupVaultLockConfig(name, string(b)) + p.store.UpdateBackupVaultLockConfig(name, string(b)) //nolint:errcheck return shared.JSONResponse(http.StatusOK, map[string]any{}) } @@ -725,7 +725,7 @@ func (p *Provider) deleteBackupVaultLockConfiguration(name string) (*plugin.Resp if _, err := p.store.GetBackupVault(name); err != nil { return shared.JSONError("ResourceNotFoundException", "backup vault not found", http.StatusNotFound), nil } - p.store.UpdateBackupVaultLockConfig(name, "{}") + p.store.UpdateBackupVaultLockConfig(name, "{}") //nolint:errcheck return shared.JSONResponse(http.StatusOK, map[string]any{}) } @@ -869,7 +869,7 @@ func (p *Provider) startBackupJob(params map[string]any) (*plugin.Response, erro ResourceType: resourceType, Status: "COMPLETED", } - p.store.CreateRecoveryPoint(rp) + p.store.CreateRecoveryPoint(rp) //nolint:errcheck return shared.JSONResponse(http.StatusOK, map[string]any{ "BackupJobId": id, @@ -908,7 +908,7 @@ func (p *Provider) stopBackupJob(id string) (*plugin.Response, error) { if _, err := p.store.GetBackupJob(id); err != nil { return shared.JSONError("ResourceNotFoundException", "backup job not found", http.StatusNotFound), nil } - p.store.UpdateBackupJobStatus(id, "ABORTED") + p.store.UpdateBackupJobStatus(id, "ABORTED") //nolint:errcheck return shared.JSONResponse(http.StatusOK, map[string]any{}) } @@ -1119,7 +1119,7 @@ func (p *Provider) deleteFramework(name string) (*plugin.Response, error) { if err != nil { return shared.JSONError("ResourceNotFoundException", "framework not found", http.StatusNotFound), nil } - p.store.tags.DeleteAllTags(fw.ARN) + _ = p.store.tags.DeleteAllTags(fw.ARN) if err := p.store.DeleteFramework(name); err != nil { return shared.JSONError("ResourceNotFoundException", "framework not found", http.StatusNotFound), nil } @@ -1232,7 +1232,7 @@ func (p *Provider) deleteReportPlan(name string) (*plugin.Response, error) { if err != nil { return shared.JSONError("ResourceNotFoundException", "report plan not found", http.StatusNotFound), nil } - p.store.tags.DeleteAllTags(rp.ARN) + _ = p.store.tags.DeleteAllTags(rp.ARN) if err := p.store.DeleteReportPlan(name); err != nil { return shared.JSONError("ResourceNotFoundException", "report plan not found", http.StatusNotFound), nil } diff --git a/internal/services/backup/provider_test.go b/internal/services/backup/provider_test.go index b0bb222..caf4edd 100644 --- a/internal/services/backup/provider_test.go +++ b/internal/services/backup/provider_test.go @@ -20,7 +20,7 @@ func newTestProvider(t *testing.T) *Provider { p := &Provider{} err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/backup/store.go b/internal/services/backup/store.go index afac008..c058647 100644 --- a/internal/services/backup/store.go +++ b/internal/services/backup/store.go @@ -262,7 +262,7 @@ func (s *Store) ListBackupPlans() ([]BackupPlan, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var plans []BackupPlan for rows.Next() { p, err := scanBackupPlan(rows) @@ -343,7 +343,7 @@ func (s *Store) ListBackupVaults() ([]BackupVault, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var vaults []BackupVault for rows.Next() { v, err := scanBackupVault(rows) @@ -443,7 +443,7 @@ func (s *Store) ListBackupSelections(planID string) ([]BackupSelection, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var sels []BackupSelection for rows.Next() { sel, err := scanBackupSelection(rows) @@ -507,7 +507,7 @@ func (s *Store) ListBackupJobs() ([]BackupJob, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var jobs []BackupJob for rows.Next() { j, err := scanBackupJob(rows) @@ -572,7 +572,7 @@ func (s *Store) ListRecoveryPointsByVault(vaultName string) ([]RecoveryPoint, er if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var rps []RecoveryPoint for rows.Next() { rp, err := scanRecoveryPoint(rows) @@ -591,7 +591,7 @@ func (s *Store) ListRecoveryPointsByResource(resourceARN string) ([]RecoveryPoin if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var rps []RecoveryPoint for rows.Next() { rp, err := scanRecoveryPoint(rows) @@ -655,7 +655,7 @@ func (s *Store) ListRestoreJobs() ([]RestoreJob, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var jobs []RestoreJob for rows.Next() { j, err := scanRestoreJob(rows) @@ -708,7 +708,7 @@ func (s *Store) ListFrameworks() ([]Framework, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var fws []Framework for rows.Next() { f, err := scanFramework(rows) @@ -787,7 +787,7 @@ func (s *Store) ListReportPlans() ([]ReportPlan, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var rps []ReportPlan for rows.Next() { rp, err := scanReportPlan(rows) @@ -863,7 +863,7 @@ func (s *Store) ListReportJobs() ([]ReportJob, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var jobs []ReportJob for rows.Next() { j, err := scanReportJob(rows) @@ -916,7 +916,7 @@ func (s *Store) ListRestoreTestingPlans() ([]RestoreTestingPlan, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var plans []RestoreTestingPlan for rows.Next() { p, err := scanRestoreTestingPlan(rows) @@ -995,7 +995,7 @@ func (s *Store) ListRestoreTestingSelections(planName string) ([]RestoreTestingS if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var sels []RestoreTestingSelection for rows.Next() { sel, err := scanRestoreTestingSelection(rows) diff --git a/internal/services/batch/provider.go b/internal/services/batch/provider.go index 75f6e69..b7ddeef 100644 --- a/internal/services/batch/provider.go +++ b/internal/services/batch/provider.go @@ -328,7 +328,7 @@ func (p *Provider) createComputeEnvironment(params map[string]any) (*plugin.Resp return nil, err } if rawTags, ok := params["tags"].(map[string]any); ok { - p.store.tags.AddTags(arn, toStringMap(rawTags)) + _ = p.store.tags.AddTags(arn, toStringMap(rawTags)) //nolint:errcheck } return shared.JSONResponse(http.StatusOK, map[string]any{ "computeEnvironmentArn": arn, @@ -397,7 +397,7 @@ func (p *Provider) deleteComputeEnvironment(params map[string]any) (*plugin.Resp if err != nil { return shared.JSONError("ClientException", "compute environment not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(ce.ARN) + _ = p.store.tags.DeleteAllTags(ce.ARN) //nolint:errcheck if err := p.store.DeleteComputeEnvironment(nameOrARN); err != nil { return shared.JSONError("ClientException", "compute environment not found", http.StatusBadRequest), nil } @@ -440,7 +440,7 @@ func (p *Provider) createJobQueue(params map[string]any) (*plugin.Response, erro return nil, err } if rawTags, ok := params["tags"].(map[string]any); ok { - p.store.tags.AddTags(arn, toStringMap(rawTags)) + _ = p.store.tags.AddTags(arn, toStringMap(rawTags)) //nolint:errcheck } return shared.JSONResponse(http.StatusOK, map[string]any{ "jobQueueArn": arn, @@ -513,7 +513,7 @@ func (p *Provider) deleteJobQueue(params map[string]any) (*plugin.Response, erro if err != nil { return shared.JSONError("ClientException", "job queue not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(jq.ARN) + _ = p.store.tags.DeleteAllTags(jq.ARN) //nolint:errcheck if err := p.store.DeleteJobQueue(nameOrARN); err != nil { return shared.JSONError("ClientException", "job queue not found", http.StatusBadRequest), nil } @@ -559,11 +559,13 @@ func (p *Provider) registerJobDefinition(params map[string]any) (*plugin.Respons arn := fmt.Sprintf("arn:aws:batch:%s:%s:job-definition/%s:%d", shared.DefaultRegion, shared.DefaultAccountID, name, jd.Revision) // Update the ARN with the revision - p.store.UpdateJobDefinitionARN(name, jd.Revision, arn) + if err := p.store.UpdateJobDefinitionARN(name, jd.Revision, arn); err != nil { + return nil, fmt.Errorf("update job definition ARN: %w", err) + } jd.ARN = arn if rawTags, ok := params["tags"].(map[string]any); ok { - p.store.tags.AddTags(arn, toStringMap(rawTags)) + _ = p.store.tags.AddTags(arn, toStringMap(rawTags)) //nolint:errcheck } return shared.JSONResponse(http.StatusOK, map[string]any{ "jobDefinitionArn": arn, @@ -657,7 +659,7 @@ func (p *Provider) submitJob(params map[string]any) (*plugin.Response, error) { return nil, err } if rawTags, ok := params["tags"].(map[string]any); ok { - p.store.tags.AddTags(arn, toStringMap(rawTags)) + _ = p.store.tags.AddTags(arn, toStringMap(rawTags)) //nolint:errcheck } return shared.JSONResponse(http.StatusOK, map[string]any{ "jobArn": arn, @@ -751,7 +753,7 @@ func (p *Provider) createSchedulingPolicy(params map[string]any) (*plugin.Respon return nil, err } if rawTags, ok := params["tags"].(map[string]any); ok { - p.store.tags.AddTags(arn, toStringMap(rawTags)) + _ = p.store.tags.AddTags(arn, toStringMap(rawTags)) //nolint:errcheck } return shared.JSONResponse(http.StatusOK, map[string]any{ "arn": arn, @@ -824,7 +826,7 @@ func (p *Provider) deleteSchedulingPolicy(params map[string]any) (*plugin.Respon if err != nil { return shared.JSONError("ClientException", "scheduling policy not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(sp.ARN) + _ = p.store.tags.DeleteAllTags(sp.ARN) //nolint:errcheck if err := p.store.DeleteSchedulingPolicy(arn); err != nil { return shared.JSONError("ClientException", "scheduling policy not found", http.StatusBadRequest), nil } @@ -898,7 +900,7 @@ func jqToMap(jq *JobQueue, tags map[string]string) map[string]any { tags = map[string]string{} } var ceOrder []any - json.Unmarshal([]byte(jq.ComputeEnvs), &ceOrder) + _ = json.Unmarshal([]byte(jq.ComputeEnvs), &ceOrder) if ceOrder == nil { ceOrder = []any{} } @@ -920,11 +922,11 @@ func jdToMap(jd *JobDefinition, tags map[string]string) map[string]any { tags = map[string]string{} } var containerProps any - json.Unmarshal([]byte(jd.ContainerProps), &containerProps) + _ = json.Unmarshal([]byte(jd.ContainerProps), &containerProps) var parameters any - json.Unmarshal([]byte(jd.Parameters), ¶meters) + _ = json.Unmarshal([]byte(jd.Parameters), ¶meters) var timeout any - json.Unmarshal([]byte(jd.Timeout), &timeout) + _ = json.Unmarshal([]byte(jd.Timeout), &timeout) return map[string]any{ "jobDefinitionArn": jd.ARN, "jobDefinitionName": jd.Name, @@ -943,9 +945,9 @@ func jobToMap(j *Job, tags map[string]string) map[string]any { tags = map[string]string{} } var parameters any - json.Unmarshal([]byte(j.Parameters), ¶meters) + _ = json.Unmarshal([]byte(j.Parameters), ¶meters) var container any - json.Unmarshal([]byte(j.Container), &container) + _ = json.Unmarshal([]byte(j.Container), &container) return map[string]any{ "jobId": j.ID, "jobArn": j.ARN, @@ -982,7 +984,7 @@ func spToDetailMap(sp *SchedulingPolicy, tags map[string]string) map[string]any tags = map[string]string{} } var fairshare any - json.Unmarshal([]byte(sp.Fairshare), &fairshare) + _ = json.Unmarshal([]byte(sp.Fairshare), &fairshare) return map[string]any{ "arn": sp.ARN, "name": sp.Name, diff --git a/internal/services/batch/provider_test.go b/internal/services/batch/provider_test.go index 2063728..f3b763c 100644 --- a/internal/services/batch/provider_test.go +++ b/internal/services/batch/provider_test.go @@ -20,7 +20,7 @@ func newTestProvider(t *testing.T) *Provider { p := &Provider{} err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/batch/store.go b/internal/services/batch/store.go index aecf211..f02fa1b 100644 --- a/internal/services/batch/store.go +++ b/internal/services/batch/store.go @@ -186,7 +186,7 @@ func (s *Store) ListComputeEnvironments() ([]*ComputeEnvironment, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []*ComputeEnvironment for rows.Next() { ce, err := scanComputeEnvironment(rows) @@ -269,7 +269,7 @@ func (s *Store) ListJobQueues() ([]*JobQueue, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []*JobQueue for rows.Next() { jq, err := scanJobQueue(rows) @@ -327,7 +327,7 @@ func (s *Store) RegisterJobDefinition(jd *JobDefinition) error { // Find max revision for this name var maxRev int32 row := s.store.DB().QueryRow(`SELECT COALESCE(MAX(revision), 0) FROM job_definitions WHERE name=?`, jd.Name) - row.Scan(&maxRev) + _ = row.Scan(&maxRev) jd.Revision = maxRev + 1 now := time.Now().Unix() @@ -369,7 +369,7 @@ func (s *Store) ListJobDefinitions(name, status string) ([]*JobDefinition, error if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []*JobDefinition for rows.Next() { jd, err := scanJobDefinition(rows) @@ -444,7 +444,7 @@ func (s *Store) ListJobs(queue, status string) ([]*Job, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []*Job for rows.Next() { j, err := scanJob(rows) @@ -510,7 +510,7 @@ func (s *Store) ListSchedulingPolicies() ([]*SchedulingPolicy, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []*SchedulingPolicy for rows.Next() { sp, err := scanSchedulingPolicy(rows) diff --git a/internal/services/bedrock/provider.go b/internal/services/bedrock/provider.go index ae6729a..d40fc62 100644 --- a/internal/services/bedrock/provider.go +++ b/internal/services/bedrock/provider.go @@ -102,7 +102,7 @@ func (p *Provider) HandleRequest(_ context.Context, op string, req *http.Request body, _ := io.ReadAll(req.Body) var bodyMap map[string]any if len(body) > 0 { - json.Unmarshal(body, &bodyMap) + _ = json.Unmarshal(body, &bodyMap) } if bodyMap == nil { bodyMap = map[string]any{} @@ -284,7 +284,7 @@ func (p *Provider) createModelCustomizationJob(body map[string]any) (*plugin.Res AccountID: defaultAccountID, CreatedAt: time.Now().UTC(), } - p.store.CreateCustomModel(m) + p.store.CreateCustomModel(m) //nolint:errcheck jobARN := fmt.Sprintf("arn:aws:bedrock:%s:%s:model-customization-job/%s", defaultRegion, defaultAccountID, jobID) return shared.JSONResponse(http.StatusCreated, map[string]any{"jobArn": jobARN}) diff --git a/internal/services/bedrock/provider_test.go b/internal/services/bedrock/provider_test.go index 8d068cd..4d4b8f9 100644 --- a/internal/services/bedrock/provider_test.go +++ b/internal/services/bedrock/provider_test.go @@ -19,7 +19,7 @@ func newTestProvider(t *testing.T) *Provider { p := &Provider{} err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/bedrock/store.go b/internal/services/bedrock/store.go index a8180f7..4930891 100644 --- a/internal/services/bedrock/store.go +++ b/internal/services/bedrock/store.go @@ -105,7 +105,7 @@ func (s *Store) ListCustomizationJobs(accountID string) ([]*CustomizationJob, er if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []*CustomizationJob for rows.Next() { j, err := scanCustomizationJob(rows) @@ -181,7 +181,7 @@ func (s *Store) ListCustomModels(accountID string) ([]*CustomModel, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []*CustomModel for rows.Next() { m, err := scanCustomModel(rows) @@ -262,7 +262,7 @@ func (s *Store) ListGuardrails(accountID string) ([]*Guardrail, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []*Guardrail for rows.Next() { g, err := scanGuardrail(rows) @@ -339,11 +339,11 @@ func (s *Store) ListTags(arn string) (map[string]string, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() out := map[string]string{} for rows.Next() { var k, v string - rows.Scan(&k, &v) + _ = rows.Scan(&k, &v) out[k] = v } return out, rows.Err() diff --git a/internal/services/cloudcontrol/provider.go b/internal/services/cloudcontrol/provider.go index 66df704..c84b1bf 100644 --- a/internal/services/cloudcontrol/provider.go +++ b/internal/services/cloudcontrol/provider.go @@ -203,7 +203,9 @@ func (p *CloudControlProvider) createResource(params map[string]any) (*plugin.Re CreatedAt: time.Now(), CompletedAt: time.Now(), } - p.store.CreateRequest(ccReq) + if err := p.store.CreateRequest(ccReq); err != nil { + return nil, err + } return shared.JSONResponse(http.StatusOK, map[string]any{ "ProgressEvent": progressEvent(ccReq), @@ -251,7 +253,9 @@ func (p *CloudControlProvider) updateResource(params map[string]any) (*plugin.Re } if patchDocument != "" { - p.store.UpdateResource(typeName, identifier, shared.DefaultAccountID, patchDocument) + if err := p.store.UpdateResource(typeName, identifier, shared.DefaultAccountID, patchDocument); err != nil { + return nil, err + } } requestToken := shared.GenerateUUID() @@ -265,7 +269,9 @@ func (p *CloudControlProvider) updateResource(params map[string]any) (*plugin.Re CreatedAt: time.Now(), CompletedAt: time.Now(), } - p.store.CreateRequest(ccReq) + if err := p.store.CreateRequest(ccReq); err != nil { + return nil, err + } return shared.JSONResponse(http.StatusOK, map[string]any{ "ProgressEvent": progressEvent(ccReq), @@ -297,7 +303,9 @@ func (p *CloudControlProvider) deleteResource(params map[string]any) (*plugin.Re CreatedAt: time.Now(), CompletedAt: time.Now(), } - p.store.CreateRequest(ccReq) + if err := p.store.CreateRequest(ccReq); err != nil { + return nil, err + } return shared.JSONResponse(http.StatusOK, map[string]any{ "ProgressEvent": progressEvent(ccReq), @@ -387,7 +395,9 @@ func (p *CloudControlProvider) cancelResourceRequest(params map[string]any) (*pl return nil, err } - p.store.CancelRequest(requestToken, shared.DefaultAccountID) + if err := p.store.CancelRequest(requestToken, shared.DefaultAccountID); err != nil { + return nil, err + } req.Status = "CANCEL_COMPLETE" return shared.JSONResponse(http.StatusOK, map[string]any{ diff --git a/internal/services/cloudcontrol/provider_test.go b/internal/services/cloudcontrol/provider_test.go index 86ecd18..1a7b68d 100644 --- a/internal/services/cloudcontrol/provider_test.go +++ b/internal/services/cloudcontrol/provider_test.go @@ -20,7 +20,7 @@ func newTestProvider(t *testing.T) *CloudControlProvider { p := &CloudControlProvider{} err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/cloudcontrol/store.go b/internal/services/cloudcontrol/store.go index 608a5f3..11c0165 100644 --- a/internal/services/cloudcontrol/store.go +++ b/internal/services/cloudcontrol/store.go @@ -111,7 +111,7 @@ func (s *Store) ListResources(typeName, accountID string) ([]CCResource, error) if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var resources []CCResource for rows.Next() { var r CCResource @@ -190,7 +190,7 @@ func (s *Store) ListRequests(accountID string) ([]CCRequest, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var requests []CCRequest for rows.Next() { var r CCRequest diff --git a/internal/services/cloudformation/engine.go b/internal/services/cloudformation/engine.go index 2e1b675..7963072 100644 --- a/internal/services/cloudformation/engine.go +++ b/internal/services/cloudformation/engine.go @@ -694,7 +694,7 @@ func resolveSelect(v any, cache *attrCache, params map[string]string) (any, erro case float64: idx = int(n) case string: - fmt.Sscanf(n, "%d", &idx) + _, _ = fmt.Sscanf(n, "%d", &idx) } items, ok := arr[1].([]any) if !ok { diff --git a/internal/services/cloudformation/engine_test.go b/internal/services/cloudformation/engine_test.go index aca0b2a..3421112 100644 --- a/internal/services/cloudformation/engine_test.go +++ b/internal/services/cloudformation/engine_test.go @@ -164,9 +164,10 @@ func TestProvisionStackSimulatedResources(t *testing.T) { // BucketName drives the simulated PhysicalId for supported-but-unregistered services. var bkt, q StackResource for _, r := range resources { - if r.LogicalID == "Bkt" { + switch r.LogicalID { + case "Bkt": bkt = r - } else if r.LogicalID == "Q" { + case "Q": q = r } } diff --git a/internal/services/cloudformation/provider.go b/internal/services/cloudformation/provider.go index 07370fa..fd712c9 100644 --- a/internal/services/cloudformation/provider.go +++ b/internal/services/cloudformation/provider.go @@ -11,7 +11,6 @@ import ( "net/http" "net/url" "os" - "strconv" "strings" "time" @@ -285,7 +284,7 @@ func (p *Provider) handleCreateStack(form url.Values) (*plugin.Response, error) // Parse tags tags := parseTagsForm(form) if len(tags) > 0 { - p.store.AddTags(arn, tags) + p.store.AddTags(arn, tags) //nolint:errcheck } // Provision the template via the engine. The engine updates the @@ -419,7 +418,7 @@ func (p *Provider) handleDeleteStack(form url.Values) (*plugin.Response, error) return nil, err } if st != nil { - p.store.DeleteAllTags(st.ARN) + p.store.DeleteAllTags(st.ARN) //nolint:errcheck } type result struct { @@ -446,9 +445,6 @@ func (p *Provider) handleDescribeStacks(form url.Values) (*plugin.Response, erro } } - type stackMember struct { - stackXML - } type result struct { XMLName xml.Name `xml:"DescribeStacksResponse"` Result struct { @@ -785,7 +781,7 @@ func (p *Provider) handleExecuteChangeSet(form url.Values) (*plugin.Response, er func (p *Provider) handleDeleteChangeSet(form url.Values) (*plugin.Response, error) { stackName := form.Get("StackName") csName := form.Get("ChangeSetName") - p.store.DeleteChangeSet(stackName, csName) // ignore error (idempotent) + p.store.DeleteChangeSet(stackName, csName) //nolint:errcheck type result struct { XMLName xml.Name `xml:"DeleteChangeSetResponse"` Result struct{} `xml:"DeleteChangeSetResult"` @@ -1669,8 +1665,3 @@ func parseParamsMap(form url.Values) map[string]string { } return out } - -// formatInt converts int64 to string. -func formatInt(n int64) string { - return strconv.FormatInt(n, 10) -} diff --git a/internal/services/cloudformation/provider_test.go b/internal/services/cloudformation/provider_test.go index eb5b246..46d6412 100644 --- a/internal/services/cloudformation/provider_test.go +++ b/internal/services/cloudformation/provider_test.go @@ -19,7 +19,7 @@ func newTestProvider(t *testing.T) *Provider { t.Helper() p := &Provider{} require.NoError(t, p.Init(plugin.PluginConfig{DataDir: t.TempDir()})) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/cloudformation/store.go b/internal/services/cloudformation/store.go index 2cfeaa2..62e4f30 100644 --- a/internal/services/cloudformation/store.go +++ b/internal/services/cloudformation/store.go @@ -202,7 +202,7 @@ func (s *Store) ListStacks(statusFilter string) ([]Stack, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var stacks []Stack for rows.Next() { st, err := scanStack(rows) @@ -239,8 +239,8 @@ func (s *Store) DeleteStack(name string) error { if n == 0 { return errStackNotFound } - s.store.DB().Exec(`DELETE FROM stack_resources WHERE stack_name = ?`, name) - s.store.DB().Exec(`DELETE FROM change_sets WHERE stack_name = ?`, name) + _, _ = s.store.DB().Exec(`DELETE FROM stack_resources WHERE stack_name = ?`, name) + _, _ = s.store.DB().Exec(`DELETE FROM change_sets WHERE stack_name = ?`, name) return nil } @@ -301,7 +301,7 @@ func (s *Store) ListStackResources(stackName string) ([]StackResource, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []StackResource for rows.Next() { var r StackResource @@ -364,7 +364,7 @@ func (s *Store) ListChangeSets(stackName string) ([]ChangeSet, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []ChangeSet for rows.Next() { cs, err := scanChangeSet(rows) @@ -438,7 +438,7 @@ func (s *Store) ListStackSets() ([]StackSet, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []StackSet for rows.Next() { ss, err := scanStackSet(rows) @@ -484,7 +484,7 @@ func (s *Store) ListExports() ([]Export, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Export for rows.Next() { var e Export diff --git a/internal/services/cloudfront/provider.go b/internal/services/cloudfront/provider.go index dc8320b..0bb9391 100644 --- a/internal/services/cloudfront/provider.go +++ b/internal/services/cloudfront/provider.go @@ -19,7 +19,6 @@ import ( ) const defaultAccountID = plugin.DefaultAccountID -const defaultRegion = "us-east-1" // Provider implements the Cloudfront2020_05_31 service. type Provider struct { @@ -283,36 +282,6 @@ func invalidationIDFromPath(path string) string { // --- Distribution operations --- -type distributionXML struct { - XMLName xml.Name `xml:"Distribution"` - Id string `xml:"Id"` - ARN string `xml:"ARN"` - Status string `xml:"Status"` - DomainName string `xml:"DomainName"` - Comment string `xml:"Comment"` - Enabled bool `xml:"DistributionConfig>Enabled"` - LastModifiedTime string `xml:"LastModifiedTime"` -} - -type distributionConfigXML struct { - XMLName xml.Name `xml:"DistributionConfig"` - Comment string `xml:"Comment"` - Enabled bool `xml:"Enabled"` - CallerRef string `xml:"CallerReference"` -} - -func distToXML(d *Distribution) distributionXML { - return distributionXML{ - Id: d.ID, - ARN: d.ARN, - Status: d.Status, - DomainName: d.DomainName, - Comment: d.Comment, - Enabled: d.Enabled, - LastModifiedTime: d.UpdatedAt.UTC().Format(time.RFC3339), - } -} - func (p *Provider) createDistribution(req *http.Request) (*plugin.Response, error) { type input struct { XMLName xml.Name `xml:"DistributionConfig"` @@ -1875,7 +1844,7 @@ func readBody(req *http.Request) ([]byte, error) { if req.Body == nil { return nil, nil } - defer req.Body.Close() + defer func() { _ = req.Body.Close() }() buf := make([]byte, 0, 512) tmp := make([]byte, 512) for { diff --git a/internal/services/cloudfront/store.go b/internal/services/cloudfront/store.go index e7d405f..8fbea96 100644 --- a/internal/services/cloudfront/store.go +++ b/internal/services/cloudfront/store.go @@ -217,7 +217,7 @@ func (s *CloudFrontStore) ListDistributions() ([]Distribution, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Distribution for rows.Next() { d, err := scanDistribution(rows) @@ -302,7 +302,7 @@ func (s *CloudFrontStore) ListCachePolicies() ([]CachePolicy, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []CachePolicy for rows.Next() { cp, err := scanCachePolicy(rows) @@ -383,7 +383,7 @@ func (s *CloudFrontStore) ListOriginRequestPolicies() ([]OriginRequestPolicy, er if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []OriginRequestPolicy for rows.Next() { p, err := scanOriginRequestPolicy(rows) @@ -464,7 +464,7 @@ func (s *CloudFrontStore) ListResponseHeadersPolicies() ([]ResponseHeadersPolicy if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []ResponseHeadersPolicy for rows.Next() { p, err := scanResponseHeadersPolicy(rows) @@ -545,7 +545,7 @@ func (s *CloudFrontStore) ListOriginAccessControls() ([]OriginAccessControl, err if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []OriginAccessControl for rows.Next() { oac, err := scanOriginAccessControl(rows) @@ -630,7 +630,7 @@ func (s *CloudFrontStore) ListFunctions() ([]Function, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Function for rows.Next() { fn, err := scanFunction(rows) @@ -712,7 +712,7 @@ func (s *CloudFrontStore) ListInvalidations(distributionID string) ([]Invalidati if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Invalidation for rows.Next() { inv, err := scanInvalidation(rows) @@ -771,7 +771,7 @@ func (s *CloudFrontStore) ListTags(arn string) (map[string]string, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() out := make(map[string]string) for rows.Next() { var k, v string diff --git a/internal/services/cloudsearch/provider_test.go b/internal/services/cloudsearch/provider_test.go index 4eb003d..d29fe1b 100644 --- a/internal/services/cloudsearch/provider_test.go +++ b/internal/services/cloudsearch/provider_test.go @@ -19,7 +19,7 @@ func newTestProvider(t *testing.T) *Provider { t.Helper() p := &Provider{} require.NoError(t, p.Init(plugin.PluginConfig{DataDir: t.TempDir()})) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/cloudsearch/store.go b/internal/services/cloudsearch/store.go index 6622166..9a943d6 100644 --- a/internal/services/cloudsearch/store.go +++ b/internal/services/cloudsearch/store.go @@ -141,7 +141,7 @@ func (s *Store) ListDomains(names []string) ([]Domain, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var domains []Domain for rows.Next() { d, err := scanDomain(rows) @@ -211,7 +211,7 @@ func (s *Store) ListIndexFields(domainName string, fieldNames []string) ([]Index if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var fields []IndexField for rows.Next() { var f IndexField @@ -259,7 +259,7 @@ func (s *Store) ListDomainConfigs(domainName, configType string) ([]DomainConfig if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var cfgs []DomainConfig for rows.Next() { var c DomainConfig diff --git a/internal/services/cloudtrail/provider.go b/internal/services/cloudtrail/provider.go index 78d49d3..04a5a81 100644 --- a/internal/services/cloudtrail/provider.go +++ b/internal/services/cloudtrail/provider.go @@ -213,7 +213,7 @@ func (p *Provider) createTrail(params map[string]any) (*plugin.Response, error) return nil, err } if rawTags, ok := params["TagsList"].([]any); ok { - p.store.tags.AddTags(trail.ARN, parseTags(rawTags)) + _ = p.store.tags.AddTags(trail.ARN, parseTags(rawTags)) } return shared.JSONResponse(http.StatusOK, trailToMap(trail)) } @@ -290,7 +290,7 @@ func (p *Provider) deleteTrail(params map[string]any) (*plugin.Response, error) if err != nil { return shared.JSONError("TrailNotFoundException", "trail not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(trail.ARN) + _ = p.store.tags.DeleteAllTags(trail.ARN) if err := p.store.DeleteTrail(name); err != nil { return shared.JSONError("TrailNotFoundException", "trail not found", http.StatusBadRequest), nil } @@ -344,8 +344,8 @@ func (p *Provider) getEventSelectors(params map[string]any) (*plugin.Response, e } var sel any var adv any - json.Unmarshal([]byte(selectors), &sel) - json.Unmarshal([]byte(advanced), &adv) + _ = json.Unmarshal([]byte(selectors), &sel) + _ = json.Unmarshal([]byte(advanced), &adv) return shared.JSONResponse(http.StatusOK, map[string]any{ "TrailARN": trail.ARN, "EventSelectors": sel, @@ -366,8 +366,8 @@ func (p *Provider) putEventSelectors(params map[string]any) (*plugin.Response, e } var sel any var adv any - json.Unmarshal([]byte(selectors), &sel) - json.Unmarshal([]byte(advanced), &adv) + _ = json.Unmarshal([]byte(selectors), &sel) + _ = json.Unmarshal([]byte(advanced), &adv) return shared.JSONResponse(http.StatusOK, map[string]any{ "TrailARN": trail.ARN, "EventSelectors": sel, @@ -386,7 +386,7 @@ func (p *Provider) getInsightSelectors(params map[string]any) (*plugin.Response, return nil, err } var sel any - json.Unmarshal([]byte(selectors), &sel) + _ = json.Unmarshal([]byte(selectors), &sel) return shared.JSONResponse(http.StatusOK, map[string]any{ "TrailARN": trail.ARN, "InsightSelectors": sel, @@ -404,7 +404,7 @@ func (p *Provider) putInsightSelectors(params map[string]any) (*plugin.Response, return nil, err } var sel any - json.Unmarshal([]byte(selectors), &sel) + _ = json.Unmarshal([]byte(selectors), &sel) return shared.JSONResponse(http.StatusOK, map[string]any{ "TrailARN": trail.ARN, "InsightSelectors": sel, @@ -428,7 +428,7 @@ func (p *Provider) createEventDataStore(params map[string]any) (*plugin.Response return nil, err } if rawTags, ok := params["TagsList"].([]any); ok { - p.store.tags.AddTags(eds.ARN, parseTags(rawTags)) + _ = p.store.tags.AddTags(eds.ARN, parseTags(rawTags)) } return shared.JSONResponse(http.StatusOK, edsToMap(eds)) } @@ -482,7 +482,7 @@ func (p *Provider) deleteEventDataStore(params map[string]any) (*plugin.Response if err != nil { return shared.JSONError("EventDataStoreNotFoundException", "event data store not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(eds.ARN) + _ = p.store.tags.DeleteAllTags(eds.ARN) if err := p.store.DeleteEventDataStore(arn); err != nil { return shared.JSONError("EventDataStoreNotFoundException", "event data store not found", http.StatusBadRequest), nil } @@ -529,7 +529,7 @@ func (p *Provider) createChannel(params map[string]any) (*plugin.Response, error return nil, err } if rawTags, ok := params["Tags"].([]any); ok { - p.store.tags.AddTags(ch.ARN, parseTags(rawTags)) + _ = p.store.tags.AddTags(ch.ARN, parseTags(rawTags)) } return shared.JSONResponse(http.StatusOK, channelToMap(ch)) } @@ -585,7 +585,7 @@ func (p *Provider) deleteChannel(params map[string]any) (*plugin.Response, error if err != nil { return shared.JSONError("ChannelNotFoundException", "channel not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(ch.ARN) + _ = p.store.tags.DeleteAllTags(ch.ARN) if err := p.store.DeleteChannel(arn); err != nil { return shared.JSONError("ChannelNotFoundException", "channel not found", http.StatusBadRequest), nil } @@ -610,7 +610,7 @@ func (p *Provider) createDashboard(params map[string]any) (*plugin.Response, err return nil, err } if rawTags, ok := params["TagsList"].([]any); ok { - p.store.tags.AddTags(dash.ARN, parseTags(rawTags)) + _ = p.store.tags.AddTags(dash.ARN, parseTags(rawTags)) } return shared.JSONResponse(http.StatusOK, dashboardToMap(dash)) } @@ -667,7 +667,7 @@ func (p *Provider) deleteDashboard(params map[string]any) (*plugin.Response, err if err != nil { return shared.JSONError("ResourceNotFoundException", "dashboard not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(dash.ARN) + _ = p.store.tags.DeleteAllTags(dash.ARN) if err := p.store.DeleteDashboard(arn); err != nil { return shared.JSONError("ResourceNotFoundException", "dashboard not found", http.StatusBadRequest), nil } @@ -879,7 +879,7 @@ func edsToMap(e *EventDataStore) map[string]any { func channelToMap(c *Channel) map[string]any { var dests any - json.Unmarshal([]byte(c.Destinations), &dests) + _ = json.Unmarshal([]byte(c.Destinations), &dests) return map[string]any{ "ChannelArn": c.ARN, "Name": c.Name, @@ -890,7 +890,7 @@ func channelToMap(c *Channel) map[string]any { func dashboardToMap(d *Dashboard) map[string]any { var widgets any - json.Unmarshal([]byte(d.Widgets), &widgets) + _ = json.Unmarshal([]byte(d.Widgets), &widgets) return map[string]any{ "DashboardArn": d.ARN, "Name": d.Name, diff --git a/internal/services/cloudtrail/provider_test.go b/internal/services/cloudtrail/provider_test.go index 3c2c299..c69f2e2 100644 --- a/internal/services/cloudtrail/provider_test.go +++ b/internal/services/cloudtrail/provider_test.go @@ -19,7 +19,7 @@ func newTestProvider(t *testing.T) *Provider { t.Helper() p := &Provider{} require.NoError(t, p.Init(plugin.PluginConfig{DataDir: t.TempDir()})) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/cloudtrail/store.go b/internal/services/cloudtrail/store.go index a6f54a2..a39c46d 100644 --- a/internal/services/cloudtrail/store.go +++ b/internal/services/cloudtrail/store.go @@ -5,7 +5,6 @@ package cloudtrail import ( "database/sql" - "encoding/json" "errors" "path/filepath" "time" @@ -190,7 +189,7 @@ func (s *Store) ListTrails() ([]Trail, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var trails []Trail for rows.Next() { t, err := scanTrail(rows) @@ -316,7 +315,7 @@ func (s *Store) ListEventDataStores() ([]EventDataStore, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []EventDataStore for rows.Next() { e, err := scanEDS(rows) @@ -396,7 +395,7 @@ func (s *Store) ListChannels() ([]Channel, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Channel for rows.Next() { c, err := scanChannel(rows) @@ -459,7 +458,7 @@ func (s *Store) ListDashboards() ([]Dashboard, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Dashboard for rows.Next() { d, err := scanDashboard(rows) @@ -533,7 +532,7 @@ func (s *Store) ListQueries() ([]Query, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Query for rows.Next() { var q Query @@ -678,8 +677,3 @@ func containsStr(s, substr string) bool { return false }()) } - -func marshalJSON(v any) string { - b, _ := json.Marshal(v) - return string(b) -} diff --git a/internal/services/cloudwatch/provider.go b/internal/services/cloudwatch/provider.go index ec55d1a..ba11aed 100644 --- a/internal/services/cloudwatch/provider.go +++ b/internal/services/cloudwatch/provider.go @@ -162,9 +162,9 @@ func (p *Provider) getMetricData(jm bool, req *http.Request) (*plugin.Response, var startTime, endTime int64 var period int - fmt.Sscanf(startTimeStr, "%d", &startTime) - fmt.Sscanf(endTimeStr, "%d", &endTime) - fmt.Sscanf(periodStr, "%d", &period) + _, _ = fmt.Sscanf(startTimeStr, "%d", &startTime) + _, _ = fmt.Sscanf(endTimeStr, "%d", &endTime) + _, _ = fmt.Sscanf(periodStr, "%d", &period) if period == 0 { period = 60 } @@ -197,9 +197,9 @@ func (p *Provider) getMetricStatistics(jm bool, req *http.Request) (*plugin.Resp var startTime, endTime int64 var period int - fmt.Sscanf(startTimeStr, "%d", &startTime) - fmt.Sscanf(endTimeStr, "%d", &endTime) - fmt.Sscanf(periodStr, "%d", &period) + _, _ = fmt.Sscanf(startTimeStr, "%d", &startTime) + _, _ = fmt.Sscanf(endTimeStr, "%d", &endTime) + _, _ = fmt.Sscanf(periodStr, "%d", &period) if period == 0 { period = 60 } @@ -650,12 +650,12 @@ func cwError(jsonMode bool, code, message string, status int) *plugin.Response { // xmlMapResp produces a minimal XML response for query-protocol clients. func xmlMapResp(status int, root string, data map[string]any) (*plugin.Response, error) { var buf bytes.Buffer - buf.WriteString(fmt.Sprintf("<%s>", root)) + fmt.Fprintf(&buf, "<%s>", root) resultKey := strings.TrimSuffix(root, "Response") + "Result" - buf.WriteString(fmt.Sprintf("<%s>", resultKey)) + fmt.Fprintf(&buf, "<%s>", resultKey) writeXMLMap(&buf, data) - buf.WriteString(fmt.Sprintf("", resultKey)) - buf.WriteString(fmt.Sprintf("", root)) + fmt.Fprintf(&buf, "", resultKey) + fmt.Fprintf(&buf, "", root) return &plugin.Response{StatusCode: status, ContentType: "text/xml", Body: buf.Bytes()}, nil } @@ -663,15 +663,15 @@ func writeXMLMap(buf *bytes.Buffer, data map[string]any) { for k, v := range data { switch val := v.(type) { case []map[string]any: - buf.WriteString(fmt.Sprintf("<%s>", k)) + fmt.Fprintf(buf, "<%s>", k) for _, item := range val { buf.WriteString("") writeXMLMap(buf, item) buf.WriteString("") } - buf.WriteString(fmt.Sprintf("", k)) + fmt.Fprintf(buf, "", k) case []any: - buf.WriteString(fmt.Sprintf("<%s>", k)) + fmt.Fprintf(buf, "<%s>", k) for _, item := range val { if m, ok := item.(map[string]any); ok { buf.WriteString("") @@ -679,15 +679,15 @@ func writeXMLMap(buf *bytes.Buffer, data map[string]any) { buf.WriteString("") } } - buf.WriteString(fmt.Sprintf("", k)) + fmt.Fprintf(buf, "", k) case string: - buf.WriteString(fmt.Sprintf("<%s>%s", k, val, k)) + fmt.Fprintf(buf, "<%s>%s", k, val, k) case float64: - buf.WriteString(fmt.Sprintf("<%s>%s", k, strconv.FormatFloat(val, 'f', -1, 64), k)) + fmt.Fprintf(buf, "<%s>%s", k, strconv.FormatFloat(val, 'f', -1, 64), k) case int: - buf.WriteString(fmt.Sprintf("<%s>%d", k, val, k)) + fmt.Fprintf(buf, "<%s>%d", k, val, k) case bool: - buf.WriteString(fmt.Sprintf("<%s>%t", k, val, k)) + fmt.Fprintf(buf, "<%s>%t", k, val, k) } } } diff --git a/internal/services/cloudwatch/provider_test.go b/internal/services/cloudwatch/provider_test.go index c4a5eb8..4ede937 100644 --- a/internal/services/cloudwatch/provider_test.go +++ b/internal/services/cloudwatch/provider_test.go @@ -18,7 +18,7 @@ func newTestProvider(t *testing.T) *Provider { t.Helper() p := &Provider{} require.NoError(t, p.Init(plugin.PluginConfig{DataDir: t.TempDir()})) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/cloudwatch/store.go b/internal/services/cloudwatch/store.go index f3282b6..7eee263 100644 --- a/internal/services/cloudwatch/store.go +++ b/internal/services/cloudwatch/store.go @@ -197,7 +197,7 @@ func (s *CWStore) ListMetrics(accountID, namespace, metricName string) ([]Metric if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var metrics []MetricIdentifier for rows.Next() { var m MetricIdentifier @@ -219,7 +219,7 @@ func (s *CWStore) GetMetricData(accountID, namespace, metricName string, startTi if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var points []MetricDataPoint for rows.Next() { var dp MetricDataPoint @@ -274,7 +274,7 @@ func (s *CWStore) DescribeAlarms(accountID string, alarmNames []string) ([]Alarm if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() return scanAlarms(rows) } @@ -389,7 +389,7 @@ func (s *CWStore) ListDashboards(accountID, prefix string) ([]Dashboard, error) if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var dashboards []Dashboard for rows.Next() { var d Dashboard @@ -451,7 +451,7 @@ func (s *CWStore) DescribeCompositeAlarms(accountID string, alarmNames []string) if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var alarms []CompositeAlarm for rows.Next() { var a CompositeAlarm @@ -509,7 +509,7 @@ func (s *CWStore) DescribeAlarmHistory(accountID, alarmName, historyItemType, st if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var items []AlarmHistoryItem for rows.Next() { var item AlarmHistoryItem @@ -529,7 +529,7 @@ func (s *CWStore) DescribeAlarmsForMetric(accountID, metricName, namespace strin if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() return scanAlarms(rows) } @@ -580,7 +580,7 @@ func (s *CWStore) DescribeAnomalyDetectors(accountID, namespace, metricName stri if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var detectors []AnomalyDetector for rows.Next() { var d AnomalyDetector diff --git a/internal/services/cloudwatchlogs/provider_test.go b/internal/services/cloudwatchlogs/provider_test.go index 7c5efc9..30440fe 100644 --- a/internal/services/cloudwatchlogs/provider_test.go +++ b/internal/services/cloudwatchlogs/provider_test.go @@ -21,7 +21,7 @@ func newTestProvider(t *testing.T) *Provider { t.Helper() p := &Provider{} require.NoError(t, p.Init(plugin.PluginConfig{DataDir: t.TempDir()})) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/cloudwatchlogs/store.go b/internal/services/cloudwatchlogs/store.go index 2b99ed8..0364eee 100644 --- a/internal/services/cloudwatchlogs/store.go +++ b/internal/services/cloudwatchlogs/store.go @@ -161,7 +161,7 @@ func (s *LogsStore) DescribeLogGroups(accountID, prefix string) ([]LogGroup, err if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var groups []LogGroup for rows.Next() { var g LogGroup @@ -211,7 +211,7 @@ func (s *LogsStore) DescribeLogStreams(groupName, accountID string) ([]LogStream if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var streams []LogStream for rows.Next() { var ls LogStream @@ -242,7 +242,7 @@ func (s *LogsStore) PutLogEvents(groupName, streamName, accountID string, events if err != nil { return err } - defer stmt.Close() + defer func() { _ = stmt.Close() }() var minTS, maxTS int64 for i, e := range events { @@ -290,7 +290,7 @@ func (s *LogsStore) GetLogEvents(groupName, streamName, accountID string, startT if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() return scanEvents(rows) } @@ -318,7 +318,7 @@ func (s *LogsStore) FilterLogEvents(groupName, accountID string, startTime, endT if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() return scanEvents(rows) } @@ -410,7 +410,7 @@ func (s *LogsStore) DescribeMetricFilters(accountID, logGroupName, filterNamePre if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var filters []MetricFilter for rows.Next() { var f MetricFilter @@ -479,7 +479,7 @@ func (s *LogsStore) DescribeSubscriptionFilters(accountID, logGroupName string) if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var filters []SubscriptionFilter for rows.Next() { var f SubscriptionFilter @@ -536,7 +536,7 @@ func (s *LogsStore) ListTagsForLogGroup(logGroupName, accountID string) (map[str if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() tags := map[string]string{} for rows.Next() { var k, v string diff --git a/internal/services/codeartifact/provider.go b/internal/services/codeartifact/provider.go index 4b9aa1b..cdc2acc 100644 --- a/internal/services/codeartifact/provider.go +++ b/internal/services/codeartifact/provider.go @@ -379,7 +379,7 @@ func (p *Provider) createDomain(req *http.Request, params map[string]any) (*plug if rawTags, ok := params["tags"].([]any); ok { tags := tagsListToMap(rawTags) - p.store.tags.AddTags(arn, tags) //nolint:errcheck + _ = p.store.tags.AddTags(arn, tags) //nolint:errcheck } stored, err := p.store.GetDomain(name) @@ -430,7 +430,7 @@ func (p *Provider) deleteDomain(req *http.Request) (*plugin.Response, error) { if err != nil { return shared.JSONError("ResourceNotFoundException", "domain not found", http.StatusNotFound), nil } - p.store.tags.DeleteAllTags(d.ARN) //nolint:errcheck + _ = p.store.tags.DeleteAllTags(d.ARN) //nolint:errcheck if err := p.store.DeleteDomain(name); err != nil { return shared.JSONError("ResourceNotFoundException", "domain not found", http.StatusNotFound), nil } @@ -482,7 +482,7 @@ func (p *Provider) createRepository(req *http.Request, params map[string]any) (* if rawTags, ok := params["tags"].([]any); ok { tags := tagsListToMap(rawTags) - p.store.tags.AddTags(arn, tags) //nolint:errcheck + _ = p.store.tags.AddTags(arn, tags) //nolint:errcheck } stored, err := p.store.GetRepository(repoName, domainName) @@ -592,7 +592,7 @@ func (p *Provider) deleteRepository(req *http.Request) (*plugin.Response, error) if err != nil { return shared.JSONError("ResourceNotFoundException", "repository not found", http.StatusNotFound), nil } - p.store.tags.DeleteAllTags(r.ARN) //nolint:errcheck + _ = p.store.tags.DeleteAllTags(r.ARN) //nolint:errcheck if err := p.store.DeleteRepository(repoName, domainName); err != nil { return shared.JSONError("ResourceNotFoundException", "repository not found", http.StatusNotFound), nil } @@ -713,7 +713,7 @@ func (p *Provider) putPackageOriginConfiguration(req *http.Request, params map[s } var originConfig any - json.Unmarshal([]byte(originConfigJSON), &originConfig) //nolint:errcheck + _ = json.Unmarshal([]byte(originConfigJSON), &originConfig) //nolint:errcheck return shared.JSONResponse(http.StatusOK, map[string]any{ "originConfiguration": originConfig, }) @@ -754,7 +754,7 @@ func (p *Provider) createPackageGroup(req *http.Request, params map[string]any) if rawTags, ok := params["tags"].([]any); ok { tags := tagsListToMap(rawTags) - p.store.tags.AddTags(arn, tags) //nolint:errcheck + _ = p.store.tags.AddTags(arn, tags) //nolint:errcheck } stored, err := p.store.GetPackageGroup(arn) @@ -886,7 +886,7 @@ func (p *Provider) deletePackageGroup(req *http.Request) (*plugin.Response, erro if err != nil { return shared.JSONError("ResourceNotFoundException", "package group not found", http.StatusNotFound), nil } - p.store.tags.DeleteAllTags(pg.ARN) //nolint:errcheck + _ = p.store.tags.DeleteAllTags(pg.ARN) //nolint:errcheck tags, _ := p.store.tags.ListTags(pg.ARN) if err := p.store.DeletePackageGroup(pg.ARN); err != nil { return shared.JSONError("ResourceNotFoundException", "package group not found", http.StatusNotFound), nil @@ -966,7 +966,7 @@ func (p *Provider) putDomainPermissionsPolicy(req *http.Request, params map[stri return shared.JSONError("ResourceNotFoundException", "domain not found", http.StatusNotFound), nil } policyDoc, _ := params["policyDocument"].(string) - p.store.tags.AddTags(d.ARN+"/policy", map[string]string{"document": policyDoc}) //nolint:errcheck + _ = p.store.tags.AddTags(d.ARN+"/policy", map[string]string{"document": policyDoc}) //nolint:errcheck return shared.JSONResponse(http.StatusOK, map[string]any{ "policy": map[string]any{ "document": policyDoc, @@ -986,7 +986,7 @@ func (p *Provider) deleteDomainPermissionsPolicy(req *http.Request) (*plugin.Res return shared.JSONError("ResourceNotFoundException", "domain not found", http.StatusNotFound), nil } policyDoc, _ := p.store.tags.ListTags(d.ARN + "/policy") - p.store.tags.DeleteAllTags(d.ARN + "/policy") //nolint:errcheck + _ = p.store.tags.DeleteAllTags(d.ARN + "/policy") //nolint:errcheck doc := "" if policyDoc != nil { doc = policyDoc["document"] @@ -1043,7 +1043,7 @@ func (p *Provider) putRepositoryPermissionsPolicy(req *http.Request, params map[ return shared.JSONError("ResourceNotFoundException", "repository not found", http.StatusNotFound), nil } policyDoc, _ := params["policyDocument"].(string) - p.store.tags.AddTags(r.ARN+"/policy", map[string]string{"document": policyDoc}) //nolint:errcheck + _ = p.store.tags.AddTags(r.ARN+"/policy", map[string]string{"document": policyDoc}) //nolint:errcheck return shared.JSONResponse(http.StatusOK, map[string]any{ "policy": map[string]any{ "document": policyDoc, @@ -1065,7 +1065,7 @@ func (p *Provider) deleteRepositoryPermissionsPolicy(req *http.Request) (*plugin return shared.JSONError("ResourceNotFoundException", "repository not found", http.StatusNotFound), nil } policyDoc, _ := p.store.tags.ListTags(r.ARN + "/policy") - p.store.tags.DeleteAllTags(r.ARN + "/policy") //nolint:errcheck + _ = p.store.tags.DeleteAllTags(r.ARN + "/policy") //nolint:errcheck doc := "" if policyDoc != nil { doc = policyDoc["document"] @@ -1100,7 +1100,7 @@ func (p *Provider) associateExternalConnection(req *http.Request, params map[str } var conns []any - json.Unmarshal([]byte(r.ExternalConns), &conns) //nolint:errcheck + _ = json.Unmarshal([]byte(r.ExternalConns), &conns) //nolint:errcheck conns = append(conns, map[string]any{ "externalConnectionName": extConn, "packageFormat": "npm", @@ -1133,7 +1133,7 @@ func (p *Provider) disassociateExternalConnection(req *http.Request) (*plugin.Re } var conns []any - json.Unmarshal([]byte(r.ExternalConns), &conns) //nolint:errcheck + _ = json.Unmarshal([]byte(r.ExternalConns), &conns) //nolint:errcheck newConns := make([]any, 0, len(conns)) for _, c := range conns { if cm, ok := c.(map[string]any); ok { @@ -1234,8 +1234,8 @@ func domainSummaryToMap(d *Domain) map[string]any { func repositoryToMap(r *Repository) map[string]any { var upstreams, externalConns any - json.Unmarshal([]byte(r.Upstreams), &upstreams) //nolint:errcheck - json.Unmarshal([]byte(r.ExternalConns), &externalConns) //nolint:errcheck + _ = json.Unmarshal([]byte(r.Upstreams), &upstreams) //nolint:errcheck + _ = json.Unmarshal([]byte(r.ExternalConns), &externalConns) //nolint:errcheck if upstreams == nil { upstreams = []any{} } @@ -1269,7 +1269,7 @@ func repositorySummaryToMap(r *Repository) map[string]any { func packageToMap(pkg *Package) map[string]any { var originConfig any - json.Unmarshal([]byte(pkg.OriginConfig), &originConfig) //nolint:errcheck + _ = json.Unmarshal([]byte(pkg.OriginConfig), &originConfig) //nolint:errcheck return map[string]any{ "name": pkg.Name, "namespace": pkg.Namespace, @@ -1280,7 +1280,7 @@ func packageToMap(pkg *Package) map[string]any { func packageSummaryToMap(pkg *Package) map[string]any { var originConfig any - json.Unmarshal([]byte(pkg.OriginConfig), &originConfig) //nolint:errcheck + _ = json.Unmarshal([]byte(pkg.OriginConfig), &originConfig) //nolint:errcheck return map[string]any{ "package": pkg.Name, "namespace": pkg.Namespace, @@ -1294,7 +1294,7 @@ func packageGroupToMap(pg *PackageGroup, tags map[string]string) map[string]any tags = map[string]string{} } var originConfig any - json.Unmarshal([]byte(pg.OriginConfig), &originConfig) //nolint:errcheck + _ = json.Unmarshal([]byte(pg.OriginConfig), &originConfig) //nolint:errcheck return map[string]any{ "arn": pg.ARN, "pattern": pg.Pattern, diff --git a/internal/services/codeartifact/provider_test.go b/internal/services/codeartifact/provider_test.go index 6a61c8d..4a6ac32 100644 --- a/internal/services/codeartifact/provider_test.go +++ b/internal/services/codeartifact/provider_test.go @@ -20,7 +20,7 @@ func newTestProvider(t *testing.T) *Provider { p := &Provider{} err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/codeartifact/store.go b/internal/services/codeartifact/store.go index 16a2b49..09829ba 100644 --- a/internal/services/codeartifact/store.go +++ b/internal/services/codeartifact/store.go @@ -146,7 +146,7 @@ func (s *Store) ListDomains() ([]Domain, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var domains []Domain for rows.Next() { d, err := scanDomain(rows) @@ -209,7 +209,7 @@ func (s *Store) ListRepositories() ([]Repository, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() return scanRepositories(rows) } @@ -220,7 +220,7 @@ func (s *Store) ListRepositoriesInDomain(domainName string) ([]Repository, error if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() return scanRepositories(rows) } @@ -303,7 +303,7 @@ func (s *Store) ListPackages(domainName, repoName, format, namespace string) ([] if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var pkgs []Package for rows.Next() { p, err := scanPackage(rows) @@ -362,7 +362,7 @@ func (s *Store) ListPackageGroups(domainName string) ([]PackageGroup, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var groups []PackageGroup for rows.Next() { pg, err := scanPackageGroup(rows) diff --git a/internal/services/codebuild/provider.go b/internal/services/codebuild/provider.go index 236b651..68fa1da 100644 --- a/internal/services/codebuild/provider.go +++ b/internal/services/codebuild/provider.go @@ -195,7 +195,7 @@ func (p *Provider) createProject(params map[string]any) (*plugin.Response, error } // Handle tags if provided if rawTags, ok := params["tags"].([]any); ok { - p.store.tags.AddTags(proj.ARN, parseTags(rawTags)) + _ = p.store.tags.AddTags(proj.ARN, parseTags(rawTags)) } return shared.JSONResponse(http.StatusOK, map[string]any{ "project": projectToMap(proj), @@ -292,7 +292,7 @@ func (p *Provider) deleteProject(params map[string]any) (*plugin.Response, error if err != nil { return shared.JSONError("ResourceNotFoundException", "project not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(proj.ARN) + _ = p.store.tags.DeleteAllTags(proj.ARN) if err := p.store.DeleteProject(name); err != nil { return shared.JSONError("ResourceNotFoundException", "project not found", http.StatusBadRequest), nil } @@ -469,7 +469,7 @@ func (p *Provider) createReportGroup(params map[string]any) (*plugin.Response, e } // Handle tags if provided if rawTags, ok := params["tags"].([]any); ok { - p.store.tags.AddTags(rg.ARN, parseTags(rawTags)) + _ = p.store.tags.AddTags(rg.ARN, parseTags(rawTags)) } return shared.JSONResponse(http.StatusOK, map[string]any{ "reportGroup": reportGroupToMap(rg), @@ -543,7 +543,7 @@ func (p *Provider) deleteReportGroup(params map[string]any) (*plugin.Response, e if _, err := p.store.GetReportGroup(arn); err != nil { return shared.JSONError("ResourceNotFoundException", "report group not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(arn) + _ = p.store.tags.DeleteAllTags(arn) if err := p.store.DeleteReportGroup(arn); err != nil { return shared.JSONError("ResourceNotFoundException", "report group not found", http.StatusBadRequest), nil } @@ -598,7 +598,7 @@ func (p *Provider) createFleet(params map[string]any) (*plugin.Response, error) } // Handle tags if provided if rawTags, ok := params["tags"].([]any); ok { - p.store.tags.AddTags(fleet.ARN, parseTags(rawTags)) + _ = p.store.tags.AddTags(fleet.ARN, parseTags(rawTags)) } return shared.JSONResponse(http.StatusOK, map[string]any{ "fleet": fleetToMap(fleet), @@ -679,7 +679,7 @@ func (p *Provider) deleteFleet(params map[string]any) (*plugin.Response, error) if _, err := p.store.GetFleet(arn); err != nil { return shared.JSONError("ResourceNotFoundException", "fleet not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(arn) + _ = p.store.tags.DeleteAllTags(arn) if err := p.store.DeleteFleet(arn); err != nil { return shared.JSONError("ResourceNotFoundException", "fleet not found", http.StatusBadRequest), nil } @@ -833,9 +833,9 @@ func credentialARN(serverType string) string { func projectToMap(p *Project) map[string]any { var source, artifacts, environment any - json.Unmarshal([]byte(p.Source), &source) - json.Unmarshal([]byte(p.Artifacts), &artifacts) - json.Unmarshal([]byte(p.Environment), &environment) + _ = json.Unmarshal([]byte(p.Source), &source) + _ = json.Unmarshal([]byte(p.Artifacts), &artifacts) + _ = json.Unmarshal([]byte(p.Environment), &environment) return map[string]any{ "name": p.Name, "arn": p.ARN, @@ -852,8 +852,8 @@ func projectToMap(p *Project) map[string]any { func buildToMap(b *Build) map[string]any { var phases, logs any - json.Unmarshal([]byte(b.Phases), &phases) - json.Unmarshal([]byte(b.Logs), &logs) + _ = json.Unmarshal([]byte(b.Phases), &phases) + _ = json.Unmarshal([]byte(b.Logs), &logs) return map[string]any{ "id": b.ID, "arn": b.ARN, @@ -869,7 +869,7 @@ func buildToMap(b *Build) map[string]any { func reportGroupToMap(rg *ReportGroup) map[string]any { var exportConfig any - json.Unmarshal([]byte(rg.ExportConfig), &exportConfig) + _ = json.Unmarshal([]byte(rg.ExportConfig), &exportConfig) return map[string]any{ "arn": rg.ARN, "name": rg.Name, diff --git a/internal/services/codebuild/provider_test.go b/internal/services/codebuild/provider_test.go index 6713409..1655fe4 100644 --- a/internal/services/codebuild/provider_test.go +++ b/internal/services/codebuild/provider_test.go @@ -20,7 +20,7 @@ func newTestProvider(t *testing.T) *Provider { p := &Provider{} err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/codebuild/store.go b/internal/services/codebuild/store.go index 5a50182..489cf51 100644 --- a/internal/services/codebuild/store.go +++ b/internal/services/codebuild/store.go @@ -174,7 +174,7 @@ func (s *Store) ListProjects() ([]Project, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var projects []Project for rows.Next() { p, err := scanProject(rows) @@ -248,7 +248,7 @@ func (s *Store) ListBuilds() ([]Build, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var builds []Build for rows.Next() { b, err := scanBuild(rows) @@ -267,7 +267,7 @@ func (s *Store) ListBuildsForProject(projectName string) ([]Build, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var builds []Build for rows.Next() { b, err := scanBuild(rows) @@ -328,7 +328,7 @@ func (s *Store) ListReportGroups() ([]ReportGroup, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var groups []ReportGroup for rows.Next() { g, err := scanReportGroup(rows) @@ -404,7 +404,7 @@ func (s *Store) ListFleets() ([]Fleet, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var fleets []Fleet for rows.Next() { f, err := scanFleet(rows) @@ -463,7 +463,7 @@ func (s *Store) ListSourceCredentials() ([]SourceCredential, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var creds []SourceCredential for rows.Next() { var c SourceCredential diff --git a/internal/services/codecommit/provider.go b/internal/services/codecommit/provider.go index 54b896e..7fcdb17 100644 --- a/internal/services/codecommit/provider.go +++ b/internal/services/codecommit/provider.go @@ -237,7 +237,7 @@ func (p *Provider) createRepository(params map[string]any) (*plugin.Response, er // Handle tags if rawTags, ok := params["tags"].(map[string]any); ok { tags := flatTags(rawTags) - p.store.tags.AddTags(arn, tags) + _ = p.store.tags.AddTags(arn, tags) } return shared.JSONResponse(http.StatusOK, map[string]any{ "repositoryMetadata": repoToMap(repo), @@ -308,7 +308,7 @@ func (p *Provider) deleteRepository(params map[string]any) (*plugin.Response, er if err != nil { return shared.JSONError("RepositoryDoesNotExistException", "repository not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(repo.ARN) + _ = p.store.tags.DeleteAllTags(repo.ARN) repoID := repo.ID if err := p.store.DeleteRepository(name); err != nil { return shared.JSONError("RepositoryDoesNotExistException", "repository not found", http.StatusBadRequest), nil diff --git a/internal/services/codecommit/provider_test.go b/internal/services/codecommit/provider_test.go index 9f2c791..322ebf5 100644 --- a/internal/services/codecommit/provider_test.go +++ b/internal/services/codecommit/provider_test.go @@ -20,7 +20,7 @@ func newTestProvider(t *testing.T) *Provider { p := &Provider{} err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/codecommit/store.go b/internal/services/codecommit/store.go index fea80be..7aab41b 100644 --- a/internal/services/codecommit/store.go +++ b/internal/services/codecommit/store.go @@ -209,7 +209,7 @@ func (s *Store) ListRepositories() ([]Repository, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var repos []Repository for rows.Next() { r, err := scanRepository(rows) @@ -270,7 +270,7 @@ func (s *Store) DeleteRepository(name string) error { return errRepositoryNotFound } // cascade-delete branches - s.store.DB().Exec(`DELETE FROM branches WHERE repo_name = ?`, name) + _, _ = s.store.DB().Exec(`DELETE FROM branches WHERE repo_name = ?`, name) return nil } @@ -307,7 +307,7 @@ func (s *Store) ListBranches(repoName string) ([]Branch, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var branches []Branch for rows.Next() { var b Branch @@ -376,7 +376,7 @@ func (s *Store) ListPullRequests(repoName, status, authorARN string) ([]PullRequ if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var prs []PullRequest for rows.Next() { pr, err := scanPullRequest(rows) @@ -440,7 +440,7 @@ func (s *Store) ListPRApprovalRules(prID string) ([]map[string]string, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var rules []map[string]string for rows.Next() { var name, content string @@ -466,7 +466,7 @@ func (s *Store) GetApprovals(prID string) ([]map[string]string, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var approvals []map[string]string for rows.Next() { var userARN, state string @@ -495,7 +495,7 @@ func (s *Store) GetOverride(prID string) (bool, string) { row := s.store.DB().QueryRow(`SELECT overridden, overrider FROM pr_override WHERE pr_id = ?`, prID) var overridden int var overrider string - row.Scan(&overridden, &overrider) + _ = row.Scan(&overridden, &overrider) return overridden == 1, overrider } @@ -531,7 +531,7 @@ func (s *Store) ListApprovalRuleTemplates() ([]ApprovalRuleTemplate, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var templates []ApprovalRuleTemplate for rows.Next() { t, err := scanApprovalRuleTemplate(rows) @@ -604,7 +604,7 @@ func (s *Store) ListTemplatesForRepo(repoName string) ([]string, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var names []string for rows.Next() { var n string @@ -622,7 +622,7 @@ func (s *Store) ListReposForTemplate(templateName string) ([]string, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var names []string for rows.Next() { var n string @@ -679,7 +679,7 @@ func (s *Store) ListComments() ([]Comment, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var comments []Comment for rows.Next() { c, err := scanComment(rows) @@ -706,7 +706,7 @@ func (s *Store) GetCommentReactions(commentID string) ([]map[string]string, erro if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var reactions []map[string]string for rows.Next() { var userARN, emoji string diff --git a/internal/services/codeconnections/provider.go b/internal/services/codeconnections/provider.go index de03976..d592107 100644 --- a/internal/services/codeconnections/provider.go +++ b/internal/services/codeconnections/provider.go @@ -253,7 +253,7 @@ func (p *CodeConnectionsProvider) createConnection(params map[string]any) (*plug return nil, err } if rawTags, ok := params["Tags"].([]any); ok { - p.store.PutTags(arn, parseTagList(rawTags)) + _ = p.store.PutTags(arn, parseTagList(rawTags)) } return shared.JSONResponse(http.StatusOK, map[string]any{ "ConnectionArn": arn, @@ -345,7 +345,7 @@ func (p *CodeConnectionsProvider) createHost(params map[string]any) (*plugin.Res return nil, err } if rawTags, ok := params["Tags"].([]any); ok { - p.store.PutTags(arn, parseTagList(rawTags)) + _ = p.store.PutTags(arn, parseTagList(rawTags)) } return shared.JSONResponse(http.StatusOK, map[string]any{ "HostArn": arn, @@ -363,7 +363,7 @@ func (p *CodeConnectionsProvider) getHost(params map[string]any) (*plugin.Respon return shared.JSONError("ResourceNotFoundException", "host not found", http.StatusNotFound), nil } var vpc any - json.Unmarshal([]byte(h.VpcConfig), &vpc) + _ = json.Unmarshal([]byte(h.VpcConfig), &vpc) return shared.JSONResponse(http.StatusOK, map[string]any{ "Name": h.Name, "Status": h.Status, @@ -448,7 +448,7 @@ func (p *CodeConnectionsProvider) createRepositoryLink(params map[string]any) (* return nil, err } if rawTags, ok := params["Tags"].([]any); ok { - p.store.PutTags(arn, parseTagList(rawTags)) + _ = p.store.PutTags(arn, parseTagList(rawTags)) } return shared.JSONResponse(http.StatusOK, map[string]any{ "RepositoryLinkInfo": repoLinkToMap(r), diff --git a/internal/services/codeconnections/store.go b/internal/services/codeconnections/store.go index 837150f..45dd8d7 100644 --- a/internal/services/codeconnections/store.go +++ b/internal/services/codeconnections/store.go @@ -167,7 +167,7 @@ func (s *Store) ListConnections() ([]Connection, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Connection for rows.Next() { var c Connection @@ -228,7 +228,7 @@ func (s *Store) ListHosts() ([]Host, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Host for rows.Next() { var h Host @@ -303,7 +303,7 @@ func (s *Store) ListRepoLinks() ([]RepositoryLink, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []RepositoryLink for rows.Next() { var r RepositoryLink @@ -374,7 +374,7 @@ func (s *Store) ListSyncConfigs(syncType string) ([]SyncConfiguration, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []SyncConfiguration for rows.Next() { var c SyncConfiguration @@ -423,7 +423,7 @@ func (s *Store) GetTags(arn string) (map[string]string, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() tags := map[string]string{} for rows.Next() { var k, v string diff --git a/internal/services/codedeploy/provider.go b/internal/services/codedeploy/provider.go index 58420cd..889be16 100644 --- a/internal/services/codedeploy/provider.go +++ b/internal/services/codedeploy/provider.go @@ -168,7 +168,7 @@ func (p *Provider) createApplication(params map[string]any) (*plugin.Response, e arn := appARN(app.Name) // Handle tags if rawTags, ok := params["tags"].([]any); ok { - p.store.tags.AddTags(arn, parseTags(rawTags)) + _ = p.store.tags.AddTags(arn, parseTags(rawTags)) } return shared.JSONResponse(http.StatusOK, map[string]any{ "applicationId": app.ID, @@ -227,7 +227,7 @@ func (p *Provider) deleteApplication(params map[string]any) (*plugin.Response, e if err != nil { return shared.JSONError("ApplicationDoesNotExistException", "application not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(appARN(app.Name)) + _ = p.store.tags.DeleteAllTags(appARN(app.Name)) if err := p.store.DeleteApplication(name); err != nil { return shared.JSONError("ApplicationDoesNotExistException", "application not found", http.StatusBadRequest), nil } @@ -655,9 +655,9 @@ func applicationToMap(a *Application) map[string]any { func deploymentGroupToMap(g *DeploymentGroup) map[string]any { var autoRollback any - json.Unmarshal([]byte(g.AutoRollback), &autoRollback) + _ = json.Unmarshal([]byte(g.AutoRollback), &autoRollback) var deployStyle any - json.Unmarshal([]byte(g.DeploymentStyle), &deployStyle) + _ = json.Unmarshal([]byte(g.DeploymentStyle), &deployStyle) return map[string]any{ "deploymentGroupId": g.ID, "deploymentGroupName": g.Name, @@ -671,7 +671,7 @@ func deploymentGroupToMap(g *DeploymentGroup) map[string]any { func deploymentToMap(d *Deployment) map[string]any { var revision any - json.Unmarshal([]byte(d.Revision), &revision) + _ = json.Unmarshal([]byte(d.Revision), &revision) return map[string]any{ "deploymentId": d.ID, "applicationName": d.AppName, @@ -686,7 +686,7 @@ func deploymentToMap(d *Deployment) map[string]any { func deploymentConfigToMap(c *DeploymentConfig) map[string]any { var minHealthy any - json.Unmarshal([]byte(c.MinHealthy), &minHealthy) + _ = json.Unmarshal([]byte(c.MinHealthy), &minHealthy) return map[string]any{ "deploymentConfigName": c.Name, "computePlatform": c.ComputePlatform, diff --git a/internal/services/codedeploy/provider_test.go b/internal/services/codedeploy/provider_test.go index 23d6ef5..322dce8 100644 --- a/internal/services/codedeploy/provider_test.go +++ b/internal/services/codedeploy/provider_test.go @@ -20,7 +20,7 @@ func newTestProvider(t *testing.T) *Provider { p := &Provider{} err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/codedeploy/store.go b/internal/services/codedeploy/store.go index 4f53380..033ddda 100644 --- a/internal/services/codedeploy/store.go +++ b/internal/services/codedeploy/store.go @@ -139,7 +139,7 @@ func (s *Store) ListApplications() ([]Application, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var apps []Application for rows.Next() { a, err := scanApplication(rows) @@ -214,7 +214,7 @@ func (s *Store) ListDeploymentGroups(appName string) ([]DeploymentGroup, error) if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var groups []DeploymentGroup for rows.Next() { g, err := scanDeploymentGroup(rows) @@ -295,7 +295,7 @@ func (s *Store) ListDeployments(appName, groupName string) ([]Deployment, error) if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var deployments []Deployment for rows.Next() { d, err := scanDeployment(rows) @@ -352,7 +352,7 @@ func (s *Store) ListDeploymentConfigs() ([]DeploymentConfig, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var cfgs []DeploymentConfig for rows.Next() { c, err := scanDeploymentConfig(rows) diff --git a/internal/services/codepipeline/provider.go b/internal/services/codepipeline/provider.go index 24ad7bb..693f234 100644 --- a/internal/services/codepipeline/provider.go +++ b/internal/services/codepipeline/provider.go @@ -236,7 +236,7 @@ func (p *Provider) createPipeline(params map[string]any) (*plugin.Response, erro } // Handle tags if rawTags, ok := params["tags"].([]any); ok { - p.store.tags.AddTags(pl.ARN, parseTags(rawTags)) + _ = p.store.tags.AddTags(pl.ARN, parseTags(rawTags)) } return shared.JSONResponse(http.StatusOK, map[string]any{ "pipeline": pipelineToMap(pl), @@ -315,7 +315,7 @@ func (p *Provider) deletePipeline(params map[string]any) (*plugin.Response, erro if err != nil { return shared.JSONError("PipelineNotFoundException", "pipeline not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(pl.ARN) + _ = p.store.tags.DeleteAllTags(pl.ARN) if err := p.store.DeletePipeline(name); err != nil { return shared.JSONError("PipelineNotFoundException", "pipeline not found", http.StatusBadRequest), nil } @@ -399,7 +399,7 @@ func (p *Provider) getPipelineState(params map[string]any) (*plugin.Response, er return shared.JSONError("PipelineNotFoundException", "pipeline not found", http.StatusBadRequest), nil } var stages []any - json.Unmarshal([]byte(pl.Stages), &stages) + _ = json.Unmarshal([]byte(pl.Stages), &stages) stageStates := make([]map[string]any, 0, len(stages)) for _, s := range stages { sm, _ := s.(map[string]any) @@ -456,7 +456,7 @@ func (p *Provider) putWebhook(params map[string]any) (*plugin.Response, error) { } // Handle tags if rawTags, ok := params["tags"].([]any); ok { - p.store.tags.AddTags(wh.ARN, parseTags(rawTags)) + _ = p.store.tags.AddTags(wh.ARN, parseTags(rawTags)) } return shared.JSONResponse(http.StatusOK, map[string]any{ "webhook": webhookToMap(wh), @@ -490,7 +490,7 @@ func (p *Provider) deleteWebhook(params map[string]any) (*plugin.Response, error if err != nil { return shared.JSONError("WebhookNotFoundException", "webhook not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(wh.ARN) + _ = p.store.tags.DeleteAllTags(wh.ARN) if err := p.store.DeleteWebhook(name); err != nil { return shared.JSONError("WebhookNotFoundException", "webhook not found", http.StatusBadRequest), nil } @@ -551,7 +551,7 @@ func (p *Provider) listTagsForResource(params map[string]any) (*plugin.Response, func pipelineToMap(pl *Pipeline) map[string]any { var stages any - json.Unmarshal([]byte(pl.Stages), &stages) + _ = json.Unmarshal([]byte(pl.Stages), &stages) if stages == nil { stages = []any{} } @@ -575,12 +575,12 @@ func executionToMap(e *PipelineExecution) map[string]any { func webhookToMap(wh *Webhook) map[string]any { var filters any - json.Unmarshal([]byte(wh.Filters), &filters) + _ = json.Unmarshal([]byte(wh.Filters), &filters) if filters == nil { filters = []any{} } var authCfg any - json.Unmarshal([]byte(wh.AuthConfig), &authCfg) + _ = json.Unmarshal([]byte(wh.AuthConfig), &authCfg) return map[string]any{ "name": wh.Name, "targetPipeline": wh.Pipeline, diff --git a/internal/services/codepipeline/provider_test.go b/internal/services/codepipeline/provider_test.go index d8f0fcc..ea7564b 100644 --- a/internal/services/codepipeline/provider_test.go +++ b/internal/services/codepipeline/provider_test.go @@ -20,7 +20,7 @@ func newTestProvider(t *testing.T) *Provider { p := &Provider{} err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/codepipeline/store.go b/internal/services/codepipeline/store.go index d2125ee..4d12db6 100644 --- a/internal/services/codepipeline/store.go +++ b/internal/services/codepipeline/store.go @@ -126,7 +126,7 @@ func (s *Store) ListPipelines() ([]Pipeline, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var pipelines []Pipeline for rows.Next() { p, err := scanPipeline(rows) @@ -201,7 +201,7 @@ func (s *Store) ListExecutions(pipelineName string) ([]PipelineExecution, error) if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var execs []PipelineExecution for rows.Next() { e, err := scanExecution(rows) @@ -266,7 +266,7 @@ func (s *Store) ListWebhooks() ([]Webhook, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var webhooks []Webhook for rows.Next() { w, err := scanWebhook(rows) diff --git a/internal/services/cognitoidentity/store.go b/internal/services/cognitoidentity/store.go index 32f30be..eba1362 100644 --- a/internal/services/cognitoidentity/store.go +++ b/internal/services/cognitoidentity/store.go @@ -128,7 +128,7 @@ func (s *CognitoIdentityStore) ListPools() ([]IdentityPool, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var pools []IdentityPool for rows.Next() { p, err := scanPool(rows) @@ -176,7 +176,7 @@ func (s *CognitoIdentityStore) ListIdentities(poolID string) ([]Identity, error) if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var identities []Identity for rows.Next() { i, err := scanIdentity(rows) @@ -217,7 +217,7 @@ func (s *CognitoIdentityStore) ListTags(poolARN string) (map[string]string, erro if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() tags := make(map[string]string) for rows.Next() { var k, v string diff --git a/internal/services/cognitoidentityprovider/provider.go b/internal/services/cognitoidentityprovider/provider.go index fde32dd..0888d38 100644 --- a/internal/services/cognitoidentityprovider/provider.go +++ b/internal/services/cognitoidentityprovider/provider.go @@ -1430,7 +1430,7 @@ func (p *Provider) signUp(req *http.Request) (*plugin.Response, error) { if clients.Next() { _ = clients.Scan(&poolID) } - clients.Close() + clients.Close() //nolint:errcheck if poolID == "" { return cognitoError("ResourceNotFoundException", "client not found", http.StatusBadRequest), nil } diff --git a/internal/services/cognitoidentityprovider/store.go b/internal/services/cognitoidentityprovider/store.go index 02fa4a6..425c0b3 100644 --- a/internal/services/cognitoidentityprovider/store.go +++ b/internal/services/cognitoidentityprovider/store.go @@ -200,7 +200,7 @@ func (s *CognitoStore) ListUserPools() ([]UserPool, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var pools []UserPool for rows.Next() { p, err := scanUserPool(rows) @@ -271,7 +271,7 @@ func (s *CognitoStore) ListUserPoolClients(poolID string) ([]UserPoolClient, err if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var clients []UserPoolClient for rows.Next() { c, err := scanClient(rows) @@ -342,7 +342,7 @@ func (s *CognitoStore) ListUsers(poolID string) ([]User, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var users []User for rows.Next() { u, err := scanUser(rows) @@ -413,7 +413,7 @@ func (s *CognitoStore) ListGroups(poolID string) ([]Group, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var groups []Group for rows.Next() { g, err := scanGroup(rows) @@ -487,7 +487,7 @@ func (s *CognitoStore) ListGroupsForUser(poolID, username string) ([]Group, erro if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var groups []Group for rows.Next() { g, err := scanGroup(rows) @@ -508,7 +508,7 @@ func (s *CognitoStore) ListUsersInGroup(poolID, groupName string) ([]User, error if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var users []User for rows.Next() { u, err := scanUser(rows) @@ -540,7 +540,7 @@ func (s *CognitoStore) GetIdentityProviderByIdentifier(poolID, identifier string if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() for rows.Next() { idp, err := scanIDP(rows) if err != nil { @@ -559,7 +559,7 @@ func (s *CognitoStore) ListIdentityProviders(poolID string) ([]IdentityProvider, if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var idps []IdentityProvider for rows.Next() { idp, err := scanIDP(rows) @@ -630,7 +630,7 @@ func (s *CognitoStore) ListResourceServers(poolID string) ([]ResourceServer, err if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var servers []ResourceServer for rows.Next() { rs, err := scanRS(rows) @@ -709,7 +709,7 @@ func (s *CognitoStore) ListTagsForResource(arn string) (map[string]string, error if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() tags := map[string]string{} for rows.Next() { var k, v string diff --git a/internal/services/configservice/provider.go b/internal/services/configservice/provider.go index add7cdc..5de726f 100644 --- a/internal/services/configservice/provider.go +++ b/internal/services/configservice/provider.go @@ -406,8 +406,8 @@ func (p *Provider) describeConfigRuleEvaluationStatus(params map[string]any) (*p func configRuleToMap(r *ConfigRule) map[string]any { var source, scope any - json.Unmarshal([]byte(r.Source), &source) - json.Unmarshal([]byte(r.Scope), &scope) + _ = json.Unmarshal([]byte(r.Source), &source) + _ = json.Unmarshal([]byte(r.Scope), &scope) return map[string]any{ "ConfigRuleName": r.Name, "ConfigRuleArn": r.ARN, @@ -522,8 +522,8 @@ func (p *Provider) deleteConfigurationRecorder(params map[string]any) (*plugin.R func recorderToMap(r *ConfigurationRecorder) map[string]any { var rg, rm any - json.Unmarshal([]byte(r.RecordingGroup), &rg) - json.Unmarshal([]byte(r.RecordingMode), &rm) + _ = json.Unmarshal([]byte(r.RecordingGroup), &rg) + _ = json.Unmarshal([]byte(r.RecordingMode), &rm) return map[string]any{ "name": r.Name, "roleARN": r.RoleARN, @@ -778,8 +778,8 @@ func (p *Provider) deleteConfigurationAggregator(params map[string]any) (*plugin func aggregatorToMap(a *Aggregator) map[string]any { var acctSrc, orgSrc any - json.Unmarshal([]byte(a.AccountSources), &acctSrc) - json.Unmarshal([]byte(a.OrgSource), &orgSrc) + _ = json.Unmarshal([]byte(a.AccountSources), &acctSrc) + _ = json.Unmarshal([]byte(a.OrgSource), &orgSrc) return map[string]any{ "ConfigurationAggregatorName": a.Name, "ConfigurationAggregatorArn": a.ARN, @@ -1044,7 +1044,7 @@ func (p *Provider) deleteRemediationConfiguration(params map[string]any) (*plugi func remediationConfigToMap(r *RemediationConfig) map[string]any { var params any - json.Unmarshal([]byte(r.Parameters), ¶ms) + _ = json.Unmarshal([]byte(r.Parameters), ¶ms) return map[string]any{ "ConfigRuleName": r.ConfigRuleName, "TargetType": r.TargetType, diff --git a/internal/services/configservice/provider_test.go b/internal/services/configservice/provider_test.go index 179f823..fe082b1 100644 --- a/internal/services/configservice/provider_test.go +++ b/internal/services/configservice/provider_test.go @@ -19,7 +19,7 @@ func newTestProvider(t *testing.T) *Provider { if err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}); err != nil { t.Fatalf("Init: %v", err) } - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/configservice/store.go b/internal/services/configservice/store.go index 06e78f4..a41dfd4 100644 --- a/internal/services/configservice/store.go +++ b/internal/services/configservice/store.go @@ -190,10 +190,6 @@ func NewStore(dataDir string) (*Store, error) { func (s *Store) Close() error { return s.db.Close() } -func sqliteUnique(err error) bool { - return err != nil && strings.Contains(err.Error(), "UNIQUE constraint failed") -} - func now() int64 { return time.Now().Unix() } // ---- ConfigRule ---- @@ -244,7 +240,7 @@ func (s *Store) ListConfigRules(names []string) ([]*ConfigRule, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []*ConfigRule for rows.Next() { r, err := scanConfigRule(rows) @@ -313,7 +309,7 @@ func (s *Store) ListConfigurationRecorders(names []string) ([]*ConfigurationReco if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []*ConfigurationRecorder for rows.Next() { r, err := scanRecorder(rows) @@ -388,7 +384,7 @@ func (s *Store) ListDeliveryChannels(names []string) ([]*DeliveryChannel, error) if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []*DeliveryChannel for rows.Next() { d, err := scanDeliveryChannel(rows) @@ -451,7 +447,7 @@ func (s *Store) ListConformancePacks(names []string) ([]*ConformancePack, error) if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []*ConformancePack for rows.Next() { c, err := scanConformancePack(rows) @@ -519,7 +515,7 @@ func (s *Store) ListAggregators(names []string) ([]*Aggregator, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []*Aggregator for rows.Next() { a, err := scanAggregator(rows) @@ -573,7 +569,7 @@ func (s *Store) ListStoredQueries() ([]*StoredQuery, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []*StoredQuery for rows.Next() { q, err := scanStoredQuery(rows) @@ -625,7 +621,7 @@ func (s *Store) ListRetentionConfigs() ([]*RetentionConfig, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []*RetentionConfig for rows.Next() { r, err := scanRetentionConfig(rows) @@ -673,7 +669,7 @@ func (s *Store) ListAggregationAuthorizations() ([]*AggregationAuthorization, er if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []*AggregationAuthorization for rows.Next() { a, err := scanAggAuth(rows) @@ -738,7 +734,7 @@ func (s *Store) ListRemediationConfigs(ruleNames []string) ([]*RemediationConfig if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []*RemediationConfig for rows.Next() { r, err := scanRemediationConfig(rows) diff --git a/internal/services/costexplorer/provider.go b/internal/services/costexplorer/provider.go index 318748b..9b00d98 100644 --- a/internal/services/costexplorer/provider.go +++ b/internal/services/costexplorer/provider.go @@ -219,7 +219,7 @@ func (p *Provider) createCostCategoryDefinition(params map[string]any) (*plugin. return nil, err } if rawTags, ok := params["ResourceTags"].([]any); ok { - p.store.tags.AddTags(cat.ARN, parseTags(rawTags)) + _ = p.store.tags.AddTags(cat.ARN, parseTags(rawTags)) //nolint:errcheck } return shared.JSONResponse(http.StatusOK, map[string]any{ "CostCategoryArn": cat.ARN, @@ -287,7 +287,7 @@ func (p *Provider) deleteCostCategoryDefinition(params map[string]any) (*plugin. if arn == "" { return shared.JSONError("ValidationException", "CostCategoryArn is required", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(arn) + _ = p.store.tags.DeleteAllTags(arn) //nolint:errcheck if err := p.store.DeleteCostCategory(arn); err != nil { return shared.JSONError("ResourceNotFoundException", "cost category not found", http.StatusBadRequest), nil } @@ -327,7 +327,7 @@ func (p *Provider) createAnomalyMonitor(params map[string]any) (*plugin.Response return nil, err } if rawTags, ok := params["ResourceTags"].([]any); ok { - p.store.tags.AddTags(mon.ARN, parseTags(rawTags)) + _ = p.store.tags.AddTags(mon.ARN, parseTags(rawTags)) //nolint:errcheck } return shared.JSONResponse(http.StatusOK, map[string]any{ "MonitorArn": mon.ARN, @@ -375,7 +375,7 @@ func (p *Provider) deleteAnomalyMonitor(params map[string]any) (*plugin.Response if arn == "" { return shared.JSONError("ValidationException", "MonitorArn is required", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(arn) + _ = p.store.tags.DeleteAllTags(arn) //nolint:errcheck if err := p.store.DeleteAnomalyMonitor(arn); err != nil { return shared.JSONError("UnknownMonitorException", "monitor not found", http.StatusBadRequest), nil } @@ -417,7 +417,7 @@ func (p *Provider) createAnomalySubscription(params map[string]any) (*plugin.Res return nil, err } if rawTags, ok := params["ResourceTags"].([]any); ok { - p.store.tags.AddTags(s.ARN, parseTags(rawTags)) + _ = p.store.tags.AddTags(s.ARN, parseTags(rawTags)) //nolint:errcheck } return shared.JSONResponse(http.StatusOK, map[string]any{ "SubscriptionArn": s.ARN, @@ -483,7 +483,7 @@ func (p *Provider) deleteAnomalySubscription(params map[string]any) (*plugin.Res if arn == "" { return shared.JSONError("ValidationException", "SubscriptionArn is required", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(arn) + _ = p.store.tags.DeleteAllTags(arn) //nolint:errcheck if err := p.store.DeleteAnomalySubscription(arn); err != nil { return shared.JSONError("UnknownSubscriptionException", "subscription not found", http.StatusBadRequest), nil } @@ -604,7 +604,7 @@ func extractTimePeriod(params map[string]any) map[string]any { func costCategoryToMap(c *CostCategory) map[string]any { var rules any - json.Unmarshal([]byte(c.Rules), &rules) + _ = json.Unmarshal([]byte(c.Rules), &rules) return map[string]any{ "CostCategoryArn": c.ARN, "Name": c.Name, @@ -627,8 +627,8 @@ func anomalyMonitorToMap(m *AnomalyMonitor) map[string]any { func anomalySubscriptionToMap(s *AnomalySubscription) map[string]any { var monitorARNs any var subscribers any - json.Unmarshal([]byte(s.MonitorARNs), &monitorARNs) - json.Unmarshal([]byte(s.Subscribers), &subscribers) + _ = json.Unmarshal([]byte(s.MonitorARNs), &monitorARNs) + _ = json.Unmarshal([]byte(s.Subscribers), &subscribers) return map[string]any{ "SubscriptionArn": s.ARN, "SubscriptionName": s.Name, diff --git a/internal/services/costexplorer/provider_test.go b/internal/services/costexplorer/provider_test.go index 1f019c0..6613cd1 100644 --- a/internal/services/costexplorer/provider_test.go +++ b/internal/services/costexplorer/provider_test.go @@ -23,8 +23,8 @@ func newTestProvider(t *testing.T) *Provider { t.Fatalf("Init: %v", err) } t.Cleanup(func() { - p.Shutdown(context.Background()) - os.RemoveAll(dir) + _ = p.Shutdown(context.Background()) + _ = os.RemoveAll(dir) }) return p } diff --git a/internal/services/costexplorer/store.go b/internal/services/costexplorer/store.go index eca303e..cce05ad 100644 --- a/internal/services/costexplorer/store.go +++ b/internal/services/costexplorer/store.go @@ -130,7 +130,7 @@ func (s *Store) ListCostCategories() ([]CostCategory, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var cats []CostCategory for rows.Next() { c, err := scanCostCategory(rows) @@ -200,7 +200,7 @@ func (s *Store) ListAnomalyMonitors(arns []string) ([]AnomalyMonitor, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() arnSet := make(map[string]bool, len(arns)) for _, a := range arns { arnSet[a] = true @@ -276,7 +276,7 @@ func (s *Store) ListAnomalySubscriptions(monitorARN string) ([]AnomalySubscripti if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var subs []AnomalySubscription for rows.Next() { sub, err := scanAnomalySubscription(rows) diff --git a/internal/services/dms/provider.go b/internal/services/dms/provider.go index 921994e..7e388a2 100644 --- a/internal/services/dms/provider.go +++ b/internal/services/dms/provider.go @@ -717,8 +717,8 @@ func instanceToMap(r *ReplicationInstance) map[string]any { func taskToMap(t *ReplicationTask) map[string]any { var tableMappings, taskSettings any - json.Unmarshal([]byte(t.TableMappings), &tableMappings) - json.Unmarshal([]byte(t.TaskSettings), &taskSettings) + _ = json.Unmarshal([]byte(t.TableMappings), &tableMappings) + _ = json.Unmarshal([]byte(t.TaskSettings), &taskSettings) return map[string]any{ "ReplicationTaskArn": t.ARN, "ReplicationTaskIdentifier": t.Identifier, @@ -751,7 +751,7 @@ func endpointToMap(e *DMSEndpoint) map[string]any { func eventSubToMap(es *EventSubscription) map[string]any { var categories any - json.Unmarshal([]byte(es.EventCategories), &categories) + _ = json.Unmarshal([]byte(es.EventCategories), &categories) return map[string]any{ "CustomerAwsId": es.AccountID, "CustSubscriptionId": es.Name, diff --git a/internal/services/dms/store.go b/internal/services/dms/store.go index 394dbc7..a88e3e1 100644 --- a/internal/services/dms/store.go +++ b/internal/services/dms/store.go @@ -175,7 +175,7 @@ func (s *Store) ListReplicationInstances() ([]ReplicationInstance, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []ReplicationInstance for rows.Next() { r, err := scanInstance(rows) @@ -243,7 +243,7 @@ func (s *Store) ListReplicationTasks() ([]ReplicationTask, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []ReplicationTask for rows.Next() { t, err := scanTask(rows) @@ -326,7 +326,7 @@ func (s *Store) ListEndpoints() ([]DMSEndpoint, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []DMSEndpoint for rows.Next() { e, err := scanEndpoint(rows) @@ -409,7 +409,7 @@ func (s *Store) ListEventSubscriptions(accountID string) ([]EventSubscription, e if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []EventSubscription for rows.Next() { var es EventSubscription @@ -459,7 +459,7 @@ func (s *Store) GetTags(arn string) (map[string]string, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() tags := map[string]string{} for rows.Next() { var k, v string diff --git a/internal/services/docdb/provider_test.go b/internal/services/docdb/provider_test.go index f3b24bd..0ee919e 100644 --- a/internal/services/docdb/provider_test.go +++ b/internal/services/docdb/provider_test.go @@ -19,7 +19,7 @@ func newTestProvider(t *testing.T) *Provider { t.Helper() p := &Provider{} require.NoError(t, p.Init(plugin.PluginConfig{DataDir: t.TempDir()})) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/docdb/store.go b/internal/services/docdb/store.go index 996cc6e..7bd351a 100644 --- a/internal/services/docdb/store.go +++ b/internal/services/docdb/store.go @@ -205,7 +205,7 @@ func (s *Store) ListClusters(ids []string) ([]DBCluster, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var clusters []DBCluster for rows.Next() { c, err := scanCluster(rows) @@ -297,7 +297,7 @@ func (s *Store) ListInstances(ids []string) ([]DBInstance, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var instances []DBInstance for rows.Next() { inst, err := scanInstance(rows) @@ -379,7 +379,7 @@ func (s *Store) ListSnapshots(clusterID string) ([]ClusterSnapshot, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var snaps []ClusterSnapshot for rows.Next() { sn, err := scanSnapshot(rows) @@ -441,7 +441,7 @@ func (s *Store) ListSubnetGroups(names []string) ([]SubnetGroup, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var groups []SubnetGroup for rows.Next() { sg, err := scanSubnetGroup(rows) @@ -518,7 +518,7 @@ func (s *Store) ListParamGroups(names []string) ([]ClusterParamGroup, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var groups []ClusterParamGroup for rows.Next() { pg, err := scanParamGroup(rows) diff --git a/internal/services/dynamodb/expression.go b/internal/services/dynamodb/expression.go index 4d4d9ab..adb867a 100644 --- a/internal/services/dynamodb/expression.go +++ b/internal/services/dynamodb/expression.go @@ -45,12 +45,6 @@ func (t *tokenizer) peek() rune { return t.input[t.pos] } -func (t *tokenizer) next() rune { - r := t.input[t.pos] - t.pos++ - return r -} - func (t *tokenizer) skipWS() { for t.pos < len(t.input) && unicode.IsSpace(t.input[t.pos]) { t.pos++ @@ -243,34 +237,6 @@ func (p *exprParser) parsePrimary() bool { return p.parseComparison() } -// getAttrPath resolves a path string to an AttributeValue from the item. -// Supports nested paths like "a.b" (map access). -func (p *exprParser) getAttrPath(path string) *AttributeValue { - parts := strings.SplitN(path, ".", 2) - name := parts[0] - // Resolve name reference - if strings.HasPrefix(name, "#") { - if resolved, ok := p.nameMap[name]; ok { - name = resolved - } - } - av, ok := p.item[name] - if !ok { - return nil - } - if len(parts) == 2 && av.M != nil { - // Recurse into map - sub := &exprParser{ - tokens: p.tokens, - nameMap: p.nameMap, - valMap: p.valMap, - item: av.M, - } - return sub.getAttrPath(parts[1]) - } - return av -} - // resolveAttrName resolves a token to a real attribute name. func (p *exprParser) resolveAttrName(tok token) string { if tok.kind == tokNameRef { diff --git a/internal/services/dynamodb/expression_test.go b/internal/services/dynamodb/expression_test.go index 20b1020..ac7c354 100644 --- a/internal/services/dynamodb/expression_test.go +++ b/internal/services/dynamodb/expression_test.go @@ -11,8 +11,6 @@ import ( "github.com/stretchr/testify/require" ) -func boolPtr(b bool) *bool { return &b } - func TestEvaluateFilterExpression_Equal(t *testing.T) { item := Item{ "name": {S: strPtr("Alice")}, @@ -190,7 +188,7 @@ func TestApplyUpdateExpression_SetAndRemove(t *testing.T) { func TestDynamoDBProvider_FilterExpression(t *testing.T) { p := newTestDynamoDBProvider(t) - defer p.Shutdown(context.Background()) + defer func() { _ = p.Shutdown(context.Background()) }() doRequest(t, p, "CreateTable", `{ "TableName": "filter-test", @@ -214,7 +212,7 @@ func TestDynamoDBProvider_FilterExpression(t *testing.T) { func TestDynamoDBProvider_ConditionExpression(t *testing.T) { p := newTestDynamoDBProvider(t) - defer p.Shutdown(context.Background()) + defer func() { _ = p.Shutdown(context.Background()) }() doRequest(t, p, "CreateTable", `{ "TableName": "cond-test", @@ -238,7 +236,7 @@ func TestDynamoDBProvider_ConditionExpression(t *testing.T) { func TestDynamoDBProvider_UpdateItemRemove(t *testing.T) { p := newTestDynamoDBProvider(t) - defer p.Shutdown(context.Background()) + defer func() { _ = p.Shutdown(context.Background()) }() doRequest(t, p, "CreateTable", `{ "TableName": "remove-test", @@ -263,7 +261,7 @@ func TestDynamoDBProvider_UpdateItemRemove(t *testing.T) { func TestDynamoDBProvider_BatchGetItem(t *testing.T) { p := newTestDynamoDBProvider(t) - defer p.Shutdown(context.Background()) + defer func() { _ = p.Shutdown(context.Background()) }() doRequest(t, p, "CreateTable", `{ "TableName": "bget-test", @@ -289,7 +287,7 @@ func TestDynamoDBProvider_BatchGetItem(t *testing.T) { func TestDynamoDBProvider_TransactWriteItems(t *testing.T) { p := newTestDynamoDBProvider(t) - defer p.Shutdown(context.Background()) + defer func() { _ = p.Shutdown(context.Background()) }() doRequest(t, p, "CreateTable", `{ "TableName": "tx-test", @@ -313,7 +311,7 @@ func TestDynamoDBProvider_TransactWriteItems(t *testing.T) { func TestDynamoDBProvider_TTL(t *testing.T) { p := newTestDynamoDBProvider(t) - defer p.Shutdown(context.Background()) + defer func() { _ = p.Shutdown(context.Background()) }() doRequest(t, p, "CreateTable", `{ "TableName": "ttl-test", @@ -338,7 +336,7 @@ func TestDynamoDBProvider_TTL(t *testing.T) { func TestDynamoDBProvider_Tags(t *testing.T) { p := newTestDynamoDBProvider(t) - defer p.Shutdown(context.Background()) + defer func() { _ = p.Shutdown(context.Background()) }() doRequest(t, p, "CreateTable", `{ "TableName": "tag-test", @@ -375,7 +373,7 @@ func TestDynamoDBProvider_Tags(t *testing.T) { func TestDynamoDBProvider_GSIQuery(t *testing.T) { p := newTestDynamoDBProvider(t) - defer p.Shutdown(context.Background()) + defer func() { _ = p.Shutdown(context.Background()) }() // Create table with GSI. doRequest(t, p, "CreateTable", `{ @@ -414,7 +412,7 @@ func TestDynamoDBProvider_GSIQuery(t *testing.T) { func TestDynamoDBProvider_ProjectionExpression(t *testing.T) { p := newTestDynamoDBProvider(t) - defer p.Shutdown(context.Background()) + defer func() { _ = p.Shutdown(context.Background()) }() doRequest(t, p, "CreateTable", `{ "TableName": "proj-test", @@ -441,7 +439,7 @@ func TestDynamoDBProvider_ProjectionExpression(t *testing.T) { func TestDynamoDBProvider_UpdateTable(t *testing.T) { p := newTestDynamoDBProvider(t) - defer p.Shutdown(context.Background()) + defer func() { _ = p.Shutdown(context.Background()) }() doRequest(t, p, "CreateTable", `{ "TableName": "update-table-test", diff --git a/internal/services/dynamodb/provider_test.go b/internal/services/dynamodb/provider_test.go index b18439d..fb27ac7 100644 --- a/internal/services/dynamodb/provider_test.go +++ b/internal/services/dynamodb/provider_test.go @@ -35,7 +35,7 @@ func doRequest(t *testing.T, p *DynamoDBProvider, op string, body string) *plugi func TestDynamoDBProvider_CreateTable(t *testing.T) { p := newTestDynamoDBProvider(t) - defer p.Shutdown(context.Background()) + defer func() { _ = p.Shutdown(context.Background()) }() resp := doRequest(t, p, "CreateTable", `{ "TableName": "Users", @@ -55,7 +55,7 @@ func TestDynamoDBProvider_CreateTable(t *testing.T) { func TestDynamoDBProvider_PutAndGetItem(t *testing.T) { p := newTestDynamoDBProvider(t) - defer p.Shutdown(context.Background()) + defer func() { _ = p.Shutdown(context.Background()) }() // Create table. doRequest(t, p, "CreateTable", `{ @@ -92,7 +92,7 @@ func TestDynamoDBProvider_PutAndGetItem(t *testing.T) { func TestDynamoDBProvider_DeleteItem(t *testing.T) { p := newTestDynamoDBProvider(t) - defer p.Shutdown(context.Background()) + defer func() { _ = p.Shutdown(context.Background()) }() // Create table and put item. doRequest(t, p, "CreateTable", `{ @@ -127,7 +127,7 @@ func TestDynamoDBProvider_DeleteItem(t *testing.T) { func TestDynamoDBProvider_ListTables(t *testing.T) { p := newTestDynamoDBProvider(t) - defer p.Shutdown(context.Background()) + defer func() { _ = p.Shutdown(context.Background()) }() doRequest(t, p, "CreateTable", `{ "TableName": "Alpha", @@ -158,7 +158,7 @@ func TestDynamoDBProvider_ListTables(t *testing.T) { func TestDynamoDBProvider_Scan(t *testing.T) { p := newTestDynamoDBProvider(t) - defer p.Shutdown(context.Background()) + defer func() { _ = p.Shutdown(context.Background()) }() doRequest(t, p, "CreateTable", `{ "TableName": "Products", diff --git a/internal/services/dynamodb/store.go b/internal/services/dynamodb/store.go index cad1f9c..486cb4f 100644 --- a/internal/services/dynamodb/store.go +++ b/internal/services/dynamodb/store.go @@ -93,7 +93,6 @@ const itemPrefix = "_item/" const gsiPrefix = "_gsi/" const ttlPrefix = "_ttl/" const tagsPrefix = "_tags/" -const streamPrefix = "_stream/" // NewDynamoStore opens (or creates) a BadgerDB at dir and loads existing table metadata. func NewDynamoStore(dir string) (*DynamoStore, error) { diff --git a/internal/services/dynamodbstreams/provider.go b/internal/services/dynamodbstreams/provider.go index a2043b5..b915c4d 100644 --- a/internal/services/dynamodbstreams/provider.go +++ b/internal/services/dynamodbstreams/provider.go @@ -538,16 +538,6 @@ func (p *Provider) describeLimits(_ map[string]any) (*plugin.Response, error) { // ---- test helpers ---- -// ensureStream creates a test stream for internal use (used from tests). -func (p *Provider) ensureStream(arn, tableName string) (*StreamMeta, error) { - st, err := p.store.GetStreamByARN(arn) - if err == nil { - return st, nil - } - label := time.Now().Format("2006-01-01T15:04:05.000") - return p.store.CreateStream(arn, tableName, label, "NEW_AND_OLD_IMAGES") -} - // createStreamForTable is a helper exposed for test setup. func (p *Provider) createStreamForTable(tableName string) (*StreamMeta, error) { arn := shared.BuildARNWithAccount("dynamodb", "table", tableName+"/stream/"+time.Now().Format("2006-01-01T15:04:05.000"), shared.DefaultRegion, shared.DefaultAccountID) diff --git a/internal/services/dynamodbstreams/provider_test.go b/internal/services/dynamodbstreams/provider_test.go index 2c18064..e7d4adf 100644 --- a/internal/services/dynamodbstreams/provider_test.go +++ b/internal/services/dynamodbstreams/provider_test.go @@ -19,7 +19,7 @@ func newTestProvider(t *testing.T) *Provider { t.Helper() p := &Provider{} require.NoError(t, p.Init(plugin.PluginConfig{DataDir: t.TempDir()})) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/dynamodbstreams/store.go b/internal/services/dynamodbstreams/store.go index fb7b2db..51148ea 100644 --- a/internal/services/dynamodbstreams/store.go +++ b/internal/services/dynamodbstreams/store.go @@ -99,7 +99,7 @@ func newStreamBuffer() *StreamBuffer { // streamShardID returns the canonical default shard ID for a stream ARN. func streamShardID(streamARN string) string { - return fmt.Sprintf("shardId-00000000000000000000-00000001") + return "shardId-00000000000000000000-00000001" } // Store combines SQLite persistence with in-memory shard state. @@ -158,7 +158,7 @@ func (s *Store) rehydrateIndex() error { if err != nil { return err } - defer rows.Close() + defer func() { _ = rows.Close() }() for rows.Next() { var arn, table string if err := rows.Scan(&arn, &table); err != nil { @@ -225,7 +225,7 @@ func (s *Store) ListStreams(tableName string) ([]StreamMeta, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var streams []StreamMeta for rows.Next() { st, err := scanStream(rows) @@ -437,14 +437,14 @@ func (s *Store) AddTags(arn string, tags map[string]string) error { if err != nil { return err } - defer tx.Rollback() + defer func() { _ = tx.Rollback() }() stmt, err := tx.Prepare( `INSERT INTO stream_tags(stream_arn, tag_key, tag_value) VALUES(?,?,?) ON CONFLICT(stream_arn, tag_key) DO UPDATE SET tag_value = excluded.tag_value`) if err != nil { return err } - defer stmt.Close() + defer func() { _ = stmt.Close() }() for k, v := range tags { if _, err := stmt.Exec(arn, k, v); err != nil { return err @@ -477,7 +477,7 @@ func (s *Store) ListTags(arn string) (map[string]string, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() out := make(map[string]string) for rows.Next() { var k, v string diff --git a/internal/services/ebs/provider.go b/internal/services/ebs/provider.go index 9c79df2..795f7ba 100644 --- a/internal/services/ebs/provider.go +++ b/internal/services/ebs/provider.go @@ -172,7 +172,7 @@ func (p *Provider) putSnapshotBlock(snapshotID, blockIndexStr string, req *http. var blockIndex int32 if blockIndexStr != "" { var n int32 - fmt.Sscanf(blockIndexStr, "%d", &n) + _, _ = fmt.Sscanf(blockIndexStr, "%d", &n) blockIndex = n } @@ -217,7 +217,7 @@ func (p *Provider) getSnapshotBlock(snapshotID, blockIndexStr string) (*plugin.R var blockIndex int32 if blockIndexStr != "" { var n int32 - fmt.Sscanf(blockIndexStr, "%d", &n) + _, _ = fmt.Sscanf(blockIndexStr, "%d", &n) blockIndex = n } @@ -256,7 +256,7 @@ func (p *Provider) listSnapshotBlocks(snapshotID string, req *http.Request) (*pl var startIndex int32 if v := req.URL.Query().Get("startingBlockIndex"); v != "" { - fmt.Sscanf(v, "%d", &startIndex) + _, _ = fmt.Sscanf(v, "%d", &startIndex) } blocks, err := p.store.ListBlocks(snapshotID, startIndex) @@ -293,7 +293,7 @@ func (p *Provider) listChangedBlocks(secondSnapshotID string, req *http.Request) var startIndex int32 if v := req.URL.Query().Get("startingBlockIndex"); v != "" { - fmt.Sscanf(v, "%d", &startIndex) + _, _ = fmt.Sscanf(v, "%d", &startIndex) } blocks, err := p.store.ListChangedBlocks(firstSnapshotID, secondSnapshotID, startIndex) @@ -325,7 +325,7 @@ func (p *Provider) modifyVolume(req *http.Request) (*plugin.Response, error) { body, _ := io.ReadAll(req.Body) var params map[string]any if len(body) > 0 { - json.Unmarshal(body, ¶ms) + _ = json.Unmarshal(body, ¶ms) } else { params = map[string]any{} } @@ -399,7 +399,7 @@ func (p *Provider) copySnapshot(req *http.Request) (*plugin.Response, error) { body, _ := io.ReadAll(req.Body) var params map[string]any if len(body) > 0 { - json.Unmarshal(body, ¶ms) + _ = json.Unmarshal(body, ¶ms) } else { params = map[string]any{} } @@ -428,7 +428,7 @@ func (p *Provider) modifySnapshotAttribute(req *http.Request) (*plugin.Response, body, _ := io.ReadAll(req.Body) var params map[string]any if len(body) > 0 { - json.Unmarshal(body, ¶ms) + _ = json.Unmarshal(body, ¶ms) } else { params = map[string]any{} } @@ -454,7 +454,7 @@ func (p *Provider) enableSnapshotTierArchival(req *http.Request) (*plugin.Respon body, _ := io.ReadAll(req.Body) var params map[string]any if len(body) > 0 { - json.Unmarshal(body, ¶ms) + _ = json.Unmarshal(body, ¶ms) } else { params = map[string]any{} } @@ -481,7 +481,7 @@ func (p *Provider) restoreSnapshotTier(req *http.Request) (*plugin.Response, err body, _ := io.ReadAll(req.Body) var params map[string]any if len(body) > 0 { - json.Unmarshal(body, ¶ms) + _ = json.Unmarshal(body, ¶ms) } else { params = map[string]any{} } diff --git a/internal/services/ebs/provider_test.go b/internal/services/ebs/provider_test.go index 2f73a8d..8d31dd6 100644 --- a/internal/services/ebs/provider_test.go +++ b/internal/services/ebs/provider_test.go @@ -20,7 +20,7 @@ func newTestProvider(t *testing.T) *Provider { p := &Provider{} err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/ebs/store.go b/internal/services/ebs/store.go index 0f55a6d..46d488f 100644 --- a/internal/services/ebs/store.go +++ b/internal/services/ebs/store.go @@ -164,7 +164,7 @@ func (s *Store) ListBlocks(snapshotID string, startIndex int32) ([]SnapshotBlock if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var blocks []SnapshotBlock for rows.Next() { var b SnapshotBlock @@ -192,7 +192,7 @@ func (s *Store) ListChangedBlocks(firstSnapshotID, secondSnapshotID string, star if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var blocks []SnapshotBlock for rows.Next() { var b SnapshotBlock @@ -214,7 +214,7 @@ func (s *Store) ListSnapshots() ([]Snapshot, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var snaps []Snapshot for rows.Next() { snap, err := scanSnapshot(rows) @@ -247,7 +247,7 @@ func (s *Store) ListVolumeModifications(volumeID string) ([]VolumeModification, if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var mods []VolumeModification for rows.Next() { var m VolumeModification diff --git a/internal/services/ec2/provider_test.go b/internal/services/ec2/provider_test.go index 65c9163..c5206c0 100644 --- a/internal/services/ec2/provider_test.go +++ b/internal/services/ec2/provider_test.go @@ -23,7 +23,7 @@ func newTestEC2Provider(t *testing.T) *Provider { "db_path": filepath.Join(dir, "ec2.db"), }}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/ec2/store.go b/internal/services/ec2/store.go index aef078b..b861837 100644 --- a/internal/services/ec2/store.go +++ b/internal/services/ec2/store.go @@ -304,7 +304,7 @@ func (s *EC2Store) DescribeInstances(accountID string, ids []string) ([]Instance if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Instance for rows.Next() { var inst Instance @@ -362,7 +362,7 @@ func (s *EC2Store) DescribeVpcs(accountID string) ([]Vpc, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Vpc for rows.Next() { var v Vpc @@ -416,7 +416,7 @@ func (s *EC2Store) DescribeSubnets(accountID string) ([]Subnet, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Subnet for rows.Next() { var sub Subnet @@ -457,7 +457,7 @@ func (s *EC2Store) DescribeSecurityGroups(accountID string) ([]SecurityGroup, er if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []SecurityGroup for rows.Next() { var sg SecurityGroup @@ -493,7 +493,7 @@ func (s *EC2Store) GetTags(resourceID string) ([]Tag, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Tag for rows.Next() { var t Tag @@ -591,7 +591,7 @@ func (s *EC2Store) DescribeVolumes(accountID string, ids []string) ([]Volume, er if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Volume for rows.Next() { var v Volume @@ -751,7 +751,7 @@ func (s *EC2Store) DescribeSnapshots(accountID string, ids []string) ([]Snapshot if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Snapshot for rows.Next() { var snap Snapshot @@ -859,7 +859,7 @@ func (s *EC2Store) DescribeKeyPairs(accountID string, names []string) ([]KeyPair if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []KeyPair for rows.Next() { var kp KeyPair @@ -994,7 +994,7 @@ func (s *EC2Store) DescribeImages(accountID string, ids []string) ([]Image, erro if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Image for rows.Next() { var img Image @@ -1100,7 +1100,7 @@ func (s *EC2Store) DescribeRouteTables(accountID string, ids []string) ([]RouteT if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []RouteTable for rows.Next() { var rt RouteTable @@ -1130,7 +1130,7 @@ func (s *EC2Store) listRoutes(routeTableID string) ([]Route, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Route for rows.Next() { var r Route @@ -1223,7 +1223,7 @@ func (s *EC2Store) DescribeInternetGateways(accountID string, ids []string) ([]I if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []InternetGateway for rows.Next() { var igw InternetGateway @@ -1320,7 +1320,7 @@ func (s *EC2Store) DescribeNetworkACLs(accountID string, ids []string) ([]Networ if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []NetworkACL for rows.Next() { var acl NetworkACL @@ -1352,7 +1352,7 @@ func (s *EC2Store) listACLEntries(networkACLID string) ([]ACLEntry, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []ACLEntry for rows.Next() { var e ACLEntry diff --git a/internal/services/ecr/provider_test.go b/internal/services/ecr/provider_test.go index cff4561..c6d98ee 100644 --- a/internal/services/ecr/provider_test.go +++ b/internal/services/ecr/provider_test.go @@ -24,7 +24,7 @@ func newTestECRProvider(t *testing.T) *Provider { "db_path": filepath.Join(dir, "ecr.db"), }}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } @@ -37,7 +37,7 @@ func ecrRequest(t *testing.T, p *Provider, action string, body map[string]any) ( resp, err := p.HandleRequest(context.Background(), "", req) require.NoError(t, err) var result map[string]any - json.Unmarshal(resp.Body, &result) + _ = json.Unmarshal(resp.Body, &result) return resp.StatusCode, result } @@ -135,7 +135,7 @@ func TestLayerUpload(t *testing.T) { assert.Equal(t, 200, status) // CompleteLayerUpload - status, result = ecrRequest(t, p, "CompleteLayerUpload", map[string]any{ + status, _ = ecrRequest(t, p, "CompleteLayerUpload", map[string]any{ "repositoryName": "layer-repo", "uploadId": uploadID, "layerDigests": []string{"sha256:9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"}, diff --git a/internal/services/ecr/store.go b/internal/services/ecr/store.go index 0985f1a..bffca9e 100644 --- a/internal/services/ecr/store.go +++ b/internal/services/ecr/store.go @@ -177,7 +177,7 @@ func (s *ECRStore) DeleteRepository(accountID, name string) error { if n == 0 { return ErrRepositoryNotFound } - s.db().Exec(`DELETE FROM images WHERE repo_name=? AND account_id=?`, name, accountID) + _, _ = s.db().Exec(`DELETE FROM images WHERE repo_name=? AND account_id=?`, name, accountID) return nil } @@ -201,7 +201,7 @@ func (s *ECRStore) DescribeRepositories(accountID string, names []string) ([]Rep if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Repository for rows.Next() { var r Repository @@ -242,7 +242,7 @@ func (s *ECRStore) DescribeImages(accountID, repoName string) ([]Image, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Image for rows.Next() { var img Image @@ -294,9 +294,9 @@ func (s *ECRStore) BatchDeleteImage(accountID, repoName string, imageIDs []map[s digest := id["imageDigest"] tag := id["imageTag"] if digest != "" { - s.db().Exec(`DELETE FROM images WHERE repo_name=? AND account_id=? AND image_digest=?`, repoName, accountID, digest) + _, _ = s.db().Exec(`DELETE FROM images WHERE repo_name=? AND account_id=? AND image_digest=?`, repoName, accountID, digest) } else if tag != "" { - s.db().Exec(`DELETE FROM images WHERE repo_name=? AND account_id=? AND image_tag=?`, repoName, accountID, tag) + _, _ = s.db().Exec(`DELETE FROM images WHERE repo_name=? AND account_id=? AND image_tag=?`, repoName, accountID, tag) } } return nil @@ -311,7 +311,7 @@ func (s *ECRStore) ListImages(accountID, repoName string) ([]map[string]string, if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []map[string]string for rows.Next() { var digest, tag string @@ -331,7 +331,7 @@ func (s *ECRStore) ListImages(accountID, repoName string) ([]map[string]string, func (s *ECRStore) SetRepositoryPolicy(accountID, repoName, policyText string) error { // Verify repository exists. var exists int - s.db().QueryRow(`SELECT COUNT(*) FROM repositories WHERE name=? AND account_id=?`, repoName, accountID).Scan(&exists) + _ = s.db().QueryRow(`SELECT COUNT(*) FROM repositories WHERE name=? AND account_id=?`, repoName, accountID).Scan(&exists) if exists == 0 { return ErrRepositoryNotFound } @@ -347,7 +347,7 @@ func (s *ECRStore) SetRepositoryPolicy(accountID, repoName, policyText string) e func (s *ECRStore) GetRepositoryPolicy(accountID, repoName string) (string, error) { // Verify repository exists. var exists int - s.db().QueryRow(`SELECT COUNT(*) FROM repositories WHERE name=? AND account_id=?`, repoName, accountID).Scan(&exists) + _ = s.db().QueryRow(`SELECT COUNT(*) FROM repositories WHERE name=? AND account_id=?`, repoName, accountID).Scan(&exists) if exists == 0 { return "", ErrRepositoryNotFound } @@ -389,7 +389,7 @@ func (s *ECRStore) InitiateLayerUpload(accountID, repoName string) (string, erro func (s *ECRStore) UploadLayerPart(accountID, repoName, uploadID string, partFirst, partLast int64, blob []byte) error { // Verify upload exists. var exists int - s.db().QueryRow(`SELECT COUNT(*) FROM layers WHERE upload_id=? AND repo_name=? AND account_id=?`, uploadID, repoName, accountID).Scan(&exists) + _ = s.db().QueryRow(`SELECT COUNT(*) FROM layers WHERE upload_id=? AND repo_name=? AND account_id=?`, uploadID, repoName, accountID).Scan(&exists) if exists == 0 { return ErrLayerUploadNotFound } @@ -446,7 +446,7 @@ func (s *ECRStore) BatchCheckLayerAvailability(accountID, repoName string, diges s.db().QueryRow( `SELECT COUNT(*) FROM layers WHERE digest=? AND completed=1`, d, - ).Scan(&count) + ).Scan(&count) //nolint:errcheck availability := "UNAVAILABLE" if count > 0 { availability = "AVAILABLE" @@ -462,7 +462,7 @@ func (s *ECRStore) BatchCheckLayerAvailability(accountID, repoName string, diges // GetDownloadURLForLayer returns a stub download URL for a layer by digest. func (s *ECRStore) GetDownloadURLForLayer(accountID, repoName, digest string) (string, error) { var count int - s.db().QueryRow(`SELECT COUNT(*) FROM layers WHERE digest=? AND completed=1`, digest).Scan(&count) + _ = s.db().QueryRow(`SELECT COUNT(*) FROM layers WHERE digest=? AND completed=1`, digest).Scan(&count) if count == 0 { return "", ErrLayerUploadNotFound } @@ -474,7 +474,7 @@ func (s *ECRStore) GetDownloadURLForLayer(accountID, repoName, digest string) (s // PutLifecyclePolicy upserts a lifecycle policy for a repository. func (s *ECRStore) PutLifecyclePolicy(accountID, repoName, policyText string) error { var exists int - s.db().QueryRow(`SELECT COUNT(*) FROM repositories WHERE name=? AND account_id=?`, repoName, accountID).Scan(&exists) + _ = s.db().QueryRow(`SELECT COUNT(*) FROM repositories WHERE name=? AND account_id=?`, repoName, accountID).Scan(&exists) if exists == 0 { return ErrRepositoryNotFound } @@ -489,7 +489,7 @@ func (s *ECRStore) PutLifecyclePolicy(accountID, repoName, policyText string) er // GetLifecyclePolicy returns the lifecycle policy for a repository. func (s *ECRStore) GetLifecyclePolicy(accountID, repoName string) (string, error) { var exists int - s.db().QueryRow(`SELECT COUNT(*) FROM repositories WHERE name=? AND account_id=?`, repoName, accountID).Scan(&exists) + _ = s.db().QueryRow(`SELECT COUNT(*) FROM repositories WHERE name=? AND account_id=?`, repoName, accountID).Scan(&exists) if exists == 0 { return "", ErrRepositoryNotFound } @@ -510,7 +510,7 @@ func (s *ECRStore) GetLifecyclePolicy(accountID, repoName string) (string, error // DeleteLifecyclePolicy deletes the lifecycle policy for a repository. func (s *ECRStore) DeleteLifecyclePolicy(accountID, repoName string) error { var exists int - s.db().QueryRow(`SELECT COUNT(*) FROM repositories WHERE name=? AND account_id=?`, repoName, accountID).Scan(&exists) + _ = s.db().QueryRow(`SELECT COUNT(*) FROM repositories WHERE name=? AND account_id=?`, repoName, accountID).Scan(&exists) if exists == 0 { return ErrRepositoryNotFound } @@ -553,7 +553,7 @@ func (s *ECRStore) TagResource(repoARN string, tags []map[string]string) error { // UntagResource removes tags by key for a resource ARN. func (s *ECRStore) UntagResource(repoARN string, tagKeys []string) error { for _, key := range tagKeys { - s.db().Exec(`DELETE FROM repo_tags WHERE repo_arn=? AND tag_key=?`, repoARN, key) + _, _ = s.db().Exec(`DELETE FROM repo_tags WHERE repo_arn=? AND tag_key=?`, repoARN, key) } return nil } @@ -567,7 +567,7 @@ func (s *ECRStore) ListTagsForResource(repoARN string) ([]map[string]string, err if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []map[string]string for rows.Next() { var k, v string @@ -612,7 +612,7 @@ func (s *ECRStore) DescribeImageScanFindings(accountID, repoName, imageDigest st // PutImageScanningConfiguration updates the scan_on_push setting for a repository. func (s *ECRStore) PutImageScanningConfiguration(accountID, repoName string, scanOnPush bool) error { var exists int - s.db().QueryRow(`SELECT COUNT(*) FROM repositories WHERE name=? AND account_id=?`, repoName, accountID).Scan(&exists) + _ = s.db().QueryRow(`SELECT COUNT(*) FROM repositories WHERE name=? AND account_id=?`, repoName, accountID).Scan(&exists) if exists == 0 { return ErrRepositoryNotFound } @@ -639,12 +639,3 @@ func (s *ECRStore) GetImageDigestByTag(accountID, repoName, imageTag string) (st } return digest, err } - -// randToken returns a random hex token for auth. -func randToken(n int) (string, error) { - b := make([]byte, n) - if _, err := rand.Read(b); err != nil { - return "", err - } - return hex.EncodeToString(b), nil -} diff --git a/internal/services/ecs/provider.go b/internal/services/ecs/provider.go index d5afaa6..7813d15 100644 --- a/internal/services/ecs/provider.go +++ b/internal/services/ecs/provider.go @@ -289,7 +289,7 @@ func (p *Provider) handleRegisterTaskDefinition(params map[string]any) (*plugin. if family == "" { return ecsError("MissingParameter", "family is required", http.StatusBadRequest), nil } - containerDefsRaw, _ := params["containerDefinitions"] + containerDefsRaw := params["containerDefinitions"] containerDefs := "[]" if containerDefsRaw != nil { b, _ := json.Marshal(containerDefsRaw) @@ -719,7 +719,7 @@ func clusterToMap(c *Cluster) map[string]any { func taskDefToMap(td *TaskDefinition) map[string]any { var containerDefs any - json.Unmarshal([]byte(td.ContainerDefs), &containerDefs) + _ = json.Unmarshal([]byte(td.ContainerDefs), &containerDefs) return map[string]any{ "taskDefinitionArn": td.ARN, "family": td.Family, diff --git a/internal/services/ecs/provider_test.go b/internal/services/ecs/provider_test.go index 19d3ae9..dadbb1a 100644 --- a/internal/services/ecs/provider_test.go +++ b/internal/services/ecs/provider_test.go @@ -24,7 +24,7 @@ func newTestECSProvider(t *testing.T) *Provider { "db_path": filepath.Join(dir, "ecs.db"), }}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } @@ -37,7 +37,7 @@ func ecsRequest(t *testing.T, p *Provider, action string, body map[string]any) m resp, err := p.HandleRequest(context.Background(), "", req) require.NoError(t, err) var result map[string]any - json.Unmarshal(resp.Body, &result) + _ = json.Unmarshal(resp.Body, &result) return result } diff --git a/internal/services/ecs/store.go b/internal/services/ecs/store.go index 129734a..ea3264a 100644 --- a/internal/services/ecs/store.go +++ b/internal/services/ecs/store.go @@ -310,7 +310,7 @@ func (s *ECSStore) ListClusters(accountID string) ([]string, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var arns []string for rows.Next() { var arn string @@ -340,7 +340,7 @@ func (s *ECSStore) DescribeClusters(accountID string, arns []string) ([]Cluster, if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Cluster for rows.Next() { var c Cluster @@ -372,7 +372,7 @@ func (s *ECSStore) DeleteCluster(accountID, clusterARN string) error { func (s *ECSStore) RegisterTaskDefinition(accountID, family, containerDefs string) (*TaskDefinition, error) { var maxRev int row := s.db().QueryRow(`SELECT COALESCE(MAX(revision),0) FROM task_definitions WHERE family=? AND account_id=?`, family, accountID) - row.Scan(&maxRev) + _ = row.Scan(&maxRev) revision := maxRev + 1 arn := taskDefARN(accountID, family, revision) _, err := s.db().Exec( @@ -405,11 +405,11 @@ func (s *ECSStore) ListTaskDefinitions(accountID string) ([]string, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var arns []string for rows.Next() { var arn string - rows.Scan(&arn) + _ = rows.Scan(&arn) arns = append(arns, arn) } return arns, rows.Err() @@ -467,7 +467,7 @@ func (s *ECSStore) DescribeTasks(accountID string, arns []string) ([]Task, error if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Task for rows.Next() { var t Task @@ -552,11 +552,11 @@ func (s *ECSStore) ListServices(accountID, clusterArn string) ([]string, error) if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var arns []string for rows.Next() { var arn string - rows.Scan(&arn) + _ = rows.Scan(&arn) arns = append(arns, arn) } return arns, rows.Err() @@ -621,11 +621,11 @@ func (s *ECSStore) DescribeServices(accountID string, arns []string) ([]Service, if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Service for rows.Next() { var svc Service - rows.Scan(&svc.ARN, &svc.Name, &svc.ClusterARN, &svc.TaskDefARN, &svc.DesiredCount, &svc.RunningCount, &svc.AccountID, &svc.Status) + _ = rows.Scan(&svc.ARN, &svc.Name, &svc.ClusterARN, &svc.TaskDefARN, &svc.DesiredCount, &svc.RunningCount, &svc.AccountID, &svc.Status) out = append(out, svc) } return out, rows.Err() @@ -670,7 +670,7 @@ func (s *ECSStore) DescribeCapacityProviders(accountID string, names []string) ( if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []CapacityProvider for rows.Next() { var cp CapacityProvider @@ -737,11 +737,11 @@ func (s *ECSStore) ListContainerInstances(accountID, clusterARN, status string) if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var arns []string for rows.Next() { var arn string - rows.Scan(&arn) + _ = rows.Scan(&arn) arns = append(arns, arn) } return arns, rows.Err() @@ -765,7 +765,7 @@ func (s *ECSStore) DescribeContainerInstances(accountID string, arns []string) ( if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []ContainerInstance for rows.Next() { var ci ContainerInstance @@ -795,7 +795,7 @@ func (s *ECSStore) DeregisterContainerInstance(accountID, arn string, force bool func (s *ECSStore) UpdateContainerInstancesState(accountID string, arns []string, status string) error { for _, arn := range arns { - s.db().Exec(`UPDATE container_instances SET status=? WHERE container_instance_arn=? AND account_id=?`, status, arn, accountID) + _, _ = s.db().Exec(`UPDATE container_instances SET status=? WHERE container_instance_arn=? AND account_id=?`, status, arn, accountID) } return nil } @@ -817,7 +817,7 @@ func (s *ECSStore) PutAttributes(accountID, clusterARN string, attrs []ECSAttrib func (s *ECSStore) DeleteAttributes(accountID, clusterARN string, attrs []ECSAttribute) error { for _, a := range attrs { - s.db().Exec( + _, _ = s.db().Exec( `DELETE FROM ecs_attributes WHERE cluster_arn=? AND target_type=? AND target_id=? AND name=? AND account_id=?`, clusterARN, a.TargetType, a.TargetID, a.Name, accountID, ) @@ -844,11 +844,11 @@ func (s *ECSStore) ListAttributes(accountID, clusterARN, targetType, attrName, a if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []ECSAttribute for rows.Next() { var a ECSAttribute - rows.Scan(&a.ClusterARN, &a.TargetType, &a.TargetID, &a.Name, &a.Value, &a.AccountID) + _ = rows.Scan(&a.ClusterARN, &a.TargetType, &a.TargetID, &a.Name, &a.Value, &a.AccountID) out = append(out, a) } return out, rows.Err() @@ -910,7 +910,7 @@ func (s *ECSStore) ListScalableTargets(accountID, serviceARN, dimension string) if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []ServiceScalableTarget for rows.Next() { var t ServiceScalableTarget @@ -954,7 +954,7 @@ func (s *ECSStore) PutServiceScalingPolicy(accountID, serviceARN, policyName, di policyName, serviceARN, dimension, accountID, ) var createdAt string - row.Scan(&arn, &createdAt) + _ = row.Scan(&arn, &createdAt) now, _ = time.Parse(time.RFC3339, createdAt) } return &ServiceScalingPolicy{ @@ -996,7 +996,7 @@ func (s *ECSStore) ListServiceScalingPolicies(accountID, serviceARN string) ([]S if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []ServiceScalingPolicy for rows.Next() { var p ServiceScalingPolicy @@ -1108,7 +1108,7 @@ func (s *ECSStore) ListTaskSets(accountID, serviceARN string) ([]TaskSet, error) if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []TaskSet for rows.Next() { var ts TaskSet @@ -1160,7 +1160,7 @@ func (s *ECSStore) ListAccountSettings(accountID, name, principal string) ([]Acc if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []AccountSetting for rows.Next() { var a AccountSetting diff --git a/internal/services/efs/provider.go b/internal/services/efs/provider.go index af265df..09c2ebc 100644 --- a/internal/services/efs/provider.go +++ b/internal/services/efs/provider.go @@ -59,7 +59,7 @@ func (p *Provider) HandleRequest(_ context.Context, op string, req *http.Request body, _ := io.ReadAll(req.Body) var bodyMap map[string]any if len(body) > 0 { - json.Unmarshal(body, &bodyMap) + _ = json.Unmarshal(body, &bodyMap) } if bodyMap == nil { bodyMap = map[string]any{} @@ -291,13 +291,13 @@ func apToDesc(ap *accessPointRow, tags map[string]string) map[string]any { var posixUser any if ap.PosixUser != "" { var pu map[string]any - json.Unmarshal([]byte(ap.PosixUser), &pu) + _ = json.Unmarshal([]byte(ap.PosixUser), &pu) posixUser = pu } var rootDir any if ap.RootDirectory != "" { var rd map[string]any - json.Unmarshal([]byte(ap.RootDirectory), &rd) + _ = json.Unmarshal([]byte(ap.RootDirectory), &rd) rootDir = rd } return map[string]any{ @@ -358,7 +358,7 @@ func (p *Provider) createFileSystem(body map[string]any) (*plugin.Response, erro // Handle tags if tagsRaw, ok := body["Tags"].([]any); ok { tags := parseTagList(tagsRaw) - p.store.TagResource(fsID, tags) + p.store.TagResource(fsID, tags) //nolint:errcheck } tags, _ := p.store.ListTags(fsID) @@ -485,7 +485,7 @@ func (p *Provider) describeLifecycleConfiguration(fsID string) (*plugin.Response } var policies []any if fs.LifecycleConfig != "" { - json.Unmarshal([]byte(fs.LifecycleConfig), &policies) + _ = json.Unmarshal([]byte(fs.LifecycleConfig), &policies) } if policies == nil { policies = []any{} @@ -631,7 +631,7 @@ func (p *Provider) createAccessPoint(body map[string]any) (*plugin.Response, err } if tagsRaw, ok := body["Tags"].([]any); ok { tags := parseTagList(tagsRaw) - p.store.TagResource(apID, tags) + p.store.TagResource(apID, tags) //nolint:errcheck } tags, _ := p.store.ListTags(apID) return shared.JSONResponse(http.StatusOK, apToDesc(r, tags)) diff --git a/internal/services/efs/provider_test.go b/internal/services/efs/provider_test.go index d4f3432..f8c8b06 100644 --- a/internal/services/efs/provider_test.go +++ b/internal/services/efs/provider_test.go @@ -20,7 +20,7 @@ func newTestProvider(t *testing.T) *Provider { p := &Provider{} err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/efs/store.go b/internal/services/efs/store.go index 028844b..c92075d 100644 --- a/internal/services/efs/store.go +++ b/internal/services/efs/store.go @@ -149,7 +149,7 @@ func (s *Store) ListFileSystems(accountID string) ([]*fileSystemRow, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []*fileSystemRow for rows.Next() { r, err := scanFileSystem(rows) @@ -294,7 +294,7 @@ func (s *Store) ListMountTargetsByFS(fsID string) ([]*mountTargetRow, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() return collectMountTargets(rows) } @@ -305,7 +305,7 @@ func (s *Store) ListAllMountTargets(accountID string) ([]*mountTargetRow, error) if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() return collectMountTargets(rows) } @@ -362,7 +362,7 @@ func scanMountTarget(s interface{ Scan(...any) error }) (*mountTargetRow, error) } return nil, err } - json.Unmarshal([]byte(sgJSON), &r.SecurityGroups) + _ = json.Unmarshal([]byte(sgJSON), &r.SecurityGroups) r.CreatedAt, _ = time.Parse("2006-01-02T15:04:05Z07:00", createdStr) if r.CreatedAt.IsZero() { r.CreatedAt = time.Now() @@ -415,7 +415,7 @@ func (s *Store) ListAccessPoints(accountID, fsID string) ([]*accessPointRow, err if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []*accessPointRow for rows.Next() { r, err := scanAccessPoint(rows) @@ -477,7 +477,7 @@ func (s *Store) ListTags(resourceID string) (map[string]string, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() out := map[string]string{} for rows.Next() { var k, v string diff --git a/internal/services/eks/provider.go b/internal/services/eks/provider.go index a5fcdb3..65d8faf 100644 --- a/internal/services/eks/provider.go +++ b/internal/services/eks/provider.go @@ -474,7 +474,7 @@ func (p *Provider) createCluster(params map[string]any) (*plugin.Response, error if rawTags, ok := params["tags"].(map[string]any); ok { tags := toStringMap(rawTags) - p.store.tags.AddTags(c.ARN, tags) + _ = p.store.tags.AddTags(c.ARN, tags) } return shared.JSONResponse(http.StatusOK, map[string]any{"cluster": clusterToMap(c)}) @@ -511,7 +511,7 @@ func (p *Provider) deleteCluster(name string) (*plugin.Response, error) { if err != nil { return shared.JSONError("ResourceNotFoundException", "cluster not found", http.StatusNotFound), nil } - p.store.tags.DeleteAllTags(c.ARN) + _ = p.store.tags.DeleteAllTags(c.ARN) if err := p.store.DeleteCluster(name); err != nil { return shared.JSONError("ResourceNotFoundException", "cluster not found", http.StatusNotFound), nil } diff --git a/internal/services/eks/provider_test.go b/internal/services/eks/provider_test.go index 781eb9d..f44aca2 100644 --- a/internal/services/eks/provider_test.go +++ b/internal/services/eks/provider_test.go @@ -20,7 +20,7 @@ func newTestProvider(t *testing.T) *Provider { p := &Provider{} err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/eks/store.go b/internal/services/eks/store.go index 3601740..8446c23 100644 --- a/internal/services/eks/store.go +++ b/internal/services/eks/store.go @@ -223,7 +223,7 @@ func (s *Store) ListClusters() ([]Cluster, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Cluster for rows.Next() { c, err := scanCluster(rows) @@ -313,7 +313,7 @@ func (s *Store) ListNodegroups(clusterName string) ([]Nodegroup, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Nodegroup for rows.Next() { ng, err := scanNodegroup(rows) @@ -390,7 +390,7 @@ func (s *Store) ListFargateProfiles(clusterName string) ([]FargateProfile, error if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []FargateProfile for rows.Next() { fp, err := scanFargateProfile(rows) @@ -452,7 +452,7 @@ func (s *Store) ListAddons(clusterName string) ([]Addon, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Addon for rows.Next() { a, err := scanAddon(rows) @@ -528,7 +528,7 @@ func (s *Store) ListAccessEntries(clusterName string) ([]AccessEntry, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []AccessEntry for rows.Next() { ae, err := scanAccessEntry(rows) @@ -604,7 +604,7 @@ func (s *Store) ListPodIdentityAssociations(clusterName string) ([]PodIdentityAs if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []PodIdentityAssociation for rows.Next() { pa, err := scanPodIdentity(rows) diff --git a/internal/services/elasticache/provider_test.go b/internal/services/elasticache/provider_test.go index c6925e5..a992c87 100644 --- a/internal/services/elasticache/provider_test.go +++ b/internal/services/elasticache/provider_test.go @@ -19,7 +19,7 @@ func newTestProvider(t *testing.T) *Provider { t.Helper() p := &Provider{} require.NoError(t, p.Init(plugin.PluginConfig{DataDir: t.TempDir()})) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/elasticache/store.go b/internal/services/elasticache/store.go index b2655fc..1a2c156 100644 --- a/internal/services/elasticache/store.go +++ b/internal/services/elasticache/store.go @@ -250,7 +250,7 @@ func (s *Store) ListCacheClusters(ids []string) ([]CacheCluster, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []CacheCluster for rows.Next() { c, err := scanCacheCluster(rows) @@ -333,7 +333,7 @@ func (s *Store) ListReplicationGroups(ids []string) ([]ReplicationGroup, error) if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []ReplicationGroup for rows.Next() { rg, err := scanReplicationGroup(rows) @@ -406,7 +406,7 @@ func (s *Store) ListParamGroups(names []string) ([]ParamGroup, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []ParamGroup for rows.Next() { pg, err := scanParamGroup(rows) @@ -467,7 +467,7 @@ func (s *Store) ListSubnetGroups(names []string) ([]SubnetGroup, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []SubnetGroup for rows.Next() { sg, err := scanSubnetGroup(rows) @@ -543,7 +543,7 @@ func (s *Store) ListUsers(ids []string) ([]User, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []User for rows.Next() { u, err := scanUser(rows) @@ -616,7 +616,7 @@ func (s *Store) ListUserGroups(ids []string) ([]UserGroup, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []UserGroup for rows.Next() { ug, err := scanUserGroup(rows) @@ -698,7 +698,7 @@ func (s *Store) ListSnapshots(clusterID, replGroupID string) ([]Snapshot, error) if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Snapshot for rows.Next() { sn, err := scanSnapshot(rows) @@ -761,7 +761,7 @@ func (s *Store) ListServerlessCaches(names []string) ([]ServerlessCache, error) if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []ServerlessCache for rows.Next() { sc, err := scanServerlessCache(rows) diff --git a/internal/services/elasticbeanstalk/provider_test.go b/internal/services/elasticbeanstalk/provider_test.go index d83198f..a929147 100644 --- a/internal/services/elasticbeanstalk/provider_test.go +++ b/internal/services/elasticbeanstalk/provider_test.go @@ -19,7 +19,7 @@ func newTestProvider(t *testing.T) *Provider { t.Helper() p := &Provider{} require.NoError(t, p.Init(plugin.PluginConfig{DataDir: t.TempDir()})) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/elasticbeanstalk/store.go b/internal/services/elasticbeanstalk/store.go index 1efe1c2..89fd92b 100644 --- a/internal/services/elasticbeanstalk/store.go +++ b/internal/services/elasticbeanstalk/store.go @@ -177,7 +177,7 @@ func (s *Store) ListApplications(names []string) ([]Application, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var apps []Application for rows.Next() { a, err := scanApplication(rows) @@ -284,7 +284,7 @@ func (s *Store) ListAppVersions(appName string, labels []string) ([]AppVersion, if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var versions []AppVersion for rows.Next() { v, err := scanAppVersion(rows) @@ -404,7 +404,7 @@ func (s *Store) ListEnvironments(appName string, envNames []string, envIDs []str if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var envs []Environment for rows.Next() { e, err := scanEnvironment(rows) @@ -479,7 +479,7 @@ func (s *Store) ListConfigTemplates(appName string) ([]ConfigTemplate, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var templates []ConfigTemplate for rows.Next() { t, err := scanConfigTemplate(rows) diff --git a/internal/services/elasticloadbalancingv2/provider_test.go b/internal/services/elasticloadbalancingv2/provider_test.go index 66bf84a..1a03aea 100644 --- a/internal/services/elasticloadbalancingv2/provider_test.go +++ b/internal/services/elasticloadbalancingv2/provider_test.go @@ -19,7 +19,7 @@ func newTestProvider(t *testing.T) *Provider { t.Helper() p := &Provider{} require.NoError(t, p.Init(plugin.PluginConfig{DataDir: t.TempDir()})) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/elasticloadbalancingv2/store.go b/internal/services/elasticloadbalancingv2/store.go index e62acf0..016f869 100644 --- a/internal/services/elasticloadbalancingv2/store.go +++ b/internal/services/elasticloadbalancingv2/store.go @@ -198,7 +198,7 @@ func (s *Store) ListLoadBalancers(arns []string) ([]LoadBalancer, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var lbs []LoadBalancer for rows.Next() { lb, err := scanLoadBalancer(rows) @@ -300,7 +300,7 @@ func (s *Store) ListTargetGroups(arns []string) ([]TargetGroup, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var tgs []TargetGroup for rows.Next() { tg, err := scanTargetGroup(rows) @@ -364,7 +364,7 @@ func (s *Store) ListListeners(lbARN string) ([]Listener, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var listeners []Listener for rows.Next() { l, err := scanListener(rows) @@ -389,7 +389,7 @@ func (s *Store) ListListenersByARNs(arns []string) ([]Listener, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var listeners []Listener for rows.Next() { l, err := scanListener(rows) @@ -511,7 +511,7 @@ func (s *Store) ListRules(listenerARN string) ([]Rule, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var rules []Rule for rows.Next() { r, err := scanRule(rows) @@ -533,7 +533,7 @@ func (s *Store) ListRulesByARNs(arns []string) ([]Rule, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var rules []Rule for rows.Next() { r, err := scanRule(rows) @@ -609,7 +609,7 @@ func (s *Store) ListTargets(tgARN string) ([]Target, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var targets []Target for rows.Next() { var t Target diff --git a/internal/services/elasticsearchservice/provider.go b/internal/services/elasticsearchservice/provider.go index d92e75c..4d2ea4d 100644 --- a/internal/services/elasticsearchservice/provider.go +++ b/internal/services/elasticsearchservice/provider.go @@ -229,7 +229,7 @@ func (p *Provider) createDomain(params map[string]any) (*plugin.Response, error) } if rawTags, ok := params["TagList"].([]any); ok { - p.store.tags.AddTags(d.ARN, parseTags(rawTags)) + _ = p.store.tags.AddTags(d.ARN, parseTags(rawTags)) } return shared.JSONResponse(http.StatusOK, map[string]any{ @@ -245,7 +245,7 @@ func (p *Provider) deleteDomain(name string) (*plugin.Response, error) { if err != nil { return shared.JSONError("ResourceNotFoundException", "domain not found", http.StatusNotFound), nil } - p.store.tags.DeleteAllTags(d.ARN) + _ = p.store.tags.DeleteAllTags(d.ARN) if err := p.store.DeleteDomain(name); err != nil { return shared.JSONError("ResourceNotFoundException", "domain not found", http.StatusNotFound), nil } @@ -314,7 +314,7 @@ func (p *Provider) updateDomainConfig(name string, params map[string]any) (*plug // Merge new config into existing var existing map[string]any - json.Unmarshal([]byte(d.Config), &existing) + _ = json.Unmarshal([]byte(d.Config), &existing) if existing == nil { existing = map[string]any{} } @@ -538,7 +538,7 @@ func domainToStatus(d *Domain) map[string]any { func domainToConfig(d *Domain) map[string]any { var cfg map[string]any - json.Unmarshal([]byte(d.Config), &cfg) + _ = json.Unmarshal([]byte(d.Config), &cfg) if cfg == nil { cfg = map[string]any{} } diff --git a/internal/services/elasticsearchservice/provider_test.go b/internal/services/elasticsearchservice/provider_test.go index 0c3ae87..08a6817 100644 --- a/internal/services/elasticsearchservice/provider_test.go +++ b/internal/services/elasticsearchservice/provider_test.go @@ -20,7 +20,7 @@ func newTestProvider(t *testing.T) *Provider { p := &Provider{} err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } @@ -148,7 +148,7 @@ func TestTags(t *testing.T) { require.NoError(t, err) assert.Equal(t, 200, listResp.StatusCode) var listBody map[string]any - json.Unmarshal(listResp.Body, &listBody) + _ = json.Unmarshal(listResp.Body, &listBody) tagList := listBody["TagList"].([]any) assert.Len(t, tagList, 2) @@ -161,7 +161,7 @@ func TestTags(t *testing.T) { req2 := httptest.NewRequest("GET", "/2015-01-01/tags?arn="+arn, nil) listResp2, _ := p.HandleRequest(context.Background(), "ListTags", req2) var listBody2 map[string]any - json.Unmarshal(listResp2.Body, &listBody2) + _ = json.Unmarshal(listResp2.Body, &listBody2) assert.Len(t, listBody2["TagList"].([]any), 1) } diff --git a/internal/services/elasticsearchservice/store.go b/internal/services/elasticsearchservice/store.go index b31b5eb..774d5b6 100644 --- a/internal/services/elasticsearchservice/store.go +++ b/internal/services/elasticsearchservice/store.go @@ -100,7 +100,7 @@ func (s *Store) ListDomains() ([]Domain, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var domains []Domain for rows.Next() { d, err := scanDomain(rows) diff --git a/internal/services/emr/provider.go b/internal/services/emr/provider.go index aae5ad2..5f9349a 100644 --- a/internal/services/emr/provider.go +++ b/internal/services/emr/provider.go @@ -303,7 +303,8 @@ func (p *Provider) runJobFlow(params map[string]any) (*plugin.Response, error) { // Handle tags if rawTags, ok := params["Tags"].([]any); ok { - p.store.tags.AddTags(arn, parseTags(rawTags)) + //nolint:errcheck + _ = p.store.tags.AddTags(arn, parseTags(rawTags)) } return shared.JSONResponse(http.StatusOK, map[string]any{ @@ -812,7 +813,7 @@ func clusterToJobFlowMap(c *Cluster, tags map[string]string) map[string]any { func stepToMap(st *Step) map[string]any { var config any - json.Unmarshal([]byte(st.Config), &config) + _ = json.Unmarshal([]byte(st.Config), &config) return map[string]any{ "Id": st.ID, "Name": st.Name, diff --git a/internal/services/emr/provider_test.go b/internal/services/emr/provider_test.go index 9fdf178..ee22ee9 100644 --- a/internal/services/emr/provider_test.go +++ b/internal/services/emr/provider_test.go @@ -20,7 +20,7 @@ func newTestProvider(t *testing.T) *Provider { t.Helper() p := &Provider{} require.NoError(t, p.Init(plugin.PluginConfig{DataDir: t.TempDir()})) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/emr/store.go b/internal/services/emr/store.go index 17e2427..27240c1 100644 --- a/internal/services/emr/store.go +++ b/internal/services/emr/store.go @@ -158,7 +158,7 @@ func (s *Store) ListClusters(statusFilter string) ([]Cluster, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var clusters []Cluster for rows.Next() { c, err := scanCluster(rows) @@ -214,7 +214,7 @@ func (s *Store) ListSteps(clusterID, statusFilter string) ([]Step, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var steps []Step for rows.Next() { st, err := scanStep(rows) @@ -289,7 +289,7 @@ func (s *Store) ListSecurityConfigs() ([]SecurityConfig, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var configs []SecurityConfig for rows.Next() { var sc SecurityConfig @@ -328,7 +328,7 @@ func (s *Store) ListStudios() ([]Studio, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var studios []Studio for rows.Next() { st, err := scanStudio(rows) diff --git a/internal/services/eventbridge/provider_test.go b/internal/services/eventbridge/provider_test.go index e690534..1af8502 100644 --- a/internal/services/eventbridge/provider_test.go +++ b/internal/services/eventbridge/provider_test.go @@ -19,7 +19,7 @@ func newTestProvider(t *testing.T) *Provider { t.Helper() p := &Provider{} require.NoError(t, p.Init(plugin.PluginConfig{DataDir: t.TempDir()})) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/eventbridge/store.go b/internal/services/eventbridge/store.go index ce9fb04..674b78f 100644 --- a/internal/services/eventbridge/store.go +++ b/internal/services/eventbridge/store.go @@ -178,7 +178,7 @@ func (s *EBStore) ListEventBuses(accountID string) ([]EventBus, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var buses []EventBus for rows.Next() { var b EventBus @@ -227,7 +227,7 @@ func (s *EBStore) ListRules(busName, accountID string) ([]Rule, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() return scanRules(rows) } @@ -293,7 +293,7 @@ func (s *EBStore) ListTargetsByRule(ruleName, busName, accountID string) ([]Targ if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var targets []Target for rows.Next() { var t Target @@ -391,7 +391,7 @@ func (s *EBStore) ListArchives(namePrefix, eventSourceARN, accountID string) ([] if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var archives []Archive for rows.Next() { var a Archive @@ -487,7 +487,7 @@ func (s *EBStore) ListReplays(namePrefix, eventSourceARN, accountID string) ([]R if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var replays []Replay for rows.Next() { var r Replay diff --git a/internal/services/firehose/provider.go b/internal/services/firehose/provider.go index b197d7c..9d33d01 100644 --- a/internal/services/firehose/provider.go +++ b/internal/services/firehose/provider.go @@ -201,7 +201,7 @@ func (p *Provider) createDeliveryStream(params map[string]any) (*plugin.Response // Handle tags if provided if rawTags, ok := params["Tags"].([]any); ok { tags := parseTags(rawTags) - p.store.tags.AddTags(st.ARN, tags) + _ = p.store.tags.AddTags(st.ARN, tags) } return shared.JSONResponse(http.StatusOK, map[string]any{"DeliveryStreamARN": st.ARN}) } @@ -215,7 +215,7 @@ func (p *Provider) deleteDeliveryStream(params map[string]any) (*plugin.Response if err != nil { return shared.JSONError("ResourceNotFoundException", "stream not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(st.ARN) + _ = p.store.tags.DeleteAllTags(st.ARN) if err := p.store.DeleteStream(name); err != nil { return shared.JSONError("ResourceNotFoundException", "stream not found", http.StatusBadRequest), nil } @@ -372,7 +372,7 @@ func (p *Provider) stopEncryption(params map[string]any) (*plugin.Response, erro func streamToMap(st *DeliveryStream) map[string]any { var dest any - json.Unmarshal([]byte(st.Dest), &dest) + _ = json.Unmarshal([]byte(st.Dest), &dest) return map[string]any{ "DeliveryStreamName": st.Name, "DeliveryStreamARN": st.ARN, diff --git a/internal/services/firehose/provider_test.go b/internal/services/firehose/provider_test.go index 3838f1d..c94ba68 100644 --- a/internal/services/firehose/provider_test.go +++ b/internal/services/firehose/provider_test.go @@ -19,7 +19,7 @@ func newTestProvider(t *testing.T) *Provider { t.Helper() p := &Provider{} require.NoError(t, p.Init(plugin.PluginConfig{DataDir: t.TempDir()})) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/firehose/store.go b/internal/services/firehose/store.go index 341efda..831051d 100644 --- a/internal/services/firehose/store.go +++ b/internal/services/firehose/store.go @@ -136,7 +136,7 @@ func (s *Store) ListStreams(streamType string) ([]DeliveryStream, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var streams []DeliveryStream for rows.Next() { st, err := scanStream(rows) @@ -224,7 +224,7 @@ func (s *Store) GetKinesisSources(streamName string) ([]KinesisSource, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []KinesisSource for rows.Next() { var ks KinesisSource diff --git a/internal/services/fis/provider.go b/internal/services/fis/provider.go index 61d158b..fc9b974 100644 --- a/internal/services/fis/provider.go +++ b/internal/services/fis/provider.go @@ -300,7 +300,7 @@ func (p *Provider) createExperimentTemplate(params map[string]any) (*plugin.Resp if rawTags, ok := params["tags"].(map[string]any); ok { tags := toStringMap(rawTags) - p.store.tags.AddTags(arn, tags) + _ = p.store.tags.AddTags(arn, tags) //nolint:errcheck } stored, err := p.store.GetExperimentTemplate(id) @@ -367,7 +367,7 @@ func (p *Provider) deleteExperimentTemplate(id string) (*plugin.Response, error) if err != nil { return shared.JSONError("ResourceNotFoundException", "experiment template not found", http.StatusNotFound), nil } - p.store.tags.DeleteAllTags(t.ARN) + _ = p.store.tags.DeleteAllTags(t.ARN) //nolint:errcheck if err := p.store.DeleteExperimentTemplate(id); err != nil { return shared.JSONError("ResourceNotFoundException", "experiment template not found", http.StatusNotFound), nil } @@ -408,7 +408,7 @@ func (p *Provider) startExperiment(params map[string]any) (*plugin.Response, err if rawTags, ok := params["tags"].(map[string]any); ok { tags := toStringMap(rawTags) - p.store.tags.AddTags(arn, tags) + _ = p.store.tags.AddTags(arn, tags) //nolint:errcheck } stored, err := p.store.GetExperiment(id) @@ -563,10 +563,10 @@ func templateToMap(t *ExperimentTemplate, tags map[string]string) map[string]any tags = map[string]string{} } var actions, targets, stopConditions, logConfig any - json.Unmarshal([]byte(t.Actions), &actions) //nolint:errcheck - json.Unmarshal([]byte(t.Targets), &targets) //nolint:errcheck - json.Unmarshal([]byte(t.StopConditions), &stopConditions) //nolint:errcheck - json.Unmarshal([]byte(t.LogConfig), &logConfig) //nolint:errcheck + _ = json.Unmarshal([]byte(t.Actions), &actions) //nolint:errcheck + _ = json.Unmarshal([]byte(t.Targets), &targets) //nolint:errcheck + _ = json.Unmarshal([]byte(t.StopConditions), &stopConditions) //nolint:errcheck + _ = json.Unmarshal([]byte(t.LogConfig), &logConfig) //nolint:errcheck return map[string]any{ "id": t.ID, "arn": t.ARN, @@ -601,8 +601,8 @@ func experimentToMap(e *Experiment, tags map[string]string) map[string]any { tags = map[string]string{} } var actions, targets any - json.Unmarshal([]byte(e.Actions), &actions) //nolint:errcheck - json.Unmarshal([]byte(e.Targets), &targets) //nolint:errcheck + _ = json.Unmarshal([]byte(e.Actions), &actions) //nolint:errcheck + _ = json.Unmarshal([]byte(e.Targets), &targets) //nolint:errcheck m := map[string]any{ "id": e.ID, "arn": e.ARN, diff --git a/internal/services/fis/provider_test.go b/internal/services/fis/provider_test.go index 9557e7a..eaa4c71 100644 --- a/internal/services/fis/provider_test.go +++ b/internal/services/fis/provider_test.go @@ -20,7 +20,7 @@ func newTestProvider(t *testing.T) *Provider { p := &Provider{} err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/fis/store.go b/internal/services/fis/store.go index bb0db8c..918d66f 100644 --- a/internal/services/fis/store.go +++ b/internal/services/fis/store.go @@ -118,7 +118,7 @@ func (s *Store) ListExperimentTemplates() ([]ExperimentTemplate, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var templates []ExperimentTemplate for rows.Next() { t, err := scanTemplate(rows) @@ -225,7 +225,7 @@ func (s *Store) ListExperiments(templateID string) ([]Experiment, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var exps []Experiment for rows.Next() { e, err := scanExperiment(rows) diff --git a/internal/services/glacier/provider.go b/internal/services/glacier/provider.go index 2a4da15..033d522 100644 --- a/internal/services/glacier/provider.go +++ b/internal/services/glacier/provider.go @@ -588,7 +588,7 @@ func (p *Provider) initiateMultipartUpload(vaultName string, req *http.Request) description := req.Header.Get("x-amz-archive-description") var partSize int64 - fmt.Sscanf(req.Header.Get("x-amz-part-size"), "%d", &partSize) + _, _ = fmt.Sscanf(req.Header.Get("x-amz-part-size"), "%d", &partSize) id := shared.GenerateID("", 64) u := &MultipartUpload{ @@ -630,7 +630,7 @@ func (p *Provider) uploadMultipartPart(vaultName, uploadID string, req *http.Req if rangeHdr != "" { // Format: bytes start-end/* var start, end int64 - fmt.Sscanf(rangeHdr, "bytes %d-%d/*", &start, &end) + _, _ = fmt.Sscanf(rangeHdr, "bytes %d-%d/*", &start, &end) rangeStart = start rangeEnd = end } @@ -690,8 +690,8 @@ func (p *Provider) completeMultipartUpload(vaultName, uploadID string, req *http return nil, err } - p.store.DeleteMultipartParts(uploadID) - p.store.DeleteMultipartUploadRecord(uploadID) + p.store.DeleteMultipartParts(uploadID) //nolint:errcheck + p.store.DeleteMultipartUploadRecord(uploadID) //nolint:errcheck resp, err := shared.JSONResponse(http.StatusOK, map[string]any{ "ArchiveId": archiveID, diff --git a/internal/services/glacier/provider_test.go b/internal/services/glacier/provider_test.go index 136fc81..f06c1fa 100644 --- a/internal/services/glacier/provider_test.go +++ b/internal/services/glacier/provider_test.go @@ -20,7 +20,7 @@ func newTestProvider(t *testing.T) *Provider { p := &Provider{} err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/glacier/store.go b/internal/services/glacier/store.go index 7cf3de9..f4da917 100644 --- a/internal/services/glacier/store.go +++ b/internal/services/glacier/store.go @@ -169,7 +169,7 @@ func (s *Store) ListVaults() ([]Vault, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var vaults []Vault for rows.Next() { v, err := scanVault(rows) @@ -249,7 +249,7 @@ func (s *Store) ListArchives(vaultName string) ([]Archive, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var archives []Archive for rows.Next() { a, err := scanArchive(rows) @@ -289,7 +289,7 @@ func (s *Store) ListJobs(vaultName string) ([]Job, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var jobs []Job for rows.Next() { j, err := scanJob(rows) @@ -333,7 +333,7 @@ func (s *Store) ListTags(vaultName string) (map[string]string, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() tags := make(map[string]string) for rows.Next() { var k, v string @@ -395,7 +395,7 @@ func (s *Store) GetVaultNotifications(vaultName string) (string, []string, error return "", nil, err } var events []string - json.Unmarshal([]byte(eventsJSON), &events) + _ = json.Unmarshal([]byte(eventsJSON), &events) return snsTopic, events, nil } @@ -483,7 +483,7 @@ func (s *Store) ListMultipartUploads(vaultName string) ([]MultipartUpload, error if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var uploads []MultipartUpload for rows.Next() { var u MultipartUpload @@ -498,7 +498,7 @@ func (s *Store) ListMultipartUploads(vaultName string) ([]MultipartUpload, error } func (s *Store) AbortMultipartUpload(id string) error { - s.store.DB().Exec(`DELETE FROM multipart_parts WHERE upload_id = ?`, id) + _, _ = s.store.DB().Exec(`DELETE FROM multipart_parts WHERE upload_id = ?`, id) res, err := s.store.DB().Exec(`DELETE FROM multipart_uploads WHERE id = ?`, id) if err != nil { return err @@ -530,7 +530,7 @@ func (s *Store) ListParts(uploadID string) ([]MultipartPart, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var parts []MultipartPart for rows.Next() { var p MultipartPart @@ -548,7 +548,7 @@ func (s *Store) AssembleMultipartUpload(uploadID string) ([]byte, int64, error) if err != nil { return nil, 0, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var combined []byte for rows.Next() { var data []byte diff --git a/internal/services/glue/provider.go b/internal/services/glue/provider.go index f6ce1d1..37aad19 100644 --- a/internal/services/glue/provider.go +++ b/internal/services/glue/provider.go @@ -394,7 +394,7 @@ func (p *Provider) deleteDatabase(params map[string]any) (*plugin.Response, erro func databaseToMap(db *Database) map[string]any { var params any - json.Unmarshal([]byte(db.Parameters), ¶ms) + _ = json.Unmarshal([]byte(db.Parameters), ¶ms) return map[string]any{ "Name": db.Name, "Description": db.Description, @@ -578,10 +578,10 @@ func (p *Provider) getTableVersions(params map[string]any) (*plugin.Response, er func tableToMap(t *Table) map[string]any { var params, sd, cols, pk any - json.Unmarshal([]byte(t.Parameters), ¶ms) - json.Unmarshal([]byte(t.StorageDesc), &sd) - json.Unmarshal([]byte(t.Columns), &cols) - json.Unmarshal([]byte(t.PartitionKeys), &pk) + _ = json.Unmarshal([]byte(t.Parameters), ¶ms) + _ = json.Unmarshal([]byte(t.StorageDesc), &sd) + _ = json.Unmarshal([]byte(t.Columns), &cols) + _ = json.Unmarshal([]byte(t.PartitionKeys), &pk) return map[string]any{ "Name": t.Name, "DatabaseName": t.DatabaseName, @@ -786,8 +786,8 @@ func (p *Provider) batchUpdatePartition(params map[string]any) (*plugin.Response func partitionToMap(p *Partition) map[string]any { var params, sd any - json.Unmarshal([]byte(p.Parameters), ¶ms) - json.Unmarshal([]byte(p.StorageDesc), &sd) + _ = json.Unmarshal([]byte(p.Parameters), ¶ms) + _ = json.Unmarshal([]byte(p.StorageDesc), &sd) values := strings.Split(p.ValuesKey, "\x00") if len(values) == 1 && values[0] == "" { values = []string{} @@ -932,8 +932,8 @@ func (p *Provider) batchGetCrawlers(params map[string]any) (*plugin.Response, er func crawlerToMap(c *Crawler) map[string]any { var targets, config any - json.Unmarshal([]byte(c.Targets), &targets) - json.Unmarshal([]byte(c.Config), &config) + _ = json.Unmarshal([]byte(c.Targets), &targets) + _ = json.Unmarshal([]byte(c.Config), &config) return map[string]any{ "Name": c.Name, "Role": c.Role, @@ -1107,8 +1107,8 @@ func (p *Provider) batchStopJobRun(params map[string]any) (*plugin.Response, err func jobToMap(j *Job) map[string]any { var command, config any - json.Unmarshal([]byte(j.Command), &command) - json.Unmarshal([]byte(j.Config), &config) + _ = json.Unmarshal([]byte(j.Command), &command) + _ = json.Unmarshal([]byte(j.Config), &config) return map[string]any{ "Name": j.Name, "Role": j.Role, @@ -1236,7 +1236,7 @@ func (p *Provider) batchDeleteConnection(params map[string]any) (*plugin.Respons func connectionToMap(c *Connection) map[string]any { var props any - json.Unmarshal([]byte(c.Properties), &props) + _ = json.Unmarshal([]byte(c.Properties), &props) return map[string]any{ "Name": c.Name, "ConnectionType": c.Type, @@ -1375,8 +1375,8 @@ func (p *Provider) batchGetTriggers(params map[string]any) (*plugin.Response, er func triggerToMap(t *Trigger) map[string]any { var actions, predicate any - json.Unmarshal([]byte(t.Actions), &actions) - json.Unmarshal([]byte(t.Predicate), &predicate) + _ = json.Unmarshal([]byte(t.Actions), &actions) + _ = json.Unmarshal([]byte(t.Predicate), &predicate) return map[string]any{ "Name": t.Name, "Type": t.Type, @@ -1442,7 +1442,7 @@ func (p *Provider) deleteSecurityConfiguration(params map[string]any) (*plugin.R func securityConfigToMap(c *SecurityConfig) map[string]any { var config any - json.Unmarshal([]byte(c.Config), &config) + _ = json.Unmarshal([]byte(c.Config), &config) return map[string]any{ "Name": c.Name, "EncryptionConfiguration": config, diff --git a/internal/services/glue/provider_test.go b/internal/services/glue/provider_test.go index 71193fc..96e9e66 100644 --- a/internal/services/glue/provider_test.go +++ b/internal/services/glue/provider_test.go @@ -19,7 +19,7 @@ func newTestProvider(t *testing.T) *Provider { if err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}); err != nil { t.Fatalf("Init: %v", err) } - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/glue/store.go b/internal/services/glue/store.go index 71bdfdd..73ff610 100644 --- a/internal/services/glue/store.go +++ b/internal/services/glue/store.go @@ -249,7 +249,7 @@ func (s *Store) ListDatabases(catalogID string) ([]Database, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var dbs []Database for rows.Next() { db, err := scanDatabase(rows) @@ -334,7 +334,7 @@ func (s *Store) ListTables(catalogID, databaseName string) ([]Table, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var tables []Table for rows.Next() { t, err := scanTable(rows) @@ -424,7 +424,7 @@ func (s *Store) ListPartitions(catalogID, databaseName, tableName string) ([]Par if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var parts []Partition for rows.Next() { p, err := scanPartition(rows) @@ -506,7 +506,7 @@ func (s *Store) ListCrawlers() ([]Crawler, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var crawlers []Crawler for rows.Next() { c, err := scanCrawler(rows) @@ -600,7 +600,7 @@ func (s *Store) ListJobs() ([]Job, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var jobs []Job for rows.Next() { j, err := scanJob(rows) @@ -679,7 +679,7 @@ func (s *Store) ListJobRuns(jobName string) ([]JobRun, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var runs []JobRun for rows.Next() { r, err := scanJobRun(rows) @@ -748,7 +748,7 @@ func (s *Store) ListConnections(catalogID string) ([]Connection, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var conns []Connection for rows.Next() { c, err := scanConnection(rows) @@ -826,7 +826,7 @@ func (s *Store) ListTriggers() ([]Trigger, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var triggers []Trigger for rows.Next() { t, err := scanTrigger(rows) @@ -914,7 +914,7 @@ func (s *Store) ListSecurityConfigs() ([]SecurityConfig, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var configs []SecurityConfig for rows.Next() { c, err := scanSecurityConfig(rows) diff --git a/internal/services/iam/provider_test.go b/internal/services/iam/provider_test.go index ecdc0a5..63a8d58 100644 --- a/internal/services/iam/provider_test.go +++ b/internal/services/iam/provider_test.go @@ -25,7 +25,7 @@ func newTestIAMProvider(t *testing.T) *IAMProvider { }, }) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } @@ -56,10 +56,12 @@ func TestIAMProvider_ListUsers(t *testing.T) { // Create two users req1 := httptest.NewRequest("POST", "/", strings.NewReader("Action=CreateUser&UserName=alice")) - p.HandleRequest(context.Background(), "", req1) + _, err := p.HandleRequest(context.Background(), "", req1) + require.NoError(t, err) req2 := httptest.NewRequest("POST", "/", strings.NewReader("Action=CreateUser&UserName=bob")) - p.HandleRequest(context.Background(), "", req2) + _, err = p.HandleRequest(context.Background(), "", req2) + require.NoError(t, err) // List users req := httptest.NewRequest("POST", "/", strings.NewReader("Action=ListUsers")) @@ -116,7 +118,8 @@ func TestIAMProvider_AttachRolePolicy(t *testing.T) { // Create role first req1 := httptest.NewRequest("POST", "/", strings.NewReader("Action=CreateRole&RoleName=myrole&AssumeRolePolicyDocument=%7B%7D")) - p.HandleRequest(context.Background(), "", req1) + _, err := p.HandleRequest(context.Background(), "", req1) + require.NoError(t, err) // Attach policy req2 := httptest.NewRequest("POST", "/", strings.NewReader( @@ -132,9 +135,11 @@ func TestIAMProvider_ListRoles(t *testing.T) { p := newTestIAMProvider(t) req1 := httptest.NewRequest("POST", "/", strings.NewReader("Action=CreateRole&RoleName=role-a&AssumeRolePolicyDocument=%7B%7D")) - p.HandleRequest(context.Background(), "", req1) + _, err := p.HandleRequest(context.Background(), "", req1) + require.NoError(t, err) req2 := httptest.NewRequest("POST", "/", strings.NewReader("Action=CreateRole&RoleName=role-b&AssumeRolePolicyDocument=%7B%7D")) - p.HandleRequest(context.Background(), "", req2) + _, err = p.HandleRequest(context.Background(), "", req2) + require.NoError(t, err) req := httptest.NewRequest("POST", "/", strings.NewReader("Action=ListRoles")) resp, err := p.HandleRequest(context.Background(), "", req) @@ -158,7 +163,8 @@ func TestIAMProvider_UnknownAction(t *testing.T) { func TestIAMProvider_GetUser(t *testing.T) { p := newTestIAMProvider(t) req1 := httptest.NewRequest("POST", "/", strings.NewReader("Action=CreateUser&UserName=alice")) - p.HandleRequest(context.Background(), "", req1) + _, err := p.HandleRequest(context.Background(), "", req1) + require.NoError(t, err) req := httptest.NewRequest("POST", "/", strings.NewReader("Action=GetUser&UserName=alice")) resp, err := p.HandleRequest(context.Background(), "", req) @@ -180,7 +186,8 @@ func TestIAMProvider_GetUser_NotFound(t *testing.T) { func TestIAMProvider_GetRole(t *testing.T) { p := newTestIAMProvider(t) req1 := httptest.NewRequest("POST", "/", strings.NewReader("Action=CreateRole&RoleName=myrole&AssumeRolePolicyDocument=%7B%7D")) - p.HandleRequest(context.Background(), "", req1) + _, err := p.HandleRequest(context.Background(), "", req1) + require.NoError(t, err) req := httptest.NewRequest("POST", "/", strings.NewReader("Action=GetRole&RoleName=myrole")) resp, err := p.HandleRequest(context.Background(), "", req) @@ -193,7 +200,8 @@ func TestIAMProvider_GetRole(t *testing.T) { func TestIAMProvider_DeleteRole(t *testing.T) { p := newTestIAMProvider(t) req1 := httptest.NewRequest("POST", "/", strings.NewReader("Action=CreateRole&RoleName=delrole&AssumeRolePolicyDocument=%7B%7D")) - p.HandleRequest(context.Background(), "", req1) + _, err := p.HandleRequest(context.Background(), "", req1) + require.NoError(t, err) req := httptest.NewRequest("POST", "/", strings.NewReader("Action=DeleteRole&RoleName=delrole")) resp, err := p.HandleRequest(context.Background(), "", req) @@ -246,7 +254,8 @@ func TestIAMProvider_DeletePolicy(t *testing.T) { req1 := httptest.NewRequest("POST", "/", strings.NewReader( "Action=CreatePolicy&PolicyName=delpol&PolicyDocument=%7B%7D", )) - p.HandleRequest(context.Background(), "", req1) + _, err := p.HandleRequest(context.Background(), "", req1) + require.NoError(t, err) // Delete policy req2 := httptest.NewRequest("POST", "/", strings.NewReader( @@ -282,13 +291,15 @@ func TestIAMProvider_DetachRolePolicy(t *testing.T) { // Create role req1 := httptest.NewRequest("POST", "/", strings.NewReader("Action=CreateRole&RoleName=detrole&AssumeRolePolicyDocument=%7B%7D")) - p.HandleRequest(context.Background(), "", req1) + _, err := p.HandleRequest(context.Background(), "", req1) + require.NoError(t, err) // Attach policy req2 := httptest.NewRequest("POST", "/", strings.NewReader( "Action=AttachRolePolicy&RoleName=detrole&PolicyArn=arn%3Aaws%3Aiam%3A%3Aaws%3Apolicy%2FReadOnlyAccess", )) - p.HandleRequest(context.Background(), "", req2) + _, err = p.HandleRequest(context.Background(), "", req2) + require.NoError(t, err) // Detach policy req3 := httptest.NewRequest("POST", "/", strings.NewReader( @@ -310,13 +321,15 @@ func TestIAMProvider_AttachUserPolicy_And_List(t *testing.T) { // Create user req1 := httptest.NewRequest("POST", "/", strings.NewReader("Action=CreateUser&UserName=poluser")) - p.HandleRequest(context.Background(), "", req1) + _, err := p.HandleRequest(context.Background(), "", req1) + require.NoError(t, err) // Create policy req2 := httptest.NewRequest("POST", "/", strings.NewReader( "Action=CreatePolicy&PolicyName=userpol&PolicyDocument=%7B%7D", )) - p.HandleRequest(context.Background(), "", req2) + _, err = p.HandleRequest(context.Background(), "", req2) + require.NoError(t, err) arn := "arn%3Aaws%3Aiam%3A%3A000000000000%3Apolicy%2Fuserpol" @@ -343,11 +356,13 @@ func TestIAMProvider_DetachUserPolicy(t *testing.T) { // Create user and policy req1 := httptest.NewRequest("POST", "/", strings.NewReader("Action=CreateUser&UserName=detuser")) - p.HandleRequest(context.Background(), "", req1) + _, err := p.HandleRequest(context.Background(), "", req1) + require.NoError(t, err) req2 := httptest.NewRequest("POST", "/", strings.NewReader( "Action=CreatePolicy&PolicyName=detuserpol&PolicyDocument=%7B%7D", )) - p.HandleRequest(context.Background(), "", req2) + _, err = p.HandleRequest(context.Background(), "", req2) + require.NoError(t, err) arn := "arn%3Aaws%3Aiam%3A%3A000000000000%3Apolicy%2Fdetuserpol" @@ -355,7 +370,8 @@ func TestIAMProvider_DetachUserPolicy(t *testing.T) { req3 := httptest.NewRequest("POST", "/", strings.NewReader( "Action=AttachUserPolicy&UserName=detuser&PolicyArn="+arn, )) - p.HandleRequest(context.Background(), "", req3) + _, err = p.HandleRequest(context.Background(), "", req3) + require.NoError(t, err) // Detach req4 := httptest.NewRequest("POST", "/", strings.NewReader( @@ -414,7 +430,8 @@ func TestIAMProvider_InlineUserPolicyRoundtrip(t *testing.T) { ctx := context.Background() req1 := httptest.NewRequest("POST", "/", strings.NewReader("Action=CreateUser&UserName=inlineuser")) - p.HandleRequest(ctx, "", req1) + _, err := p.HandleRequest(ctx, "", req1) + require.NoError(t, err) req2 := httptest.NewRequest("POST", "/", strings.NewReader( "Action=PutUserPolicy&UserName=inlineuser&PolicyName=mypol&PolicyDocument=%7B%7D", @@ -509,7 +526,8 @@ func TestIAMProvider_GroupRoundtrip(t *testing.T) { assert.Contains(t, string(resp1.Body), "mygroup") req2 := httptest.NewRequest("POST", "/", strings.NewReader("Action=CreateUser&UserName=grpuser")) - p.HandleRequest(ctx, "", req2) + _, err = p.HandleRequest(ctx, "", req2) + require.NoError(t, err) req3 := httptest.NewRequest("POST", "/", strings.NewReader("Action=AddUserToGroup&GroupName=mygroup&UserName=grpuser")) resp3, err := p.HandleRequest(ctx, "", req3) @@ -549,9 +567,11 @@ func TestIAMProvider_ListGroups(t *testing.T) { ctx := context.Background() req1 := httptest.NewRequest("POST", "/", strings.NewReader("Action=CreateGroup&GroupName=grp-a")) - p.HandleRequest(ctx, "", req1) + _, err := p.HandleRequest(ctx, "", req1) + require.NoError(t, err) req2 := httptest.NewRequest("POST", "/", strings.NewReader("Action=CreateGroup&GroupName=grp-b")) - p.HandleRequest(ctx, "", req2) + _, err = p.HandleRequest(ctx, "", req2) + require.NoError(t, err) req := httptest.NewRequest("POST", "/", strings.NewReader("Action=ListGroups")) resp, err := p.HandleRequest(ctx, "", req) @@ -577,7 +597,8 @@ func TestIAMProvider_InstanceProfileRoundtrip(t *testing.T) { assert.Contains(t, string(resp1.Body), "myip") req2 := httptest.NewRequest("POST", "/", strings.NewReader("Action=CreateRole&RoleName=iprole&AssumeRolePolicyDocument=%7B%7D")) - p.HandleRequest(ctx, "", req2) + _, err = p.HandleRequest(ctx, "", req2) + require.NoError(t, err) req3 := httptest.NewRequest("POST", "/", strings.NewReader("Action=AddRoleToInstanceProfile&InstanceProfileName=myip&RoleName=iprole")) resp3, err := p.HandleRequest(ctx, "", req3) @@ -617,9 +638,11 @@ func TestIAMProvider_ListInstanceProfiles(t *testing.T) { ctx := context.Background() req1 := httptest.NewRequest("POST", "/", strings.NewReader("Action=CreateInstanceProfile&InstanceProfileName=ip-a")) - p.HandleRequest(ctx, "", req1) + _, err := p.HandleRequest(ctx, "", req1) + require.NoError(t, err) req2 := httptest.NewRequest("POST", "/", strings.NewReader("Action=CreateInstanceProfile&InstanceProfileName=ip-b")) - p.HandleRequest(ctx, "", req2) + _, err = p.HandleRequest(ctx, "", req2) + require.NoError(t, err) req := httptest.NewRequest("POST", "/", strings.NewReader("Action=ListInstanceProfiles")) resp, err := p.HandleRequest(ctx, "", req) @@ -637,7 +660,8 @@ func TestIAMProvider_AccessKeyManagement(t *testing.T) { ctx := context.Background() req1 := httptest.NewRequest("POST", "/", strings.NewReader("Action=CreateUser&UserName=akuser")) - p.HandleRequest(ctx, "", req1) + _, err := p.HandleRequest(ctx, "", req1) + require.NoError(t, err) req2 := httptest.NewRequest("POST", "/", strings.NewReader("Action=CreateAccessKey&UserName=akuser")) resp2, err := p.HandleRequest(ctx, "", req2) @@ -683,7 +707,8 @@ func TestIAMProvider_UserTagging(t *testing.T) { ctx := context.Background() req1 := httptest.NewRequest("POST", "/", strings.NewReader("Action=CreateUser&UserName=taguser")) - p.HandleRequest(ctx, "", req1) + _, err := p.HandleRequest(ctx, "", req1) + require.NoError(t, err) req2 := httptest.NewRequest("POST", "/", strings.NewReader( "Action=TagUser&UserName=taguser&Tags.member.1.Key=env&Tags.member.1.Value=prod", diff --git a/internal/services/iam/store.go b/internal/services/iam/store.go index 07cb04a..1bae57f 100644 --- a/internal/services/iam/store.go +++ b/internal/services/iam/store.go @@ -317,7 +317,7 @@ func (s *IAMStore) ListUsers(accountID string) ([]User, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var users []User for rows.Next() { @@ -388,7 +388,7 @@ func (s *IAMStore) ListAttachedRolePolicies(accountID, roleName string) ([]strin if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var arns []string for rows.Next() { @@ -440,7 +440,7 @@ func (s *IAMStore) ListRoles(accountID string) ([]Role, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var roles []Role for rows.Next() { @@ -671,7 +671,7 @@ func (s *IAMStore) ListAttachedUserPolicies(accountID, userName string) ([]strin if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var arns []string for rows.Next() { var arn string @@ -686,7 +686,7 @@ func (s *IAMStore) ListAttachedUserPolicies(accountID, userName string) ([]strin // CreatePolicyVersion creates a new version of a managed policy. func (s *IAMStore) CreatePolicyVersion(policyArn, document string, setAsDefault bool) (*PolicyVersion, error) { var count int - s.db().QueryRow(`SELECT COUNT(*) FROM policy_versions WHERE policy_arn = ?;`, policyArn).Scan(&count) + _ = s.db().QueryRow(`SELECT COUNT(*) FROM policy_versions WHERE policy_arn = ?;`, policyArn).Scan(&count) versionID := fmt.Sprintf("v%d", count+1) now := time.Now().UTC() if setAsDefault { @@ -733,7 +733,7 @@ func (s *IAMStore) ListPolicyVersions(policyArn string) ([]PolicyVersion, error) if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var versions []PolicyVersion for rows.Next() { var pv PolicyVersion @@ -799,7 +799,7 @@ func (s *IAMStore) GetGroup(accountID, groupName string) (*Group, []string, erro if err != nil { return nil, nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var members []string for rows.Next() { var u string @@ -841,7 +841,7 @@ func (s *IAMStore) ListGroups(accountID string) ([]Group, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var groups []Group for rows.Next() { var g Group @@ -882,7 +882,7 @@ func (s *IAMStore) ListAccessKeys(accountID, userName string) ([]AccessKey, erro if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var keys []AccessKey for rows.Next() { var k AccessKey @@ -951,7 +951,7 @@ func (s *IAMStore) ListUserTags(accountID, userName string) (map[string]string, if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() tags := make(map[string]string) for rows.Next() { var k, v string @@ -1000,7 +1000,7 @@ func (s *IAMStore) ListRoleTags(accountID, roleName string) (map[string]string, if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() tags := make(map[string]string) for rows.Next() { var k, v string @@ -1064,7 +1064,7 @@ func (s *IAMStore) GetInstanceProfile(accountID, profileName string) (*InstanceP if err != nil { return nil, nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var roles []string for rows.Next() { var r string @@ -1106,7 +1106,7 @@ func (s *IAMStore) ListInstanceProfiles(accountID string) ([]InstanceProfile, er if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var profiles []InstanceProfile for rows.Next() { var ip InstanceProfile @@ -1188,7 +1188,7 @@ func (s *IAMStore) ListUserInlinePolicies(accountID, userName string) ([]string, if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var names []string for rows.Next() { var n string @@ -1250,7 +1250,7 @@ func (s *IAMStore) ListRoleInlinePolicies(accountID, roleName string) ([]string, if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var names []string for rows.Next() { var n string diff --git a/internal/services/iam/store_test.go b/internal/services/iam/store_test.go index f442dc2..659878d 100644 --- a/internal/services/iam/store_test.go +++ b/internal/services/iam/store_test.go @@ -14,7 +14,7 @@ func newTestStore(t *testing.T) *IAMStore { t.Helper() store, err := NewIAMStore(":memory:") require.NoError(t, err) - t.Cleanup(func() { store.Close() }) + t.Cleanup(func() { _ = store.Close() }) return store } diff --git a/internal/services/iam/sts_provider_test.go b/internal/services/iam/sts_provider_test.go index f1975c8..0c8323a 100644 --- a/internal/services/iam/sts_provider_test.go +++ b/internal/services/iam/sts_provider_test.go @@ -25,7 +25,7 @@ func newTestSTSProvider(t *testing.T) *STSProvider { }, }) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/identitystore/provider_test.go b/internal/services/identitystore/provider_test.go index c14b315..e4d030c 100644 --- a/internal/services/identitystore/provider_test.go +++ b/internal/services/identitystore/provider_test.go @@ -19,7 +19,7 @@ func newTestProvider(t *testing.T) *IdentityStoreProvider { t.Helper() p := &IdentityStoreProvider{} require.NoError(t, p.Init(plugin.PluginConfig{DataDir: t.TempDir()})) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/identitystore/store.go b/internal/services/identitystore/store.go index 8fceb27..6cc8647 100644 --- a/internal/services/identitystore/store.go +++ b/internal/services/identitystore/store.go @@ -133,7 +133,7 @@ func (s *Store) ListUsers(identityStoreID string) ([]User, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var users []User for rows.Next() { u, err := scanUser(rows) @@ -222,7 +222,7 @@ func (s *Store) ListGroups(identityStoreID string) ([]Group, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var groups []Group for rows.Next() { g, err := scanGroup(rows) @@ -353,7 +353,7 @@ func (s *Store) ListMembershipsForMember(identityStoreID, userID string) ([]Grou if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var memberships []GroupMembership for rows.Next() { var m GroupMembership @@ -376,7 +376,7 @@ func (s *Store) ListGroupMemberships(identityStoreID, groupID string) ([]GroupMe if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var memberships []GroupMembership for rows.Next() { var m GroupMembership diff --git a/internal/services/iot/provider.go b/internal/services/iot/provider.go index da855f6..dedb7b5 100644 --- a/internal/services/iot/provider.go +++ b/internal/services/iot/provider.go @@ -635,7 +635,7 @@ func (p *Provider) deleteThing(name string) (*plugin.Response, error) { if err != nil { return shared.JSONError("ResourceNotFoundException", "thing not found", http.StatusNotFound), nil } - p.store.tags.DeleteAllTags(t.ARN) + _ = p.store.tags.DeleteAllTags(t.ARN) return shared.JSONResponse(http.StatusOK, map[string]any{}) } @@ -708,7 +708,7 @@ func (p *Provider) deleteThingType(name string) (*plugin.Response, error) { if err != nil { return shared.JSONError("ResourceNotFoundException", "thing type not found", http.StatusNotFound), nil } - p.store.tags.DeleteAllTags(tt.ARN) + _ = p.store.tags.DeleteAllTags(tt.ARN) return shared.JSONResponse(http.StatusOK, map[string]any{}) } @@ -821,7 +821,7 @@ func (p *Provider) deleteThingGroup(name string) (*plugin.Response, error) { if err != nil { return shared.JSONError("ResourceNotFoundException", "thing group not found", http.StatusNotFound), nil } - p.store.tags.DeleteAllTags(tg.ARN) + _ = p.store.tags.DeleteAllTags(tg.ARN) return shared.JSONResponse(http.StatusOK, map[string]any{}) } @@ -913,7 +913,7 @@ func (p *Provider) createPolicy(params map[string]any) (*plugin.Response, error) IsDefault: true, CreatedAt: now, } - p.store.CreatePolicyVersion(pv) + p.store.CreatePolicyVersion(pv) //nolint:errcheck return shared.JSONResponse(http.StatusOK, map[string]any{ "policyName": name, "policyArn": arn, @@ -953,7 +953,7 @@ func (p *Provider) deletePolicy(name string) (*plugin.Response, error) { if err != nil { return shared.JSONError("ResourceNotFoundException", "policy not found", http.StatusNotFound), nil } - p.store.tags.DeleteAllTags(pol.ARN) + _ = p.store.tags.DeleteAllTags(pol.ARN) return shared.JSONResponse(http.StatusOK, map[string]any{}) } @@ -984,7 +984,7 @@ func (p *Provider) createPolicyVersion(policyName string, params map[string]any) return nil, err } if setAsDefault { - p.store.SetDefaultPolicyVersion(policyName, versionID) + p.store.SetDefaultPolicyVersion(policyName, versionID) //nolint:errcheck } return shared.JSONResponse(http.StatusOK, map[string]any{ "policyArn": shared.BuildARN("iot", "policy", policyName), @@ -1244,7 +1244,7 @@ func (p *Provider) deleteCertificate(id string) (*plugin.Response, error) { if err != nil { return shared.JSONError("ResourceNotFoundException", "certificate not found", http.StatusNotFound), nil } - p.store.tags.DeleteAllTags(c.ARN) + _ = p.store.tags.DeleteAllTags(c.ARN) return shared.JSONResponse(http.StatusOK, map[string]any{}) } @@ -1394,7 +1394,7 @@ func (p *Provider) deleteTopicRule(name string) (*plugin.Response, error) { if err != nil { return shared.JSONError("ResourceNotFoundException", "topic rule not found", http.StatusNotFound), nil } - p.store.tags.DeleteAllTags(tr.ARN) + _ = p.store.tags.DeleteAllTags(tr.ARN) return shared.JSONResponse(http.StatusOK, map[string]any{}) } @@ -1609,10 +1609,6 @@ func (p *Provider) deleteRoleAlias(name string) (*plugin.Response, error) { // --- Endpoint --- func (p *Provider) describeEndpoint(req *http.Request) (*plugin.Response, error) { - endpointType := req.URL.Query().Get("endpointType") - if endpointType == "" { - endpointType = "iot:Data-ATS" - } return shared.JSONResponse(http.StatusOK, map[string]any{ "endpointAddress": fmt.Sprintf("%s.iot.%s.amazonaws.com", shared.DefaultAccountID, shared.DefaultRegion), }) @@ -1631,7 +1627,7 @@ func (p *Provider) tagResource(req *http.Request, params map[string]any) (*plugi return shared.JSONError("InvalidRequestException", "resourceArn is required", http.StatusBadRequest), nil } if rawTags, ok := params["tags"].([]any); ok { - p.store.tags.AddTags(arn, tagsListToMap(rawTags)) + _ = p.store.tags.AddTags(arn, tagsListToMap(rawTags)) } return shared.JSONResponse(http.StatusOK, map[string]any{}) } @@ -1642,7 +1638,7 @@ func (p *Provider) untagResource(req *http.Request) (*plugin.Response, error) { return shared.JSONError("InvalidRequestException", "resourceArn is required", http.StatusBadRequest), nil } keys := req.URL.Query()["tagKeys"] - p.store.tags.RemoveTags(arn, keys) + p.store.tags.RemoveTags(arn, keys) //nolint:errcheck return shared.JSONResponse(http.StatusOK, map[string]any{}) } @@ -1663,7 +1659,7 @@ func (p *Provider) listTagsForResource(req *http.Request) (*plugin.Response, err func thingToMap(t *Thing) map[string]any { var attrs map[string]any - json.Unmarshal([]byte(t.Attributes), &attrs) + _ = json.Unmarshal([]byte(t.Attributes), &attrs) if attrs == nil { attrs = map[string]any{} } @@ -1678,7 +1674,7 @@ func thingToMap(t *Thing) map[string]any { func thingTypeToMap(tt *ThingType) map[string]any { var searchableAttrs []any - json.Unmarshal([]byte(tt.SearchableAttrs), &searchableAttrs) + _ = json.Unmarshal([]byte(tt.SearchableAttrs), &searchableAttrs) if searchableAttrs == nil { searchableAttrs = []any{} } @@ -1737,7 +1733,7 @@ func certToMap(c *Certificate) map[string]any { func topicRuleToMap(tr *TopicRule) map[string]any { var actions []any - json.Unmarshal([]byte(tr.Actions), &actions) + _ = json.Unmarshal([]byte(tr.Actions), &actions) if actions == nil { actions = []any{} } @@ -1755,7 +1751,7 @@ func topicRuleToMap(tr *TopicRule) map[string]any { func jobToMap(j *Job) map[string]any { var targets []any - json.Unmarshal([]byte(j.Targets), &targets) + _ = json.Unmarshal([]byte(j.Targets), &targets) if targets == nil { targets = []any{} } diff --git a/internal/services/iot/provider_test.go b/internal/services/iot/provider_test.go index 9bafbde..534509c 100644 --- a/internal/services/iot/provider_test.go +++ b/internal/services/iot/provider_test.go @@ -20,7 +20,7 @@ func newTestProvider(t *testing.T) *Provider { p := &Provider{} err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } @@ -33,18 +33,6 @@ func callREST(t *testing.T, p *Provider, method, path, op, body string) *plugin. return resp } -func callRESTWithHeader(t *testing.T, p *Provider, method, path, op, body string, headers map[string]string) *plugin.Response { - t.Helper() - req := httptest.NewRequest(method, path, strings.NewReader(body)) - req.Header.Set("Content-Type", "application/json") - for k, v := range headers { - req.Header.Set(k, v) - } - resp, err := p.HandleRequest(context.Background(), op, req) - require.NoError(t, err) - return resp -} - func parseBody(t *testing.T, resp *plugin.Response) map[string]any { t.Helper() var m map[string]any diff --git a/internal/services/iot/store.go b/internal/services/iot/store.go index b865d89..7c83cea 100644 --- a/internal/services/iot/store.go +++ b/internal/services/iot/store.go @@ -239,7 +239,7 @@ func (s *Store) ListThings() ([]Thing, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []Thing for rows.Next() { t, err := scanThing(rows) @@ -314,7 +314,7 @@ func (s *Store) ListThingTypes() ([]ThingType, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []ThingType for rows.Next() { tt, err := scanThingType(rows) @@ -372,7 +372,7 @@ func (s *Store) ListThingGroups() ([]ThingGroup, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []ThingGroup for rows.Next() { tg, err := scanThingGroup(rows) @@ -442,7 +442,7 @@ func (s *Store) ListThingsInThingGroup(groupName string) ([]string, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []string for rows.Next() { var name string @@ -460,7 +460,7 @@ func (s *Store) ListThingGroupsForThing(thingName string) ([]string, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []string for rows.Next() { var name string @@ -494,7 +494,7 @@ func (s *Store) ListPolicies() ([]Policy, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []Policy for rows.Next() { p, err := scanPolicy(rows) @@ -545,7 +545,7 @@ func (s *Store) ListPolicyVersions(policyName string) ([]PolicyVersion, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []PolicyVersion for rows.Next() { pv, err := scanPolicyVersion(rows) @@ -612,7 +612,7 @@ func (s *Store) ListAttachedPolicies(target string) ([]string, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []string for rows.Next() { var name string @@ -630,7 +630,7 @@ func (s *Store) ListTargetsForPolicy(policyName string) ([]string, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []string for rows.Next() { var target string @@ -664,7 +664,7 @@ func (s *Store) ListCertificates() ([]Certificate, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []Certificate for rows.Next() { c, err := scanCertificate(rows) @@ -722,7 +722,7 @@ func (s *Store) ListThingPrincipals(thingName string) ([]string, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []string for rows.Next() { var p string @@ -740,7 +740,7 @@ func (s *Store) ListPrincipalThings(principal string) ([]string, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []string for rows.Next() { var name string @@ -774,7 +774,7 @@ func (s *Store) ListTopicRules() ([]TopicRule, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []TopicRule for rows.Next() { tr, err := scanTopicRule(rows) @@ -852,7 +852,7 @@ func (s *Store) ListJobs() ([]Job, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []Job for rows.Next() { j, err := scanJob(rows) @@ -910,7 +910,7 @@ func (s *Store) ListRoleAliases() ([]RoleAlias, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []RoleAlias for rows.Next() { ra, err := scanRoleAlias(rows) diff --git a/internal/services/iotdataplane/provider_test.go b/internal/services/iotdataplane/provider_test.go index d09d975..5f75c05 100644 --- a/internal/services/iotdataplane/provider_test.go +++ b/internal/services/iotdataplane/provider_test.go @@ -20,7 +20,7 @@ func newTestProvider(t *testing.T) *Provider { p := &Provider{} err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/iotdataplane/store.go b/internal/services/iotdataplane/store.go index 1c8f9a8..c528b8e 100644 --- a/internal/services/iotdataplane/store.go +++ b/internal/services/iotdataplane/store.go @@ -115,7 +115,7 @@ func (s *Store) ListShadowNames(thingName string) ([]string, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var names []string for rows.Next() { var name string @@ -158,7 +158,7 @@ func (s *Store) ListRetainedMessages() ([]*RetainedMessage, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var msgs []*RetainedMessage for rows.Next() { m, err := scanRetainedMessage(rows) diff --git a/internal/services/iotwireless/provider.go b/internal/services/iotwireless/provider.go index e435337..7975a3c 100644 --- a/internal/services/iotwireless/provider.go +++ b/internal/services/iotwireless/provider.go @@ -238,7 +238,7 @@ func (p *Provider) createDestination(params map[string]any) (*plugin.Response, e return nil, err } if rawTags, ok := params["Tags"].([]any); ok { - p.store.tags.AddTags(arn, tagsListToMap(rawTags)) + _ = p.store.tags.AddTags(arn, tagsListToMap(rawTags)) } return shared.JSONResponse(http.StatusCreated, map[string]any{"Arn": arn, "Name": name}) } @@ -286,7 +286,7 @@ func (p *Provider) deleteDestination(name string) (*plugin.Response, error) { if err != nil { return shared.JSONError("ResourceNotFoundException", "destination not found", http.StatusNotFound), nil } - p.store.tags.DeleteAllTags(d.ARN) + _ = p.store.tags.DeleteAllTags(d.ARN) return shared.JSONResponse(http.StatusNoContent, nil) } @@ -310,7 +310,7 @@ func (p *Provider) createDeviceProfile(params map[string]any) (*plugin.Response, return nil, err } if rawTags, ok := params["Tags"].([]any); ok { - p.store.tags.AddTags(arn, tagsListToMap(rawTags)) + _ = p.store.tags.AddTags(arn, tagsListToMap(rawTags)) } return shared.JSONResponse(http.StatusCreated, map[string]any{"Arn": arn, "Id": id}) } @@ -347,7 +347,7 @@ func (p *Provider) deleteDeviceProfile(id string) (*plugin.Response, error) { if err != nil { return shared.JSONError("ResourceNotFoundException", "device profile not found", http.StatusNotFound), nil } - p.store.tags.DeleteAllTags(dp.ARN) + _ = p.store.tags.DeleteAllTags(dp.ARN) return shared.JSONResponse(http.StatusNoContent, nil) } @@ -371,7 +371,7 @@ func (p *Provider) createServiceProfile(params map[string]any) (*plugin.Response return nil, err } if rawTags, ok := params["Tags"].([]any); ok { - p.store.tags.AddTags(arn, tagsListToMap(rawTags)) + _ = p.store.tags.AddTags(arn, tagsListToMap(rawTags)) } return shared.JSONResponse(http.StatusCreated, map[string]any{"Arn": arn, "Id": id}) } @@ -408,7 +408,7 @@ func (p *Provider) deleteServiceProfile(id string) (*plugin.Response, error) { if err != nil { return shared.JSONError("ResourceNotFoundException", "service profile not found", http.StatusNotFound), nil } - p.store.tags.DeleteAllTags(sp.ARN) + _ = p.store.tags.DeleteAllTags(sp.ARN) return shared.JSONResponse(http.StatusNoContent, nil) } @@ -435,7 +435,7 @@ func (p *Provider) createWirelessDevice(params map[string]any) (*plugin.Response return nil, err } if rawTags, ok := params["Tags"].([]any); ok { - p.store.tags.AddTags(arn, tagsListToMap(rawTags)) + _ = p.store.tags.AddTags(arn, tagsListToMap(rawTags)) } return shared.JSONResponse(http.StatusCreated, map[string]any{"Arn": arn, "Id": id}) } @@ -488,7 +488,7 @@ func (p *Provider) deleteWirelessDevice(id string) (*plugin.Response, error) { if err != nil { return shared.JSONError("ResourceNotFoundException", "wireless device not found", http.StatusNotFound), nil } - p.store.tags.DeleteAllTags(wd.ARN) + _ = p.store.tags.DeleteAllTags(wd.ARN) return shared.JSONResponse(http.StatusNoContent, nil) } @@ -513,7 +513,7 @@ func (p *Provider) createWirelessGateway(params map[string]any) (*plugin.Respons return nil, err } if rawTags, ok := params["Tags"].([]any); ok { - p.store.tags.AddTags(arn, tagsListToMap(rawTags)) + _ = p.store.tags.AddTags(arn, tagsListToMap(rawTags)) } return shared.JSONResponse(http.StatusCreated, map[string]any{"Arn": arn, "Id": id}) } @@ -564,7 +564,7 @@ func (p *Provider) deleteWirelessGateway(id string) (*plugin.Response, error) { if err != nil { return shared.JSONError("ResourceNotFoundException", "wireless gateway not found", http.StatusNotFound), nil } - p.store.tags.DeleteAllTags(wg.ARN) + _ = p.store.tags.DeleteAllTags(wg.ARN) return shared.JSONResponse(http.StatusNoContent, nil) } @@ -589,7 +589,7 @@ func (p *Provider) createFuotaTask(params map[string]any) (*plugin.Response, err return nil, err } if rawTags, ok := params["Tags"].([]any); ok { - p.store.tags.AddTags(arn, tagsListToMap(rawTags)) + _ = p.store.tags.AddTags(arn, tagsListToMap(rawTags)) } return shared.JSONResponse(http.StatusCreated, map[string]any{"Arn": arn, "Id": id}) } @@ -641,7 +641,7 @@ func (p *Provider) deleteFuotaTask(id string) (*plugin.Response, error) { if err != nil { return shared.JSONError("ResourceNotFoundException", "fuota task not found", http.StatusNotFound), nil } - p.store.tags.DeleteAllTags(ft.ARN) + _ = p.store.tags.DeleteAllTags(ft.ARN) return shared.JSONResponse(http.StatusNoContent, nil) } @@ -676,7 +676,7 @@ func (p *Provider) createMulticastGroup(params map[string]any) (*plugin.Response return nil, err } if rawTags, ok := params["Tags"].([]any); ok { - p.store.tags.AddTags(arn, tagsListToMap(rawTags)) + _ = p.store.tags.AddTags(arn, tagsListToMap(rawTags)) } return shared.JSONResponse(http.StatusCreated, map[string]any{"Arn": arn, "Id": id}) } @@ -728,7 +728,7 @@ func (p *Provider) deleteMulticastGroup(id string) (*plugin.Response, error) { if err != nil { return shared.JSONError("ResourceNotFoundException", "multicast group not found", http.StatusNotFound), nil } - p.store.tags.DeleteAllTags(mg.ARN) + _ = p.store.tags.DeleteAllTags(mg.ARN) return shared.JSONResponse(http.StatusNoContent, nil) } @@ -757,7 +757,7 @@ func (p *Provider) createNetworkAnalyzerConfig(params map[string]any) (*plugin.R return nil, err } if rawTags, ok := params["Tags"].([]any); ok { - p.store.tags.AddTags(arn, tagsListToMap(rawTags)) + _ = p.store.tags.AddTags(arn, tagsListToMap(rawTags)) } return shared.JSONResponse(http.StatusCreated, map[string]any{"Arn": arn, "Name": name}) } @@ -804,7 +804,7 @@ func (p *Provider) deleteNetworkAnalyzerConfig(name string) (*plugin.Response, e if err != nil { return shared.JSONError("ResourceNotFoundException", "network analyzer configuration not found", http.StatusNotFound), nil } - p.store.tags.DeleteAllTags(nac.ARN) + _ = p.store.tags.DeleteAllTags(nac.ARN) return shared.JSONResponse(http.StatusNoContent, nil) } @@ -816,7 +816,7 @@ func (p *Provider) tagResource(req *http.Request, params map[string]any) (*plugi return shared.JSONError("ValidationException", "resourceArn query parameter is required", http.StatusBadRequest), nil } if rawTags, ok := params["Tags"].([]any); ok { - p.store.tags.AddTags(arn, tagsListToMap(rawTags)) + _ = p.store.tags.AddTags(arn, tagsListToMap(rawTags)) } return shared.JSONResponse(http.StatusOK, map[string]any{}) } @@ -827,7 +827,7 @@ func (p *Provider) untagResource(req *http.Request) (*plugin.Response, error) { return shared.JSONError("ValidationException", "resourceArn query parameter is required", http.StatusBadRequest), nil } keys := req.URL.Query()["tagKeys"] - p.store.tags.RemoveTags(arn, keys) + p.store.tags.RemoveTags(arn, keys) //nolint:errcheck return shared.JSONResponse(http.StatusOK, map[string]any{}) } diff --git a/internal/services/iotwireless/provider_test.go b/internal/services/iotwireless/provider_test.go index 1268625..d583862 100644 --- a/internal/services/iotwireless/provider_test.go +++ b/internal/services/iotwireless/provider_test.go @@ -20,7 +20,7 @@ func newTestProvider(t *testing.T) *Provider { p := &Provider{} err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/iotwireless/store.go b/internal/services/iotwireless/store.go index 296997f..1c31b51 100644 --- a/internal/services/iotwireless/store.go +++ b/internal/services/iotwireless/store.go @@ -194,7 +194,7 @@ func (s *Store) ListDestinations() ([]Destination, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []Destination for rows.Next() { d, err := scanDestination(rows) @@ -270,7 +270,7 @@ func (s *Store) ListDeviceProfiles() ([]DeviceProfile, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []DeviceProfile for rows.Next() { dp, err := scanDeviceProfile(rows) @@ -315,7 +315,7 @@ func (s *Store) ListServiceProfiles() ([]ServiceProfile, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []ServiceProfile for rows.Next() { sp, err := scanServiceProfile(rows) @@ -360,7 +360,7 @@ func (s *Store) ListWirelessDevices() ([]WirelessDevice, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []WirelessDevice for rows.Next() { wd, err := scanWirelessDevice(rows) @@ -433,7 +433,7 @@ func (s *Store) ListWirelessGateways() ([]WirelessGateway, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []WirelessGateway for rows.Next() { wg, err := scanWirelessGateway(rows) @@ -503,7 +503,7 @@ func (s *Store) ListFuotaTasks() ([]FuotaTask, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []FuotaTask for rows.Next() { ft, err := scanFuotaTask(rows) @@ -573,7 +573,7 @@ func (s *Store) ListMulticastGroups() ([]MulticastGroup, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []MulticastGroup for rows.Next() { mg, err := scanMulticastGroup(rows) @@ -640,7 +640,7 @@ func (s *Store) ListNetworkAnalyzerConfigs() ([]NetworkAnalyzerConfig, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []NetworkAnalyzerConfig for rows.Next() { nac, err := scanNetworkAnalyzerConfig(rows) diff --git a/internal/services/kafka/provider.go b/internal/services/kafka/provider.go index 5ca4016..efd3939 100644 --- a/internal/services/kafka/provider.go +++ b/internal/services/kafka/provider.go @@ -485,7 +485,8 @@ func (p *Provider) createCluster(params map[string]any) (*plugin.Response, error tags[k] = s } } - p.store.tags.AddTags(c.ARN, tags) + //nolint:errcheck + _ = p.store.tags.AddTags(c.ARN, tags) } return shared.JSONResponse(http.StatusOK, map[string]any{ @@ -534,7 +535,7 @@ func (p *Provider) createClusterV2(params map[string]any) (*plugin.Response, err tags[k] = s } } - p.store.tags.AddTags(c.ARN, tags) + _ = p.store.tags.AddTags(c.ARN, tags) } return shared.JSONResponse(http.StatusOK, map[string]any{ @@ -617,7 +618,7 @@ func (p *Provider) deleteCluster(clusterArn string) (*plugin.Response, error) { if err != nil { return shared.JSONError("NotFoundException", "cluster not found", http.StatusNotFound), nil } - p.store.tags.DeleteAllTags(clusterArn) + _ = p.store.tags.DeleteAllTags(clusterArn) if err := p.store.DeleteCluster(clusterArn); err != nil { return shared.JSONError("NotFoundException", "cluster not found", http.StatusNotFound), nil } @@ -954,7 +955,7 @@ func (p *Provider) updateBrokerCount(clusterArn string, params map[string]any) ( if n, ok := params["TargetNumberOfBrokerNodes"].(float64); ok && n > 0 { count = int(n) } - p.store.UpdateCluster(clusterArn, map[string]any{"broker_count": count}) + p.store.UpdateCluster(clusterArn, map[string]any{"broker_count": count}) //nolint:errcheck return shared.JSONResponse(http.StatusOK, map[string]any{ "ClusterArn": clusterArn, "ClusterOperationArn": shared.BuildARN("kafka", "cluster-operation", shared.GenerateUUID()), @@ -982,7 +983,7 @@ func (p *Provider) updateBrokerType(clusterArn string, params map[string]any) (* return shared.JSONError("NotFoundException", "cluster not found", http.StatusNotFound), nil } if bt, ok := params["TargetInstanceType"].(string); ok && bt != "" { - p.store.UpdateCluster(clusterArn, map[string]any{"broker_type": bt}) + p.store.UpdateCluster(clusterArn, map[string]any{"broker_type": bt}) //nolint:errcheck } return shared.JSONResponse(http.StatusOK, map[string]any{ "ClusterArn": clusterArn, @@ -999,7 +1000,7 @@ func (p *Provider) updateClusterConfiguration(clusterArn string, params map[stri } if cfg, ok := params["ConfigurationInfo"].(map[string]any); ok { if b, err := json.Marshal(cfg); err == nil { - p.store.UpdateCluster(clusterArn, map[string]any{"config": string(b)}) + p.store.UpdateCluster(clusterArn, map[string]any{"config": string(b)}) //nolint:errcheck } } return shared.JSONResponse(http.StatusOK, map[string]any{ @@ -1016,7 +1017,7 @@ func (p *Provider) updateClusterKafkaVersion(clusterArn string, params map[strin return shared.JSONError("NotFoundException", "cluster not found", http.StatusNotFound), nil } if kv, ok := params["TargetKafkaVersion"].(string); ok && kv != "" { - p.store.UpdateCluster(clusterArn, map[string]any{"kafka_version": kv}) + p.store.UpdateCluster(clusterArn, map[string]any{"kafka_version": kv}) //nolint:errcheck } return shared.JSONResponse(http.StatusOK, map[string]any{ "ClusterArn": clusterArn, @@ -1184,7 +1185,7 @@ func clusterToInfoV2(c *Cluster) map[string]any { func configurationToInfo(c *Configuration) map[string]any { var kafkaVersions []string - json.Unmarshal([]byte(c.KafkaVersions), &kafkaVersions) + _ = json.Unmarshal([]byte(c.KafkaVersions), &kafkaVersions) if kafkaVersions == nil { kafkaVersions = []string{} } diff --git a/internal/services/kafka/provider_test.go b/internal/services/kafka/provider_test.go index e596630..55b0f5a 100644 --- a/internal/services/kafka/provider_test.go +++ b/internal/services/kafka/provider_test.go @@ -20,7 +20,7 @@ func newTestProvider(t *testing.T) *Provider { p := &Provider{} err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/kafka/store.go b/internal/services/kafka/store.go index 501e16a..75b35e0 100644 --- a/internal/services/kafka/store.go +++ b/internal/services/kafka/store.go @@ -145,7 +145,7 @@ func (s *Store) ListClusters() ([]Cluster, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var clusters []Cluster for rows.Next() { c, err := scanCluster(rows) @@ -229,7 +229,7 @@ func (s *Store) ListConfigurations() ([]Configuration, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var cfgs []Configuration for rows.Next() { c, err := scanConfiguration(rows) @@ -307,7 +307,7 @@ func (s *Store) ListTopics(clusterARN string) ([]Topic, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var topics []Topic for rows.Next() { t, err := scanTopic(rows) @@ -375,7 +375,7 @@ func (s *Store) PutClusterPolicy(clusterARN, policy string) (string, error) { return "", err } var version string - s.store.DB().QueryRow(`SELECT current_version FROM cluster_policies WHERE cluster_arn = ?`, clusterARN).Scan(&version) + _ = s.store.DB().QueryRow(`SELECT current_version FROM cluster_policies WHERE cluster_arn = ?`, clusterARN).Scan(&version) return version, nil } diff --git a/internal/services/kinesis/provider.go b/internal/services/kinesis/provider.go index ca6e9cf..a6480d5 100644 --- a/internal/services/kinesis/provider.go +++ b/internal/services/kinesis/provider.go @@ -221,7 +221,7 @@ func (p *Provider) createStream(params map[string]any) (*plugin.Response, error) tags[k] = vs } } - p.store.tags.AddTags(arn, tags) + _ = p.store.tags.AddTags(arn, tags) } return jsonOK(map[string]any{}) } @@ -235,7 +235,7 @@ func (p *Provider) deleteStream(params map[string]any) (*plugin.Response, error) if err != nil { return jsonErr("ResourceNotFoundException", "stream not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(st.ARN) + _ = p.store.tags.DeleteAllTags(st.ARN) //nolint:errcheck if err := p.store.DeleteStream(name); err != nil { return jsonErr("ResourceNotFoundException", "stream not found", http.StatusBadRequest), nil } @@ -489,7 +489,7 @@ func (p *Provider) splitShard(params map[string]any) (*plugin.Response, error) { if _, err := p.store.buffer.addShard(name); err != nil { return nil, err } - p.store.UpdateShardCount(name, st.ShardCount+1) + p.store.UpdateShardCount(name, st.ShardCount+1) //nolint:errcheck return jsonOK(map[string]any{}) } @@ -510,7 +510,7 @@ func (p *Provider) mergeShards(params map[string]any) (*plugin.Response, error) if err := p.store.buffer.removeShard(name, lastShardID); err != nil { return nil, err } - p.store.UpdateShardCount(name, st.ShardCount-1) + p.store.UpdateShardCount(name, st.ShardCount-1) //nolint:errcheck return jsonOK(map[string]any{}) } diff --git a/internal/services/kinesis/provider_test.go b/internal/services/kinesis/provider_test.go index d62b270..7d98a98 100644 --- a/internal/services/kinesis/provider_test.go +++ b/internal/services/kinesis/provider_test.go @@ -19,7 +19,7 @@ func newTestProvider(t *testing.T) *Provider { t.Helper() p := &Provider{} require.NoError(t, p.Init(plugin.PluginConfig{DataDir: t.TempDir()})) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/kinesis/store.go b/internal/services/kinesis/store.go index 105c527..9c8f275 100644 --- a/internal/services/kinesis/store.go +++ b/internal/services/kinesis/store.go @@ -393,7 +393,7 @@ func (s *Store) ListStreams() ([]StreamMeta, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var streams []StreamMeta for rows.Next() { st, err := scanStreamMeta(rows) @@ -543,7 +543,7 @@ func (s *Store) ListConsumers(streamARN string) ([]ConsumerMeta, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var consumers []ConsumerMeta for rows.Next() { c, err := scanConsumer(rows) diff --git a/internal/services/kinesisanalyticsv2/provider.go b/internal/services/kinesisanalyticsv2/provider.go index d196e69..d39495a 100644 --- a/internal/services/kinesisanalyticsv2/provider.go +++ b/internal/services/kinesisanalyticsv2/provider.go @@ -145,7 +145,7 @@ func (p *Provider) GetMetrics(_ context.Context) (*plugin.ServiceMetrics, error) func appToMap(app *Application) map[string]any { var cfg any - json.Unmarshal([]byte(app.Config), &cfg) + _ = json.Unmarshal([]byte(app.Config), &cfg) return map[string]any{ "ApplicationName": app.Name, "ApplicationARN": app.ARN, @@ -213,7 +213,7 @@ func (p *Provider) createApplication(params map[string]any) (*plugin.Response, e return nil, err } if rawTags, ok := params["Tags"].([]any); ok { - p.store.tags.AddTags(app.ARN, parseTags(rawTags)) + _ = p.store.tags.AddTags(app.ARN, parseTags(rawTags)) } return shared.JSONResponse(http.StatusOK, map[string]any{ "ApplicationDetail": appToMap(app), @@ -263,7 +263,7 @@ func (p *Provider) deleteApplication(params map[string]any) (*plugin.Response, e if err != nil { return shared.JSONError("ResourceNotFoundException", "application not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(app.ARN) + _ = p.store.tags.DeleteAllTags(app.ARN) if err := p.store.DeleteApplication(name); err != nil { return shared.JSONError("ResourceNotFoundException", "application not found", http.StatusBadRequest), nil } diff --git a/internal/services/kinesisanalyticsv2/provider_test.go b/internal/services/kinesisanalyticsv2/provider_test.go index 62dc50c..1f7c18b 100644 --- a/internal/services/kinesisanalyticsv2/provider_test.go +++ b/internal/services/kinesisanalyticsv2/provider_test.go @@ -19,7 +19,7 @@ func newTestProvider(t *testing.T) *Provider { t.Helper() p := &Provider{} require.NoError(t, p.Init(plugin.PluginConfig{DataDir: t.TempDir()})) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/kinesisanalyticsv2/store.go b/internal/services/kinesisanalyticsv2/store.go index 4aa9394..01debbf 100644 --- a/internal/services/kinesisanalyticsv2/store.go +++ b/internal/services/kinesisanalyticsv2/store.go @@ -108,7 +108,7 @@ func (s *Store) ListApplications() ([]Application, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var apps []Application for rows.Next() { app, err := scanApplication(rows) @@ -189,7 +189,7 @@ func (s *Store) ListSnapshots(appName string) ([]ApplicationSnapshot, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var snaps []ApplicationSnapshot for rows.Next() { snap, err := scanSnapshot(rows) diff --git a/internal/services/kms/provider.go b/internal/services/kms/provider.go index eb3f96d..4f02896 100644 --- a/internal/services/kms/provider.go +++ b/internal/services/kms/provider.go @@ -737,7 +737,7 @@ func grantsToList(grants []Grant) []map[string]any { list := make([]map[string]any, 0, len(grants)) for _, g := range grants { var ops []string - json.Unmarshal([]byte(g.Operations), &ops) //nolint:errcheck + _ = json.Unmarshal([]byte(g.Operations), &ops) //nolint:errcheck entry := map[string]any{ "GrantId": g.GrantID, "GrantToken": g.GrantToken, diff --git a/internal/services/kms/provider_test.go b/internal/services/kms/provider_test.go index 00e786c..18b7b20 100644 --- a/internal/services/kms/provider_test.go +++ b/internal/services/kms/provider_test.go @@ -19,7 +19,7 @@ func newTestProvider(t *testing.T) *Provider { t.Helper() p := &Provider{} require.NoError(t, p.Init(plugin.PluginConfig{DataDir: t.TempDir()})) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/kms/store.go b/internal/services/kms/store.go index 0fd2923..855dcca 100644 --- a/internal/services/kms/store.go +++ b/internal/services/kms/store.go @@ -170,7 +170,7 @@ func (s *KMSStore) ListKeys(accountID string) ([]Key, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var keys []Key for rows.Next() { var k Key @@ -198,7 +198,7 @@ func (s *KMSStore) ListAliases(accountID string) ([]Alias, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var aliases []Alias for rows.Next() { var a Alias @@ -333,7 +333,7 @@ func (s *KMSStore) ListGrants(keyID, accountID string) ([]Grant, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() return scanGrants(rows) } @@ -346,7 +346,7 @@ func (s *KMSStore) ListRetirableGrants(retiringPrincipal, accountID string) ([]G if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() return scanGrants(rows) } diff --git a/internal/services/lakeformation/provider.go b/internal/services/lakeformation/provider.go index e446148..534d969 100644 --- a/internal/services/lakeformation/provider.go +++ b/internal/services/lakeformation/provider.go @@ -264,7 +264,7 @@ func (p *Provider) getLFTag(params map[string]any) (*plugin.Response, error) { return shared.JSONError("EntityNotFoundException", "LF tag not found", http.StatusNotFound), nil } var values []string - json.Unmarshal([]byte(tag.ValuesJSON), &values) + _ = json.Unmarshal([]byte(tag.ValuesJSON), &values) return shared.JSONResponse(http.StatusOK, map[string]any{ "CatalogId": tag.CatalogID, "TagKey": tag.Key, @@ -284,7 +284,7 @@ func (p *Provider) updateLFTag(params map[string]any) (*plugin.Response, error) return shared.JSONError("EntityNotFoundException", "LF tag not found", http.StatusNotFound), nil } var existing []string - json.Unmarshal([]byte(tag.ValuesJSON), &existing) + _ = json.Unmarshal([]byte(tag.ValuesJSON), &existing) // Add new values addRaw, _ := params["TagValuesToAdd"].([]any) @@ -331,7 +331,7 @@ func (p *Provider) listLFTags(params map[string]any) (*plugin.Response, error) { list := make([]map[string]any, 0, len(tags)) for _, t := range tags { var values []string - json.Unmarshal([]byte(t.ValuesJSON), &values) + _ = json.Unmarshal([]byte(t.ValuesJSON), &values) list = append(list, map[string]any{ "CatalogId": t.CatalogID, "TagKey": t.Key, @@ -375,7 +375,7 @@ func (p *Provider) getLFTagExpression(params map[string]any) (*plugin.Response, return shared.JSONError("EntityNotFoundException", "LF tag expression not found", http.StatusNotFound), nil } var expression []any - json.Unmarshal([]byte(expr.Expression), &expression) + _ = json.Unmarshal([]byte(expr.Expression), &expression) return shared.JSONResponse(http.StatusOK, map[string]any{ "Name": expr.Name, "CatalogId": expr.CatalogID, @@ -422,7 +422,7 @@ func (p *Provider) listLFTagExpressions(params map[string]any) (*plugin.Response list := make([]map[string]any, 0, len(exprs)) for _, e := range exprs { var expression []any - json.Unmarshal([]byte(e.Expression), &expression) + _ = json.Unmarshal([]byte(e.Expression), &expression) list = append(list, map[string]any{ "Name": e.Name, "CatalogId": e.CatalogID, @@ -474,7 +474,7 @@ func (p *Provider) revokePermissions(params map[string]any) (*plugin.Response, e } for _, perm := range perms { if perm.Principal == principalStr { - p.store.RevokePermission(perm.ID) + p.store.RevokePermission(perm.ID) //nolint:errcheck } } return shared.JSONResponse(http.StatusOK, map[string]any{}) @@ -491,10 +491,10 @@ func (p *Provider) listPermissions(params map[string]any) (*plugin.Response, err var resource map[string]any var permissions []any var grantOption []any - json.Unmarshal([]byte(perm.Principal), &principal) - json.Unmarshal([]byte(perm.ResourceJSON), &resource) - json.Unmarshal([]byte(perm.PermissionsJSON), &permissions) - json.Unmarshal([]byte(perm.GrantOption), &grantOption) + _ = json.Unmarshal([]byte(perm.Principal), &principal) + _ = json.Unmarshal([]byte(perm.ResourceJSON), &resource) + _ = json.Unmarshal([]byte(perm.PermissionsJSON), &permissions) + _ = json.Unmarshal([]byte(perm.GrantOption), &grantOption) list = append(list, map[string]any{ "Principal": principal, "Resource": resource, @@ -523,7 +523,7 @@ func (p *Provider) batchGrantPermissions(params map[string]any) (*plugin.Respons perms, _ := entry["Permissions"].([]any) grantOpt, _ := entry["PermissionsWithGrantOption"].([]any) id := shared.GenerateUUID() - p.store.GrantPermission(id, marshalJSON(principal), marshalJSON(resource), marshalJSON(perms), marshalJSON(grantOpt)) + p.store.GrantPermission(id, marshalJSON(principal), marshalJSON(resource), marshalJSON(perms), marshalJSON(grantOpt)) //nolint:errcheck } return shared.JSONResponse(http.StatusOK, map[string]any{"Failures": []any{}}) } @@ -546,7 +546,7 @@ func (p *Provider) batchRevokePermissions(params map[string]any) (*plugin.Respon } for _, perm := range perms { if perm.Principal == principalStr { - p.store.RevokePermission(perm.ID) + p.store.RevokePermission(perm.ID) //nolint:errcheck } } } @@ -564,10 +564,10 @@ func (p *Provider) getEffectivePermissionsForPath(params map[string]any) (*plugi var resource map[string]any var permissions []any var grantOption []any - json.Unmarshal([]byte(perm.Principal), &principal) - json.Unmarshal([]byte(perm.ResourceJSON), &resource) - json.Unmarshal([]byte(perm.PermissionsJSON), &permissions) - json.Unmarshal([]byte(perm.GrantOption), &grantOption) + _ = json.Unmarshal([]byte(perm.Principal), &principal) + _ = json.Unmarshal([]byte(perm.ResourceJSON), &resource) + _ = json.Unmarshal([]byte(perm.PermissionsJSON), &permissions) + _ = json.Unmarshal([]byte(perm.GrantOption), &grantOption) list = append(list, map[string]any{ "Principal": principal, "Resource": resource, @@ -660,8 +660,8 @@ func (p *Provider) getDataLakeSettings(params map[string]any) (*plugin.Response, } var admins []any var config map[string]any - json.Unmarshal([]byte(st.Admins), &admins) - json.Unmarshal([]byte(st.Config), &config) + _ = json.Unmarshal([]byte(st.Admins), &admins) + _ = json.Unmarshal([]byte(st.Config), &config) if config == nil { config = map[string]any{} } @@ -806,8 +806,8 @@ func resourceToMap(r *Resource) map[string]any { func filterToMap(f *DataCellsFilter) map[string]any { var colNames []string var rowFilter map[string]any - json.Unmarshal([]byte(f.ColumnNames), &colNames) - json.Unmarshal([]byte(f.RowFilter), &rowFilter) + _ = json.Unmarshal([]byte(f.ColumnNames), &colNames) + _ = json.Unmarshal([]byte(f.RowFilter), &rowFilter) if rowFilter == nil { rowFilter = map[string]any{} } diff --git a/internal/services/lakeformation/provider_test.go b/internal/services/lakeformation/provider_test.go index 8af3239..58e4c90 100644 --- a/internal/services/lakeformation/provider_test.go +++ b/internal/services/lakeformation/provider_test.go @@ -20,7 +20,7 @@ func newTestProvider(t *testing.T) *Provider { p := &Provider{} err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/lakeformation/store.go b/internal/services/lakeformation/store.go index c16f091..b3f549c 100644 --- a/internal/services/lakeformation/store.go +++ b/internal/services/lakeformation/store.go @@ -183,7 +183,7 @@ func (s *Store) ListLFTags(catalogID string) ([]LFTag, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var tags []LFTag for rows.Next() { var t LFTag @@ -254,7 +254,7 @@ func (s *Store) ListLFTagExpressions(catalogID string) ([]LFTagExpression, error if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var exprs []LFTagExpression for rows.Next() { var e LFTagExpression @@ -328,7 +328,7 @@ func (s *Store) ListResources() ([]Resource, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var resources []Resource for rows.Next() { var r Resource @@ -385,7 +385,7 @@ func (s *Store) ListPermissions() ([]Permission, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var perms []Permission for rows.Next() { var p Permission @@ -486,7 +486,7 @@ func (s *Store) ListDataCellsFilters() ([]DataCellsFilter, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var filters []DataCellsFilter for rows.Next() { var f DataCellsFilter diff --git a/internal/services/lambda/eventsource.go b/internal/services/lambda/eventsource.go index 6ad1b57..300c0af 100644 --- a/internal/services/lambda/eventsource.go +++ b/internal/services/lambda/eventsource.go @@ -107,11 +107,11 @@ func (p *EventSourcePoller) pollSQS(ctx context.Context, m EventSourceMapping) { resp, err := http.DefaultClient.Do(req) if err != nil || resp.StatusCode != http.StatusOK { if resp != nil { - resp.Body.Close() + _ = resp.Body.Close() } return } - defer resp.Body.Close() + defer func() { _ = resp.Body.Close() }() var result struct { Messages []struct { @@ -150,12 +150,12 @@ func (p *EventSourcePoller) pollSQS(ctx context.Context, m EventSourceMapping) { invokeResp, err := http.DefaultClient.Do(invokeReq) if err != nil || invokeResp.StatusCode != http.StatusOK { if invokeResp != nil { - invokeResp.Body.Close() + _ = invokeResp.Body.Close() } slog.Warn("lambda invoke failed for SQS event", "function", m.FunctionName, "err", err) return } - invokeResp.Body.Close() + _ = invokeResp.Body.Close() // Delete messages on successful invocation. for _, msg := range result.Messages { @@ -171,7 +171,7 @@ func (p *EventSourcePoller) pollSQS(ctx context.Context, m EventSourceMapping) { delReq.Header.Set("X-Amz-Target", "AmazonSQS.DeleteMessage") delResp, err := http.DefaultClient.Do(delReq) if err == nil { - delResp.Body.Close() + _ = delResp.Body.Close() } } @@ -197,7 +197,7 @@ func (p *EventSourcePoller) pollDynamoDBStream(ctx context.Context, m EventSourc descResp, err := http.DefaultClient.Do(descReq) if err != nil || descResp.StatusCode != http.StatusOK { if descResp != nil { - descResp.Body.Close() + _ = descResp.Body.Close() } return } @@ -209,7 +209,7 @@ func (p *EventSourcePoller) pollDynamoDBStream(ctx context.Context, m EventSourc } `json:"StreamDescription"` } _ = json.NewDecoder(descResp.Body).Decode(&descOut) - descResp.Body.Close() + _ = descResp.Body.Close() if len(descOut.StreamDescription.Shards) == 0 { return } @@ -229,7 +229,7 @@ func (p *EventSourcePoller) pollDynamoDBStream(ctx context.Context, m EventSourc iterResp, err := http.DefaultClient.Do(iterReq) if err != nil || iterResp.StatusCode != http.StatusOK { if iterResp != nil { - iterResp.Body.Close() + _ = iterResp.Body.Close() } return } @@ -237,7 +237,7 @@ func (p *EventSourcePoller) pollDynamoDBStream(ctx context.Context, m EventSourc ShardIterator string `json:"ShardIterator"` } _ = json.NewDecoder(iterResp.Body).Decode(&iterOut) - iterResp.Body.Close() + _ = iterResp.Body.Close() if iterOut.ShardIterator == "" { return } @@ -260,7 +260,7 @@ func (p *EventSourcePoller) pollDynamoDBStream(ctx context.Context, m EventSourc recResp, err := http.DefaultClient.Do(recReq) if err != nil || recResp.StatusCode != http.StatusOK { if recResp != nil { - recResp.Body.Close() + _ = recResp.Body.Close() } return } @@ -268,7 +268,7 @@ func (p *EventSourcePoller) pollDynamoDBStream(ctx context.Context, m EventSourc Records []map[string]any `json:"Records"` } _ = json.NewDecoder(recResp.Body).Decode(&recOut) - recResp.Body.Close() + _ = recResp.Body.Close() if len(recOut.Records) == 0 { return } @@ -288,12 +288,12 @@ func (p *EventSourcePoller) pollDynamoDBStream(ctx context.Context, m EventSourc invokeResp, err := http.DefaultClient.Do(invokeReq) if err != nil || invokeResp.StatusCode != http.StatusOK { if invokeResp != nil { - invokeResp.Body.Close() + _ = invokeResp.Body.Close() } slog.Warn("lambda invoke failed for DynamoDB stream", "function", m.FunctionName, "err", err) return } - invokeResp.Body.Close() + _ = invokeResp.Body.Close() slog.Debug("processed DynamoDB stream records for lambda", "function", m.FunctionName, "count", len(recOut.Records)) } diff --git a/internal/services/lambda/eventsource_test.go b/internal/services/lambda/eventsource_test.go index c618eb3..90c6f09 100644 --- a/internal/services/lambda/eventsource_test.go +++ b/internal/services/lambda/eventsource_test.go @@ -15,7 +15,7 @@ func newTestStore(t *testing.T) *LambdaStore { dir := t.TempDir() store, err := NewLambdaStore(dir+"/lambda.db", dir+"/code") require.NoError(t, err) - t.Cleanup(func() { store.Close() }) + t.Cleanup(func() { _ = store.Close() }) return store } diff --git a/internal/services/lambda/store.go b/internal/services/lambda/store.go index 1f1b148..1debbde 100644 --- a/internal/services/lambda/store.go +++ b/internal/services/lambda/store.go @@ -255,7 +255,7 @@ func (s *LambdaStore) ListFunctions(accountID string) ([]FunctionInfo, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var functions []FunctionInfo for rows.Next() { @@ -495,7 +495,7 @@ func (s *LambdaStore) ListVersions(accountID, functionName string) ([]FunctionVe if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var versions []FunctionVersion for rows.Next() { @@ -609,7 +609,7 @@ func (s *LambdaStore) ListAliases(accountID, functionName string) ([]FunctionAli if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var aliases []FunctionAlias for rows.Next() { @@ -671,7 +671,7 @@ func (s *LambdaStore) GetPermissions(accountID, functionName string) ([]Function if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var perms []FunctionPermission for rows.Next() { @@ -723,7 +723,7 @@ func (s *LambdaStore) ListTags(functionARN string) (map[string]string, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() tags := make(map[string]string) for rows.Next() { @@ -855,7 +855,7 @@ func (s *LambdaStore) ListEventSourceMappings(accountID, functionName string) ([ if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var mappings []EventSourceMapping for rows.Next() { diff --git a/internal/services/lambda/store_test.go b/internal/services/lambda/store_test.go index c4caf24..84092f5 100644 --- a/internal/services/lambda/store_test.go +++ b/internal/services/lambda/store_test.go @@ -16,7 +16,7 @@ func newTestLambdaStore(t *testing.T) *LambdaStore { codeDir := t.TempDir() store, err := NewLambdaStore(dbPath, codeDir) require.NoError(t, err) - t.Cleanup(func() { store.Close() }) + t.Cleanup(func() { _ = store.Close() }) return store } diff --git a/internal/services/managedblockchain/provider.go b/internal/services/managedblockchain/provider.go index 676c5f0..358b526 100644 --- a/internal/services/managedblockchain/provider.go +++ b/internal/services/managedblockchain/provider.go @@ -336,7 +336,7 @@ func (p *Provider) createNetwork(params map[string]any) (*plugin.Response, error if rawTags, ok := params["Tags"].(map[string]any); ok { tags := toStringMap(rawTags) - p.store.tags.AddTags(arn, tags) + _ = p.store.tags.AddTags(arn, tags) } return shared.JSONResponse(http.StatusOK, map[string]any{"NetworkId": id}) @@ -374,7 +374,7 @@ func (p *Provider) deleteNetwork(id string) (*plugin.Response, error) { if err != nil { return shared.JSONError("ResourceNotFoundException", "network not found", http.StatusNotFound), nil } - p.store.tags.DeleteAllTags(n.ARN) + _ = p.store.tags.DeleteAllTags(n.ARN) if err := p.store.DeleteNetwork(id); err != nil { return shared.JSONError("ResourceNotFoundException", "network not found", http.StatusNotFound), nil } @@ -660,7 +660,7 @@ func (p *Provider) createAccessor(params map[string]any) (*plugin.Response, erro if rawTags, ok := params["Tags"].(map[string]any); ok { tags := toStringMap(rawTags) - p.store.tags.AddTags(arn, tags) + _ = p.store.tags.AddTags(arn, tags) } return shared.JSONResponse(http.StatusOK, map[string]any{ @@ -702,7 +702,7 @@ func (p *Provider) deleteAccessor(id string) (*plugin.Response, error) { if err != nil { return shared.JSONError("ResourceNotFoundException", "accessor not found", http.StatusNotFound), nil } - p.store.tags.DeleteAllTags(a.ARN) + _ = p.store.tags.DeleteAllTags(a.ARN) if err := p.store.DeleteAccessor(id); err != nil { return shared.JSONError("ResourceNotFoundException", "accessor not found", http.StatusNotFound), nil } diff --git a/internal/services/managedblockchain/provider_test.go b/internal/services/managedblockchain/provider_test.go index 2e0d35b..683b695 100644 --- a/internal/services/managedblockchain/provider_test.go +++ b/internal/services/managedblockchain/provider_test.go @@ -20,7 +20,7 @@ func newTestProvider(t *testing.T) *Provider { p := &Provider{} err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/managedblockchain/store.go b/internal/services/managedblockchain/store.go index 6089759..914bab2 100644 --- a/internal/services/managedblockchain/store.go +++ b/internal/services/managedblockchain/store.go @@ -176,7 +176,7 @@ func (s *Store) ListNetworks() ([]Network, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []Network for rows.Next() { n, err := scanNetwork(rows) @@ -226,7 +226,7 @@ func (s *Store) ListMembers(networkID string) ([]Member, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []Member for rows.Next() { m, err := scanMember(rows) @@ -301,7 +301,7 @@ func (s *Store) ListNodes(networkID, memberID string) ([]Node, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []Node for rows.Next() { n, err := scanNode(rows) @@ -378,7 +378,7 @@ func (s *Store) ListProposals(networkID string) ([]Proposal, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []Proposal for rows.Next() { p, err := scanProposal(rows) @@ -429,7 +429,7 @@ func (s *Store) ListAccessors() ([]Accessor, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []Accessor for rows.Next() { a, err := scanAccessor(rows) diff --git a/internal/services/mediaconvert/provider.go b/internal/services/mediaconvert/provider.go index b9a0a68..76b4600 100644 --- a/internal/services/mediaconvert/provider.go +++ b/internal/services/mediaconvert/provider.go @@ -548,7 +548,7 @@ func (p *MediaConvertProvider) handleGetPolicy() (*plugin.Response, error) { return nil, err } var v any - json.Unmarshal([]byte(policy), &v) + _ = json.Unmarshal([]byte(policy), &v) return mcResponse(http.StatusOK, map[string]any{"policy": v}) } @@ -562,7 +562,7 @@ func (p *MediaConvertProvider) handlePutPolicy(params map[string]any) (*plugin.R return nil, err } var v any - json.Unmarshal([]byte(policy), &v) + _ = json.Unmarshal([]byte(policy), &v) return mcResponse(http.StatusOK, map[string]any{"policy": v}) } @@ -575,7 +575,7 @@ func (p *MediaConvertProvider) handleDeletePolicy() (*plugin.Response, error) { func presetToMap(pr *MCPreset) map[string]any { var settings any - json.Unmarshal([]byte(pr.Settings), &settings) + _ = json.Unmarshal([]byte(pr.Settings), &settings) return map[string]any{ "name": pr.Name, "arn": pr.ARN, @@ -622,7 +622,7 @@ func jobToMap(j *MCJob) map[string]any { func jobTemplateToMap(t *MCJobTemplate) map[string]any { var settings any - json.Unmarshal([]byte(t.Settings), &settings) + _ = json.Unmarshal([]byte(t.Settings), &settings) return map[string]any{ "name": t.Name, "arn": t.ARN, diff --git a/internal/services/mediaconvert/provider_test.go b/internal/services/mediaconvert/provider_test.go index e89f569..6aaafd7 100644 --- a/internal/services/mediaconvert/provider_test.go +++ b/internal/services/mediaconvert/provider_test.go @@ -22,7 +22,7 @@ func newTestProvider(t *testing.T) *MediaConvertProvider { p := &MediaConvertProvider{} err := p.Init(plugin.PluginConfig{DataDir: dir}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } @@ -37,7 +37,7 @@ func mcReq(t *testing.T, p *MediaConvertProvider, method, path string, body map[ resp, err := p.HandleRequest(context.Background(), "", req) require.NoError(t, err) var result map[string]any - json.Unmarshal(resp.Body, &result) + _ = json.Unmarshal(resp.Body, &result) return result, resp.StatusCode } diff --git a/internal/services/mediaconvert/store.go b/internal/services/mediaconvert/store.go index a1db06d..281d178 100644 --- a/internal/services/mediaconvert/store.go +++ b/internal/services/mediaconvert/store.go @@ -193,7 +193,7 @@ func (s *Store) ListJobs(accountID string) ([]MCJob, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var jobs []MCJob for rows.Next() { var j MCJob @@ -251,7 +251,7 @@ func (s *Store) ListJobTemplates(accountID string) ([]MCJobTemplate, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var templates []MCJobTemplate for rows.Next() { var t MCJobTemplate @@ -324,7 +324,7 @@ func (s *Store) ListQueues(accountID string) ([]MCQueue, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var queues []MCQueue for rows.Next() { var q MCQueue @@ -452,7 +452,7 @@ func (s *Store) ListPresets(accountID string) ([]MCPreset, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var presets []MCPreset for rows.Next() { var p MCPreset @@ -531,7 +531,7 @@ func (s *Store) ListTags(arn string) (map[string]string, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() tags := map[string]string{} for rows.Next() { var k, v string diff --git a/internal/services/memorydb/provider.go b/internal/services/memorydb/provider.go index a96ca2b..8aee054 100644 --- a/internal/services/memorydb/provider.go +++ b/internal/services/memorydb/provider.go @@ -242,7 +242,7 @@ func (p *Provider) createCluster(params map[string]any) (*plugin.Response, error return nil, err } if rawTags, ok := params["Tags"].([]any); ok { - p.store.tags.AddTags(arn, parseTags(rawTags)) + _ = p.store.tags.AddTags(arn, parseTags(rawTags)) //nolint:errcheck } return shared.JSONResponse(http.StatusOK, map[string]any{"Cluster": clusterToMap(c)}) } @@ -308,7 +308,7 @@ func (p *Provider) deleteCluster(params map[string]any) (*plugin.Response, error if err != nil { return shared.JSONError("ClusterNotFoundFault", "cluster not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(c.ARN) + _ = p.store.tags.DeleteAllTags(c.ARN) //nolint:errcheck if err := p.store.DeleteCluster(name); err != nil { return shared.JSONError("ClusterNotFoundFault", "cluster not found", http.StatusBadRequest), nil } @@ -344,7 +344,7 @@ func (p *Provider) failoverShard(params map[string]any) (*plugin.Response, error if err != nil { return shared.JSONError("ClusterNotFoundFault", "cluster not found", http.StatusBadRequest), nil } - p.store.UpdateCluster(name, map[string]any{"status": "available"}) + p.store.UpdateCluster(name, map[string]any{"status": "available"}) //nolint:errcheck return shared.JSONResponse(http.StatusOK, map[string]any{"Cluster": clusterToMap(c)}) } @@ -369,7 +369,7 @@ func (p *Provider) createParameterGroup(params map[string]any) (*plugin.Response return nil, err } if rawTags, ok := params["Tags"].([]any); ok { - p.store.tags.AddTags(arn, parseTags(rawTags)) + _ = p.store.tags.AddTags(arn, parseTags(rawTags)) //nolint:errcheck } return shared.JSONResponse(http.StatusOK, map[string]any{"ParameterGroup": pgToMap(pg)}) } @@ -416,7 +416,7 @@ func (p *Provider) deleteParameterGroup(params map[string]any) (*plugin.Response if err != nil { return shared.JSONError("ParameterGroupNotFoundFault", "parameter group not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(pg.ARN) + _ = p.store.tags.DeleteAllTags(pg.ARN) //nolint:errcheck if err := p.store.DeleteParameterGroup(name); err != nil { return shared.JSONError("ParameterGroupNotFoundFault", "parameter group not found", http.StatusBadRequest), nil } @@ -465,7 +465,7 @@ func (p *Provider) createSubnetGroup(params map[string]any) (*plugin.Response, e return nil, err } if rawTags, ok := params["Tags"].([]any); ok { - p.store.tags.AddTags(arn, parseTags(rawTags)) + _ = p.store.tags.AddTags(arn, parseTags(rawTags)) //nolint:errcheck } return shared.JSONResponse(http.StatusOK, map[string]any{"SubnetGroup": sgToMap(sg)}) } @@ -517,7 +517,7 @@ func (p *Provider) deleteSubnetGroup(params map[string]any) (*plugin.Response, e if err != nil { return shared.JSONError("SubnetGroupNotFoundFault", "subnet group not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(sg.ARN) + _ = p.store.tags.DeleteAllTags(sg.ARN) //nolint:errcheck if err := p.store.DeleteSubnetGroup(name); err != nil { return shared.JSONError("SubnetGroupNotFoundFault", "subnet group not found", http.StatusBadRequest), nil } @@ -548,7 +548,7 @@ func (p *Provider) createACL(params map[string]any) (*plugin.Response, error) { return nil, err } if rawTags, ok := params["Tags"].([]any); ok { - p.store.tags.AddTags(arn, parseTags(rawTags)) + _ = p.store.tags.AddTags(arn, parseTags(rawTags)) //nolint:errcheck } return shared.JSONResponse(http.StatusOK, map[string]any{"ACL": aclToMap(a)}) } @@ -610,7 +610,7 @@ func (p *Provider) deleteACL(params map[string]any) (*plugin.Response, error) { if err != nil { return shared.JSONError("ACLNotFoundFault", "ACL not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(a.ARN) + _ = p.store.tags.DeleteAllTags(a.ARN) //nolint:errcheck if err := p.store.DeleteACL(name); err != nil { return shared.JSONError("ACLNotFoundFault", "ACL not found", http.StatusBadRequest), nil } @@ -648,7 +648,7 @@ func (p *Provider) createUser(params map[string]any) (*plugin.Response, error) { return nil, err } if rawTags, ok := params["Tags"].([]any); ok { - p.store.tags.AddTags(arn, parseTags(rawTags)) + _ = p.store.tags.AddTags(arn, parseTags(rawTags)) //nolint:errcheck } return shared.JSONResponse(http.StatusOK, map[string]any{"User": userToMap(u)}) } @@ -700,7 +700,7 @@ func (p *Provider) deleteUser(params map[string]any) (*plugin.Response, error) { if err != nil { return shared.JSONError("UserNotFoundFault", "user not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(u.ARN) + _ = p.store.tags.DeleteAllTags(u.ARN) //nolint:errcheck if err := p.store.DeleteUser(name); err != nil { return shared.JSONError("UserNotFoundFault", "user not found", http.StatusBadRequest), nil } @@ -737,7 +737,7 @@ func (p *Provider) createSnapshot(params map[string]any) (*plugin.Response, erro return nil, err } if rawTags, ok := params["Tags"].([]any); ok { - p.store.tags.AddTags(arn, parseTags(rawTags)) + _ = p.store.tags.AddTags(arn, parseTags(rawTags)) //nolint:errcheck } return shared.JSONResponse(http.StatusOK, map[string]any{"Snapshot": snapToMap(snap)}) } @@ -800,7 +800,7 @@ func (p *Provider) deleteSnapshot(params map[string]any) (*plugin.Response, erro if err != nil { return shared.JSONError("SnapshotNotFoundFault", "snapshot not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(snap.ARN) + _ = p.store.tags.DeleteAllTags(snap.ARN) //nolint:errcheck if err := p.store.DeleteSnapshot(name); err != nil { return shared.JSONError("SnapshotNotFoundFault", "snapshot not found", http.StatusBadRequest), nil } @@ -901,7 +901,7 @@ func aclToMap(a *ACL) map[string]any { func userToMap(u *User) map[string]any { var auth any - json.Unmarshal([]byte(u.Auth), &auth) + _ = json.Unmarshal([]byte(u.Auth), &auth) return map[string]any{ "Name": u.Name, "ARN": u.ARN, diff --git a/internal/services/memorydb/provider_test.go b/internal/services/memorydb/provider_test.go index 82dbe25..28e3176 100644 --- a/internal/services/memorydb/provider_test.go +++ b/internal/services/memorydb/provider_test.go @@ -19,7 +19,7 @@ func newTestProvider(t *testing.T) *Provider { t.Helper() p := &Provider{} require.NoError(t, p.Init(plugin.PluginConfig{DataDir: t.TempDir()})) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/memorydb/store.go b/internal/services/memorydb/store.go index 8a11527..d60e94a 100644 --- a/internal/services/memorydb/store.go +++ b/internal/services/memorydb/store.go @@ -149,7 +149,7 @@ func NewStore(dataDir string) (*Store, error) { func (s *Store) Close() error { return s.store.Close() } func isUnique(err error) bool { - return err != nil && errors.Is(err, sql.ErrNoRows) == false && + return err != nil && !errors.Is(err, sql.ErrNoRows) && containsStr(err.Error(), "UNIQUE constraint failed") } @@ -194,7 +194,7 @@ func (s *Store) ListClusters() ([]Cluster, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Cluster for rows.Next() { c, err := scanCluster(rows) @@ -287,7 +287,7 @@ func (s *Store) ListParameterGroups() ([]ParameterGroup, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []ParameterGroup for rows.Next() { pg, err := scanPG(rows) @@ -358,7 +358,7 @@ func (s *Store) ListSubnetGroups() ([]SubnetGroup, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []SubnetGroup for rows.Next() { sg, err := scanSG(rows) @@ -437,7 +437,7 @@ func (s *Store) ListACLs() ([]ACL, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []ACL for rows.Next() { a, err := scanACL(rows) @@ -508,7 +508,7 @@ func (s *Store) ListUsers() ([]User, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []User for rows.Next() { u, err := scanUser(rows) @@ -590,7 +590,7 @@ func (s *Store) ListSnapshots(clusterName string) ([]Snapshot, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Snapshot for rows.Next() { snap, err := scanSnapshot(rows) @@ -648,7 +648,7 @@ func marshalStringSlice(ss []string) string { func unmarshalStringSlice(s string) []string { var out []string - json.Unmarshal([]byte(s), &out) + _ = json.Unmarshal([]byte(s), &out) return out } diff --git a/internal/services/mq/provider.go b/internal/services/mq/provider.go index cc13c7a..f7c90a2 100644 --- a/internal/services/mq/provider.go +++ b/internal/services/mq/provider.go @@ -333,7 +333,7 @@ func (p *Provider) createBroker(params map[string]any) (*plugin.Response, error) // Handle tags if rawTags, ok := params["tags"].(map[string]any); ok { tags := toStringMap(rawTags) - p.store.tags.AddTags(arn, tags) + _ = p.store.tags.AddTags(arn, tags) } // Handle initial users @@ -349,7 +349,7 @@ func (p *Provider) createBroker(params map[string]any) (*plugin.Response, error) Password: pw, Groups: []string{}, } - p.store.CreateUser(u) + p.store.CreateUser(u) //nolint:errcheck } } } @@ -428,7 +428,7 @@ func (p *Provider) deleteBroker(id string) (*plugin.Response, error) { if err != nil { return shared.JSONError("NotFoundException", "broker not found", http.StatusNotFound), nil } - p.store.tags.DeleteAllTags(b.ARN) + _ = p.store.tags.DeleteAllTags(b.ARN) if err := p.store.DeleteBroker(id); err != nil { return shared.JSONError("NotFoundException", "broker not found", http.StatusNotFound), nil } @@ -496,7 +496,7 @@ func (p *Provider) createConfiguration(params map[string]any) (*plugin.Response, } if rawTags, ok := params["tags"].(map[string]any); ok { - p.store.tags.AddTags(arn, toStringMap(rawTags)) + _ = p.store.tags.AddTags(arn, toStringMap(rawTags)) //nolint:errcheck } return shared.JSONResponse(http.StatusOK, map[string]any{ @@ -605,7 +605,7 @@ func (p *Provider) deleteConfiguration(id string) (*plugin.Response, error) { if err != nil { return shared.JSONError("NotFoundException", "configuration not found", http.StatusNotFound), nil } - p.store.tags.DeleteAllTags(c.ARN) + _ = p.store.tags.DeleteAllTags(c.ARN) if err := p.store.DeleteConfiguration(id); err != nil { return shared.JSONError("NotFoundException", "configuration not found", http.StatusNotFound), nil } diff --git a/internal/services/mq/provider_test.go b/internal/services/mq/provider_test.go index 5d15921..8c6ad28 100644 --- a/internal/services/mq/provider_test.go +++ b/internal/services/mq/provider_test.go @@ -20,7 +20,7 @@ func newTestProvider(t *testing.T) *Provider { p := &Provider{} err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/mq/store.go b/internal/services/mq/store.go index 6cce159..d606622 100644 --- a/internal/services/mq/store.go +++ b/internal/services/mq/store.go @@ -151,7 +151,7 @@ func (s *Store) ListBrokers() ([]Broker, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var brokers []Broker for rows.Next() { b, err := scanBroker(rows) @@ -201,7 +201,7 @@ func (s *Store) DeleteBroker(id string) error { return errBrokerNotFound } // cascade delete users - s.store.DB().Exec(`DELETE FROM broker_users WHERE broker_id = ?`, id) + _, _ = s.store.DB().Exec(`DELETE FROM broker_users WHERE broker_id = ?`, id) return nil } @@ -231,7 +231,7 @@ func (s *Store) ListConfigurations() ([]MQConfiguration, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var cfgs []MQConfiguration for rows.Next() { c, err := scanConfiguration(rows) @@ -302,7 +302,7 @@ func (s *Store) ListUsers(brokerID string) ([]BrokerUser, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var users []BrokerUser for rows.Next() { u, err := scanUser(rows) @@ -385,7 +385,7 @@ func scanBroker(sc scanner) (*Broker, error) { b.PubliclyAccessible = publicly != 0 b.AutoMinorUpgrade = autoMinor != 0 b.CreatedAt = time.Unix(createdAt, 0) - json.Unmarshal([]byte(endpointsJSON), &b.Endpoints) + _ = json.Unmarshal([]byte(endpointsJSON), &b.Endpoints) if b.Endpoints == nil { b.Endpoints = []string{} } @@ -421,7 +421,7 @@ func scanUser(sc scanner) (*BrokerUser, error) { return nil, err } u.ConsoleAccess = consoleAccess != 0 - json.Unmarshal([]byte(groupsJSON), &u.Groups) + _ = json.Unmarshal([]byte(groupsJSON), &u.Groups) if u.Groups == nil { u.Groups = []string{} } diff --git a/internal/services/mwaa/provider.go b/internal/services/mwaa/provider.go index 16dc05e..f57386b 100644 --- a/internal/services/mwaa/provider.go +++ b/internal/services/mwaa/provider.go @@ -397,7 +397,7 @@ func (p *Provider) createEnvironment(name string, params map[string]any) (*plugi tags[k] = s } } - p.store.tags.AddTags(arn, tags) + _ = p.store.tags.AddTags(arn, tags) } return shared.JSONResponse(http.StatusOK, map[string]any{"Arn": arn}) @@ -453,7 +453,7 @@ func (p *Provider) deleteEnvironment(name string) (*plugin.Response, error) { if err != nil { return shared.JSONError("ResourceNotFoundException", "environment not found", http.StatusNotFound), nil } - p.store.tags.DeleteAllTags(e.ARN) + _ = p.store.tags.DeleteAllTags(e.ARN) if err := p.store.DeleteEnvironment(name); err != nil { return shared.JSONError("ResourceNotFoundException", "environment not found", http.StatusNotFound), nil } @@ -479,7 +479,7 @@ func (p *Provider) getEnvironmentConfig(name string) (*plugin.Response, error) { return shared.JSONError("ResourceNotFoundException", "environment not found", http.StatusNotFound), nil } var cfg map[string]any - json.Unmarshal([]byte(e.Config), &cfg) + _ = json.Unmarshal([]byte(e.Config), &cfg) return shared.JSONResponse(http.StatusOK, map[string]any{ "AirflowConfigurationOptions": cfg, }) @@ -810,7 +810,7 @@ func (p *Provider) bulkSetVariables(env string, params map[string]any) []string if e, ok := vm["IsEncrypted"].(bool); ok { enc = e } - p.store.SetVariable(&Variable{ + _ = p.store.SetVariable(&Variable{ EnvironmentName: env, Key: key, Value: value, @@ -832,7 +832,7 @@ func (p *Provider) deleteVariables(req *http.Request, params map[string]any) (*p if raw, ok := params["VariableNames"].([]any); ok { for _, n := range raw { if key, ok := n.(string); ok { - p.store.DeleteVariable(env, key) + p.store.DeleteVariable(env, key) //nolint:errcheck deleted = append(deleted, key) } } @@ -932,7 +932,7 @@ func dagToMap(d *DAG) map[string]any { func dagRunToMap(r *DagRun) map[string]any { var conf map[string]any - json.Unmarshal([]byte(r.Conf), &conf) + _ = json.Unmarshal([]byte(r.Conf), &conf) return map[string]any{ "DagId": r.DagID, "EnvironmentName": r.EnvironmentName, diff --git a/internal/services/mwaa/provider_test.go b/internal/services/mwaa/provider_test.go index f2e86fb..96997f8 100644 --- a/internal/services/mwaa/provider_test.go +++ b/internal/services/mwaa/provider_test.go @@ -20,7 +20,7 @@ func newTestProvider(t *testing.T) *Provider { p := &Provider{} err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/mwaa/store.go b/internal/services/mwaa/store.go index 702a760..41858c4 100644 --- a/internal/services/mwaa/store.go +++ b/internal/services/mwaa/store.go @@ -169,7 +169,7 @@ func (s *Store) ListEnvironments() ([]Environment, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var envs []Environment for rows.Next() { e, err := scanEnvironment(rows) @@ -298,7 +298,7 @@ func (s *Store) ListDags(env string) ([]DAG, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var dags []DAG for rows.Next() { d, err := scanDag(rows) @@ -402,7 +402,7 @@ func (s *Store) ListDagRuns(env, dagID string) ([]DagRun, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var runs []DagRun for rows.Next() { r, err := scanDagRun(rows) @@ -491,7 +491,7 @@ func (s *Store) ListVariables(env string) ([]Variable, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var list []Variable for rows.Next() { var v Variable diff --git a/internal/services/neptune/provider_test.go b/internal/services/neptune/provider_test.go index e290be0..fa98906 100644 --- a/internal/services/neptune/provider_test.go +++ b/internal/services/neptune/provider_test.go @@ -19,7 +19,7 @@ func newTestProvider(t *testing.T) *Provider { t.Helper() p := &Provider{} require.NoError(t, p.Init(plugin.PluginConfig{DataDir: t.TempDir()})) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/neptune/store.go b/internal/services/neptune/store.go index 9ac73fd..33e7349 100644 --- a/internal/services/neptune/store.go +++ b/internal/services/neptune/store.go @@ -239,7 +239,7 @@ func (s *Store) ListClusters(ids []string) ([]DBCluster, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var clusters []DBCluster for rows.Next() { c, err := scanCluster(rows) @@ -331,7 +331,7 @@ func (s *Store) ListInstances(ids []string) ([]DBInstance, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var instances []DBInstance for rows.Next() { inst, err := scanInstance(rows) @@ -412,7 +412,7 @@ func (s *Store) ListSnapshots(clusterID string) ([]ClusterSnapshot, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var snaps []ClusterSnapshot for rows.Next() { sn, err := scanSnapshot(rows) @@ -474,7 +474,7 @@ func (s *Store) ListSubnetGroups(names []string) ([]SubnetGroup, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var groups []SubnetGroup for rows.Next() { sg, err := scanSubnetGroup(rows) @@ -551,7 +551,7 @@ func (s *Store) ListClusterParamGroups(names []string) ([]ClusterParamGroup, err if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var groups []ClusterParamGroup for rows.Next() { pg, err := scanClusterParamGroup(rows) @@ -613,7 +613,7 @@ func (s *Store) ListDBParamGroups(names []string) ([]DBParamGroup, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var groups []DBParamGroup for rows.Next() { pg, err := scanDBParamGroup(rows) @@ -684,7 +684,7 @@ func (s *Store) ListClusterEndpoints(clusterID string) ([]ClusterEndpoint, error if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var endpoints []ClusterEndpoint for rows.Next() { ep, err := scanClusterEndpoint(rows) diff --git a/internal/services/opensearch/provider.go b/internal/services/opensearch/provider.go index 8dd0d0b..47e3ca0 100644 --- a/internal/services/opensearch/provider.go +++ b/internal/services/opensearch/provider.go @@ -297,7 +297,7 @@ func (p *Provider) createDomain(params map[string]any) (*plugin.Response, error) } if rawTags, ok := params["TagList"].([]any); ok { - p.store.tags.AddTags(d.ARN, parseTags(rawTags)) + _ = p.store.tags.AddTags(d.ARN, parseTags(rawTags)) } return shared.JSONResponse(http.StatusOK, map[string]any{ @@ -313,7 +313,7 @@ func (p *Provider) deleteDomain(name string) (*plugin.Response, error) { if err != nil { return shared.JSONError("ResourceNotFoundException", "domain not found", http.StatusNotFound), nil } - p.store.tags.DeleteAllTags(d.ARN) + _ = p.store.tags.DeleteAllTags(d.ARN) if err := p.store.DeleteDomain(name); err != nil { return shared.JSONError("ResourceNotFoundException", "domain not found", http.StatusNotFound), nil } @@ -381,7 +381,7 @@ func (p *Provider) updateDomainConfig(name string, params map[string]any) (*plug } var existing map[string]any - json.Unmarshal([]byte(d.Config), &existing) + _ = json.Unmarshal([]byte(d.Config), &existing) if existing == nil { existing = map[string]any{} } @@ -429,7 +429,7 @@ func (p *Provider) createApplication(params map[string]any) (*plugin.Response, e } if rawTags, ok := params["tagList"].([]any); ok { - p.store.tags.AddTags(app.ARN, parseTags(rawTags)) + _ = p.store.tags.AddTags(app.ARN, parseTags(rawTags)) } return shared.JSONResponse(http.StatusOK, map[string]any{ @@ -488,7 +488,7 @@ func (p *Provider) updateApplication(id string, params map[string]any) (*plugin. } var existing map[string]any - json.Unmarshal([]byte(app.Config), &existing) + _ = json.Unmarshal([]byte(app.Config), &existing) if existing == nil { existing = map[string]any{} } @@ -643,7 +643,7 @@ func domainToStatus(d *Domain) map[string]any { func domainToConfig(d *Domain) map[string]any { var cfg map[string]any - json.Unmarshal([]byte(d.Config), &cfg) + _ = json.Unmarshal([]byte(d.Config), &cfg) if cfg == nil { cfg = map[string]any{} } diff --git a/internal/services/opensearch/provider_test.go b/internal/services/opensearch/provider_test.go index 030402f..494c39b 100644 --- a/internal/services/opensearch/provider_test.go +++ b/internal/services/opensearch/provider_test.go @@ -20,7 +20,7 @@ func newTestProvider(t *testing.T) *Provider { p := &Provider{} err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } @@ -168,7 +168,7 @@ func TestTags(t *testing.T) { require.NoError(t, err) assert.Equal(t, 200, listResp.StatusCode) var listBody map[string]any - json.Unmarshal(listResp.Body, &listBody) + _ = json.Unmarshal(listResp.Body, &listBody) tagList := listBody["TagList"].([]any) assert.Len(t, tagList, 2) @@ -181,7 +181,7 @@ func TestTags(t *testing.T) { req2 := httptest.NewRequest("GET", "/2021-01-01/tags?arn="+arn, nil) listResp2, _ := p.HandleRequest(context.Background(), "ListTags", req2) var listBody2 map[string]any - json.Unmarshal(listResp2.Body, &listBody2) + _ = json.Unmarshal(listResp2.Body, &listBody2) assert.Len(t, listBody2["TagList"].([]any), 1) } diff --git a/internal/services/opensearch/store.go b/internal/services/opensearch/store.go index ff5b774..40dd013 100644 --- a/internal/services/opensearch/store.go +++ b/internal/services/opensearch/store.go @@ -114,7 +114,7 @@ func (s *Store) ListDomains() ([]Domain, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var domains []Domain for rows.Next() { d, err := scanDomain(rows) @@ -184,7 +184,7 @@ func (s *Store) ListApplications() ([]Application, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var apps []Application for rows.Next() { a, err := scanApplication(rows) diff --git a/internal/services/organizations/provider.go b/internal/services/organizations/provider.go index 59d509a..0707639 100644 --- a/internal/services/organizations/provider.go +++ b/internal/services/organizations/provider.go @@ -865,7 +865,7 @@ func orgToMap(org *Organization) map[string]any { func rootToMap(r *Root) map[string]any { var policyTypes []any - json.Unmarshal([]byte(r.PolicyTypes), &policyTypes) //nolint:errcheck + _ = json.Unmarshal([]byte(r.PolicyTypes), &policyTypes) //nolint:errcheck if policyTypes == nil { policyTypes = []any{} } @@ -930,7 +930,7 @@ func parseTags(rawTags []any) map[string]string { func parseJSONStringArray(s string) []string { var out []string - json.Unmarshal([]byte(s), &out) //nolint:errcheck + _ = json.Unmarshal([]byte(s), &out) //nolint:errcheck return out } diff --git a/internal/services/organizations/provider_test.go b/internal/services/organizations/provider_test.go index 4427f8f..7d4c419 100644 --- a/internal/services/organizations/provider_test.go +++ b/internal/services/organizations/provider_test.go @@ -24,7 +24,7 @@ func newTestProvider(t *testing.T) *Provider { } t.Cleanup(func() { p.Shutdown(context.Background()) //nolint:errcheck - os.RemoveAll(dir) + _ = os.RemoveAll(dir) }) return p } diff --git a/internal/services/organizations/store.go b/internal/services/organizations/store.go index c9f7b69..959ae98 100644 --- a/internal/services/organizations/store.go +++ b/internal/services/organizations/store.go @@ -197,7 +197,7 @@ func (s *Store) ListRoots() ([]Root, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Root for rows.Next() { r, err := scanRoot(rows) @@ -259,7 +259,7 @@ func (s *Store) ListAccounts() ([]Account, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() return scanAccounts(rows) } @@ -271,7 +271,7 @@ func (s *Store) ListAccountsForParent(parentID string) ([]Account, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() return scanAccounts(rows) } @@ -344,7 +344,7 @@ func (s *Store) ListOUsForParent(parentID string) ([]OU, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []OU for rows.Next() { ou, err := scanOU(rows) @@ -439,7 +439,7 @@ func (s *Store) ListPolicies(policyType string) ([]Policy, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Policy for rows.Next() { p, err := scanPolicy(rows) @@ -518,7 +518,7 @@ func (s *Store) ListPoliciesForTarget(targetID, policyType string) ([]Policy, er if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Policy for rows.Next() { p, err := scanPolicy(rows) @@ -536,7 +536,7 @@ func (s *Store) ListTargetsForPolicy(policyID string) ([]string, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []string for rows.Next() { var t string diff --git a/internal/services/pinpoint/provider.go b/internal/services/pinpoint/provider.go index 960598c..b239dca 100644 --- a/internal/services/pinpoint/provider.go +++ b/internal/services/pinpoint/provider.go @@ -822,8 +822,8 @@ func resolveOp(method, path string) string { return "ListTemplates" case n == 3 && seg[0] == "templates": kind := seg[2] // "email" or "sms" - switch { - case kind == "email": + switch kind { + case "email": switch method { case http.MethodPost: return "CreateEmailTemplate" @@ -834,7 +834,7 @@ func resolveOp(method, path string) string { case http.MethodDelete: return "DeleteEmailTemplate" } - case kind == "sms": + case "sms": switch method { case http.MethodPost: return "CreateSmsTemplate" diff --git a/internal/services/pinpoint/provider_test.go b/internal/services/pinpoint/provider_test.go index acbd934..f47f47d 100644 --- a/internal/services/pinpoint/provider_test.go +++ b/internal/services/pinpoint/provider_test.go @@ -20,7 +20,7 @@ func newTestProvider(t *testing.T) *Provider { p := &Provider{} err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/pinpoint/store.go b/internal/services/pinpoint/store.go index b6fc440..e91b642 100644 --- a/internal/services/pinpoint/store.go +++ b/internal/services/pinpoint/store.go @@ -181,7 +181,7 @@ func (s *Store) ListApps() ([]App, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []App for rows.Next() { a, err := scanApp(rows) @@ -256,7 +256,7 @@ func (s *Store) ListCampaigns(appID string) ([]Campaign, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Campaign for rows.Next() { c, err := scanCampaign(rows) @@ -339,7 +339,7 @@ func (s *Store) ListSegments(appID string) ([]Segment, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Segment for rows.Next() { seg, err := scanSegment(rows) @@ -420,7 +420,7 @@ func (s *Store) ListJourneys(appID string) ([]Journey, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Journey for rows.Next() { j, err := scanJourney(rows) @@ -516,7 +516,7 @@ func (s *Store) ListTemplates() ([]Template, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Template for rows.Next() { t, err := scanTemplate(rows) diff --git a/internal/services/pipes/provider.go b/internal/services/pipes/provider.go index c309914..644d569 100644 --- a/internal/services/pipes/provider.go +++ b/internal/services/pipes/provider.go @@ -220,7 +220,7 @@ func (p *PipesProvider) handleCreatePipe(req *http.Request) (*plugin.Response, e tags[k] = s } } - p.store.PutTags(arn, tags) + p.store.PutTags(arn, tags) //nolint:errcheck } return shared.JSONResponse(http.StatusCreated, pipeToResponse(pipe)) @@ -360,7 +360,7 @@ func (p *PipesProvider) handleStartPipe(req *http.Request) (*plugin.Response, er return nil, err } - p.store.UpdatePipeState(name, shared.DefaultAccountID, "RUNNING") + p.store.UpdatePipeState(name, shared.DefaultAccountID, "RUNNING") //nolint:errcheck pipe.State = "RUNNING" return shared.JSONResponse(http.StatusOK, pipeToResponse(pipe)) } @@ -379,7 +379,7 @@ func (p *PipesProvider) handleStopPipe(req *http.Request) (*plugin.Response, err return nil, err } - p.store.UpdatePipeState(name, shared.DefaultAccountID, "STOPPED") + p.store.UpdatePipeState(name, shared.DefaultAccountID, "STOPPED") //nolint:errcheck pipe.State = "STOPPED" return shared.JSONResponse(http.StatusOK, pipeToResponse(pipe)) } @@ -393,7 +393,7 @@ func (p *PipesProvider) handleTagResource(req *http.Request) (*plugin.Response, body, _ := io.ReadAll(req.Body) var params map[string]any if len(body) > 0 { - json.Unmarshal(body, ¶ms) + _ = json.Unmarshal(body, ¶ms) } else { params = map[string]any{} } diff --git a/internal/services/pipes/provider_test.go b/internal/services/pipes/provider_test.go index ebab4f6..61a2836 100644 --- a/internal/services/pipes/provider_test.go +++ b/internal/services/pipes/provider_test.go @@ -20,7 +20,7 @@ func newTestProvider(t *testing.T) *PipesProvider { p := &PipesProvider{} err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/pipes/store.go b/internal/services/pipes/store.go index e3dbe07..ce2ecd5 100644 --- a/internal/services/pipes/store.go +++ b/internal/services/pipes/store.go @@ -97,7 +97,7 @@ func (s *Store) ListPipes(accountID string) ([]Pipe, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var pipes []Pipe for rows.Next() { pipe, err := scanPipe(rows) @@ -171,7 +171,7 @@ func (s *Store) GetTags(pipeARN string) (map[string]string, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() tags := map[string]string{} for rows.Next() { var k, v string diff --git a/internal/services/ram/provider.go b/internal/services/ram/provider.go index a68aba7..b3793ac 100644 --- a/internal/services/ram/provider.go +++ b/internal/services/ram/provider.go @@ -251,7 +251,7 @@ func (p *Provider) createResourceShare(params map[string]any) (*plugin.Response, if rawTags, ok := params["tags"].([]any); ok { tags := parseTagList(rawTags) - p.store.tags.AddTags(arn, tags) + _ = p.store.tags.AddTags(arn, tags) } created, _ := p.store.GetShare(arn) @@ -302,7 +302,7 @@ func (p *Provider) deleteResourceShare(req *http.Request) (*plugin.Response, err if err != nil { return shared.JSONError("UnknownResourceException", "resource share not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(rs.ARN) + _ = p.store.tags.DeleteAllTags(rs.ARN) if err := p.store.DeleteShare(arn); err != nil { return shared.JSONError("UnknownResourceException", "resource share not found", http.StatusBadRequest), nil } @@ -330,7 +330,7 @@ func (p *Provider) associateResourceShare(params map[string]any) (*plugin.Respon Type: "RESOURCE", Status: "ASSOCIATED", } - p.store.AddAssociation(a) + p.store.AddAssociation(a) //nolint:errcheck assocs = append(assocs, assocToMap(a)) } } @@ -346,7 +346,7 @@ func (p *Provider) associateResourceShare(params map[string]any) (*plugin.Respon Type: "PRINCIPAL", Status: "ASSOCIATED", } - p.store.AddAssociation(a) + p.store.AddAssociation(a) //nolint:errcheck assocs = append(assocs, assocToMap(a)) } } @@ -365,13 +365,13 @@ func (p *Provider) disassociateResourceShare(params map[string]any) (*plugin.Res if resources, ok := params["resourceArns"].([]any); ok { for _, r := range resources { rArn, _ := r.(string) - p.store.DeleteAssociation(shareARN, rArn) + p.store.DeleteAssociation(shareARN, rArn) //nolint:errcheck } } if principals, ok := params["principals"].([]any); ok { for _, pr := range principals { prStr, _ := pr.(string) - p.store.DeleteAssociation(shareARN, prStr) + p.store.DeleteAssociation(shareARN, prStr) //nolint:errcheck } } @@ -425,7 +425,7 @@ func (p *Provider) acceptResourceShareInvitation(params map[string]any) (*plugin if inv.Status != "PENDING" { return shared.JSONError("ResourceShareInvitationAlreadyAcceptedException", "invitation already processed", http.StatusBadRequest), nil } - p.store.UpdateInvitationStatus(invARN, "ACCEPTED") + p.store.UpdateInvitationStatus(invARN, "ACCEPTED") //nolint:errcheck inv.Status = "ACCEPTED" return shared.JSONResponse(http.StatusOK, map[string]any{ "resourceShareInvitation": invToMap(inv), @@ -444,7 +444,7 @@ func (p *Provider) rejectResourceShareInvitation(params map[string]any) (*plugin if inv.Status != "PENDING" { return shared.JSONError("ResourceShareInvitationAlreadyRejectedException", "invitation already processed", http.StatusBadRequest), nil } - p.store.UpdateInvitationStatus(invARN, "REJECTED") + p.store.UpdateInvitationStatus(invARN, "REJECTED") //nolint:errcheck inv.Status = "REJECTED" return shared.JSONResponse(http.StatusOK, map[string]any{ "resourceShareInvitation": invToMap(inv), @@ -479,7 +479,7 @@ func (p *Provider) createPermission(params map[string]any) (*plugin.Response, er if rawTags, ok := params["tags"].([]any); ok { tags := parseTagList(rawTags) - p.store.tags.AddTags(arn, tags) + _ = p.store.tags.AddTags(arn, tags) } return shared.JSONResponse(http.StatusOK, map[string]any{ @@ -561,11 +561,8 @@ func (p *Provider) deletePermissionVersion(req *http.Request) (*plugin.Response, return shared.JSONResponse(http.StatusOK, map[string]any{"returnValue": true, "permissionStatus": "DELETED"}) } -func (p *Provider) listResourceSharePermissions(req *http.Request, params map[string]any) (*plugin.Response, error) { - shareARN, _ := params["resourceShareArn"].(string) - if shareARN == "" { - shareARN = extractPathParam(req.URL.Path, "resourceshares") - } +func (p *Provider) listResourceSharePermissions(_ *http.Request, params map[string]any) (*plugin.Response, error) { + _ = params return shared.JSONResponse(http.StatusOK, map[string]any{ "permissions": []any{}, }) @@ -617,7 +614,7 @@ func (p *Provider) promotePermissionCreatedFromPolicy(params map[string]any) (*p Name: name, Status: "ATTACHABLE", } - p.store.CreatePermission(perm) + p.store.CreatePermission(perm) //nolint:errcheck return shared.JSONResponse(http.StatusOK, map[string]any{ "permission": permToMap(perm), }) diff --git a/internal/services/ram/provider_test.go b/internal/services/ram/provider_test.go index 1522e27..3a07cd2 100644 --- a/internal/services/ram/provider_test.go +++ b/internal/services/ram/provider_test.go @@ -20,7 +20,7 @@ func newTestProvider(t *testing.T) *Provider { p := &Provider{} err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/ram/store.go b/internal/services/ram/store.go index fccbdee..55f097f 100644 --- a/internal/services/ram/store.go +++ b/internal/services/ram/store.go @@ -155,7 +155,7 @@ func (s *Store) ListShares(status string) ([]ResourceShare, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var shares []ResourceShare for rows.Next() { rs, err := scanShare(rows) @@ -238,7 +238,7 @@ func (s *Store) ListAssociations(shareARN, assocType string) ([]ShareAssociation if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var assocs []ShareAssociation for rows.Next() { var a ShareAssociation @@ -291,7 +291,7 @@ func (s *Store) ListInvitations(shareARN string) ([]ShareInvitation, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var invs []ShareInvitation for rows.Next() { inv, err := scanInvitation(rows) @@ -351,7 +351,7 @@ func (s *Store) ListPermissions(resourceType string) ([]Permission, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var perms []Permission for rows.Next() { perm, err := scanPermission(rows) diff --git a/internal/services/rds/provider_test.go b/internal/services/rds/provider_test.go index aa96faf..7a26127 100644 --- a/internal/services/rds/provider_test.go +++ b/internal/services/rds/provider_test.go @@ -19,7 +19,7 @@ func newTestProvider(t *testing.T) *Provider { t.Helper() p := &Provider{} require.NoError(t, p.Init(plugin.PluginConfig{DataDir: t.TempDir()})) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/rds/store.go b/internal/services/rds/store.go index 09213c0..87cc288 100644 --- a/internal/services/rds/store.go +++ b/internal/services/rds/store.go @@ -267,7 +267,7 @@ func (s *Store) ListInstances(ids []string) ([]DBInstance, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var instances []DBInstance for rows.Next() { inst, err := scanInstance(rows) @@ -371,7 +371,7 @@ func (s *Store) ListClusters(ids []string) ([]DBCluster, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var clusters []DBCluster for rows.Next() { c, err := scanCluster(rows) @@ -449,7 +449,7 @@ func (s *Store) ListSnapshots(instanceID string) ([]DBSnapshot, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var snaps []DBSnapshot for rows.Next() { sn, err := scanSnapshot(rows) @@ -515,7 +515,7 @@ func (s *Store) ListClusterSnapshots(clusterID string) ([]ClusterSnapshot, error if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var snaps []ClusterSnapshot for rows.Next() { sn, err := scanClusterSnapshot(rows) @@ -577,7 +577,7 @@ func (s *Store) ListParamGroups(names []string) ([]DBParamGroup, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var groups []DBParamGroup for rows.Next() { pg, err := scanParamGroup(rows) @@ -639,7 +639,7 @@ func (s *Store) ListClusterParamGroups(names []string) ([]ClusterParamGroup, err if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var groups []ClusterParamGroup for rows.Next() { pg, err := scanClusterParamGroup(rows) @@ -701,7 +701,7 @@ func (s *Store) ListSubnetGroups(names []string) ([]SubnetGroup, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var groups []SubnetGroup for rows.Next() { sg, err := scanSubnetGroup(rows) @@ -778,7 +778,7 @@ func (s *Store) ListOptionGroups(names []string) ([]OptionGroup, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var groups []OptionGroup for rows.Next() { og, err := scanOptionGroup(rows) diff --git a/internal/services/redshift/provider_test.go b/internal/services/redshift/provider_test.go index e4188b3..afbb905 100644 --- a/internal/services/redshift/provider_test.go +++ b/internal/services/redshift/provider_test.go @@ -19,7 +19,7 @@ func newTestProvider(t *testing.T) *Provider { t.Helper() p := &Provider{} require.NoError(t, p.Init(plugin.PluginConfig{DataDir: t.TempDir()})) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/redshift/store.go b/internal/services/redshift/store.go index d29523f..561eb80 100644 --- a/internal/services/redshift/store.go +++ b/internal/services/redshift/store.go @@ -173,7 +173,7 @@ func (s *Store) ListClusters(ids []string) ([]Cluster, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var clusters []Cluster for rows.Next() { c, err := scanCluster(rows) @@ -254,7 +254,7 @@ func (s *Store) ListSnapshots(clusterID string) ([]ClusterSnapshot, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var snaps []ClusterSnapshot for rows.Next() { sn, err := scanSnapshot(rows) @@ -316,7 +316,7 @@ func (s *Store) ListParameterGroups(names []string) ([]ParameterGroup, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var groups []ParameterGroup for rows.Next() { pg, err := scanParameterGroup(rows) @@ -378,7 +378,7 @@ func (s *Store) ListSubnetGroups(names []string) ([]SubnetGroup, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var groups []SubnetGroup for rows.Next() { sg, err := scanSubnetGroup(rows) diff --git a/internal/services/resourcegroups/provider.go b/internal/services/resourcegroups/provider.go index 2b4640d..c0a3f21 100644 --- a/internal/services/resourcegroups/provider.go +++ b/internal/services/resourcegroups/provider.go @@ -169,7 +169,7 @@ func (p *Provider) createGroup(params map[string]any) (*plugin.Response, error) if rawTags, ok := params["Tags"].(map[string]any); ok { tags := toStringMap(rawTags) - p.store.tags.AddTags(arn, tags) + _ = p.store.tags.AddTags(arn, tags) //nolint:errcheck } tags, _ := p.store.tags.ListTags(arn) @@ -241,7 +241,7 @@ func (p *Provider) deleteGroup(params map[string]any) (*plugin.Response, error) if err != nil { return shared.JSONError("NotFoundException", "group not found", http.StatusNotFound), nil } - p.store.tags.DeleteAllTags(g.ARN) + _ = p.store.tags.DeleteAllTags(g.ARN) //nolint:errcheck if err := p.store.DeleteGroup(name); err != nil { return shared.JSONError("NotFoundException", "group not found", http.StatusNotFound), nil } @@ -260,7 +260,7 @@ func (p *Provider) getGroupQuery(params map[string]any) (*plugin.Response, error return shared.JSONError("NotFoundException", "group not found", http.StatusNotFound), nil } var rq any - json.Unmarshal([]byte(g.ResourceQuery), &rq) + _ = json.Unmarshal([]byte(g.ResourceQuery), &rq) return shared.JSONResponse(http.StatusOK, map[string]any{ "GroupQuery": map[string]any{ "GroupName": g.Name, @@ -283,7 +283,7 @@ func (p *Provider) updateGroupQuery(params map[string]any) (*plugin.Response, er return shared.JSONError("NotFoundException", "group not found", http.StatusNotFound), nil } var rq any - json.Unmarshal([]byte(resourceQuery), &rq) + _ = json.Unmarshal([]byte(resourceQuery), &rq) return shared.JSONResponse(http.StatusOK, map[string]any{ "GroupQuery": map[string]any{ "GroupName": name, @@ -302,7 +302,7 @@ func (p *Provider) getGroupConfiguration(params map[string]any) (*plugin.Respons return shared.JSONError("NotFoundException", "group not found", http.StatusNotFound), nil } var cfg any - json.Unmarshal([]byte(g.Config), &cfg) + _ = json.Unmarshal([]byte(g.Config), &cfg) if cfg == nil { cfg = []any{} } diff --git a/internal/services/resourcegroups/provider_test.go b/internal/services/resourcegroups/provider_test.go index 6fd08ce..8bbdd88 100644 --- a/internal/services/resourcegroups/provider_test.go +++ b/internal/services/resourcegroups/provider_test.go @@ -20,7 +20,7 @@ func newTestProvider(t *testing.T) *Provider { p := &Provider{} err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/resourcegroups/store.go b/internal/services/resourcegroups/store.go index 73447fc..9f9c32e 100644 --- a/internal/services/resourcegroups/store.go +++ b/internal/services/resourcegroups/store.go @@ -76,7 +76,7 @@ func (s *Store) ListGroups() ([]Group, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var groups []Group for rows.Next() { g, err := scanGroup(rows) diff --git a/internal/services/resourcegroupstaggingapi/provider_test.go b/internal/services/resourcegroupstaggingapi/provider_test.go index 15eb9f5..a0db9f6 100644 --- a/internal/services/resourcegroupstaggingapi/provider_test.go +++ b/internal/services/resourcegroupstaggingapi/provider_test.go @@ -19,7 +19,7 @@ func newTestProvider(t *testing.T) *Provider { t.Helper() p := &Provider{} require.NoError(t, p.Init(plugin.PluginConfig{DataDir: t.TempDir()})) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/resourcegroupstaggingapi/store.go b/internal/services/resourcegroupstaggingapi/store.go index d195b0c..67a91db 100644 --- a/internal/services/resourcegroupstaggingapi/store.go +++ b/internal/services/resourcegroupstaggingapi/store.go @@ -104,7 +104,7 @@ func (s *Store) GetResources(tagFilters []TagFilter, resourceTypeFilters []strin if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() // Group by ARN arnMap := map[string]*ResourceTagMapping{} @@ -142,7 +142,7 @@ func (s *Store) GetTagKeys(accountID string) ([]string, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var keys []string for rows.Next() { var k string @@ -162,7 +162,7 @@ func (s *Store) GetTagValues(key, accountID string) ([]string, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var vals []string for rows.Next() { var v string @@ -226,7 +226,7 @@ func (s *Store) GetAllResourceARNs(accountID string) ([]string, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var arns []string for rows.Next() { var a string diff --git a/internal/services/route53/provider.go b/internal/services/route53/provider.go index 98a50c3..ece6f73 100644 --- a/internal/services/route53/provider.go +++ b/internal/services/route53/provider.go @@ -20,7 +20,6 @@ import ( ) const defaultAccountID = plugin.DefaultAccountID -const defaultRegion = "us-east-1" // Provider implements Route53 using REST-XML routing. type Provider struct { @@ -209,22 +208,6 @@ func generateID() string { return strings.ToLower(hex.EncodeToString(b)) } -func changeInfoXML(id string) struct { - Id string `xml:"Id"` - Status string `xml:"Status"` - SubmittedAt string `xml:"SubmittedAt"` -} { - return struct { - Id string `xml:"Id"` - Status string `xml:"Status"` - SubmittedAt string `xml:"SubmittedAt"` - }{ - Id: "/change/" + id, - Status: "INSYNC", - SubmittedAt: time.Now().UTC().Format(time.RFC3339), - } -} - func r53Error(code, msg string, status int) *plugin.Response { type errResp struct { XMLName xml.Name `xml:"ErrorResponse"` @@ -1842,10 +1825,6 @@ func (p *Provider) createCidrCollection(req *http.Request) (*plugin.Response, er } func (p *Provider) changeCidrCollection(req *http.Request) (*plugin.Response, error) { - type xmlCidr struct { - Cidr string `xml:"Cidr"` - Location string `xml:"Location"` - } type input struct { XMLName xml.Name `xml:"ChangeCidrCollectionRequest"` CidrCollectionId string `xml:"CidrCollectionId"` diff --git a/internal/services/route53/provider_test.go b/internal/services/route53/provider_test.go index 4881570..dca597c 100644 --- a/internal/services/route53/provider_test.go +++ b/internal/services/route53/provider_test.go @@ -4,7 +4,6 @@ package route53 import ( - "bytes" "context" "encoding/xml" "fmt" @@ -13,7 +12,6 @@ import ( "strings" "testing" - generated "github.com/skyoo2003/devcloud/internal/generated/route53" "github.com/skyoo2003/devcloud/internal/plugin" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -28,21 +26,6 @@ func newTestProvider(t *testing.T) *Provider { return p } -func doRequest(t *testing.T, p *Provider, method, path, body string) *plugin.Response { - t.Helper() - var bodyReader *bytes.Buffer - if body != "" { - bodyReader = bytes.NewBufferString(body) - } else { - bodyReader = bytes.NewBuffer(nil) - } - req := httptest.NewRequest(method, path, bodyReader) - op, _ := generated.MatchOperation(method, path) - resp, err := p.HandleRequest(context.Background(), op, req) - require.NoError(t, err) - return resp -} - func TestHostedZoneCRUD(t *testing.T) { p := newTestProvider(t) diff --git a/internal/services/route53/store.go b/internal/services/route53/store.go index c047f78..42716f8 100644 --- a/internal/services/route53/store.go +++ b/internal/services/route53/store.go @@ -200,7 +200,7 @@ func (s *Route53Store) ListZones(accountID string) ([]HostedZone, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var zones []HostedZone for rows.Next() { z, err := scanZone(rows) @@ -300,7 +300,7 @@ func (s *Route53Store) ListRecords(zoneID, accountID string) ([]RecordSet, error if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var recs []RecordSet for rows.Next() { r, err := scanRecord(rows) @@ -404,7 +404,7 @@ func (s *Route53Store) ListHealthChecks(accountID string) ([]HealthCheck, error) if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var hcs []HealthCheck for rows.Next() { hc, err := scanHealthCheck(rows) @@ -535,7 +535,7 @@ func (s *Route53Store) ListTrafficPolicies(accountID string) ([]TrafficPolicy, e if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var tps []TrafficPolicy for rows.Next() { tp, err := scanTrafficPolicy(rows) @@ -650,7 +650,7 @@ func (s *Route53Store) ListTrafficPolicyInstances(accountID string) ([]TrafficPo if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var tpis []TrafficPolicyInstance for rows.Next() { var tpi TrafficPolicyInstance @@ -704,7 +704,7 @@ func (s *Route53Store) ListQueryLoggingConfigs(accountID string) ([]QueryLogging if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var qlcs []QueryLoggingConfig for rows.Next() { var qlc QueryLoggingConfig @@ -817,7 +817,7 @@ func (s *Route53Store) ListKeySigningKeys(accountID string) ([]KeySigningKey, er if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var kss []KeySigningKey for rows.Next() { var kssItem KeySigningKey @@ -874,7 +874,7 @@ func (s *Route53Store) ListCidrCollections(accountID string) ([]CidrCollection, if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var cc []CidrCollection for rows.Next() { var c CidrCollection @@ -953,7 +953,7 @@ func (s *Route53Store) ListReusableDelegationSets(accountID string) ([]ReusableD if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var ds []ReusableDelegationSet for rows.Next() { var d ReusableDelegationSet diff --git a/internal/services/route53resolver/provider.go b/internal/services/route53resolver/provider.go index d971269..1a2983b 100644 --- a/internal/services/route53resolver/provider.go +++ b/internal/services/route53resolver/provider.go @@ -277,17 +277,17 @@ func parseTags(rawTags []any) map[string]string { func endpointToMap(r *endpointRow) map[string]any { var sgs []string - json.Unmarshal([]byte(r.SecurityGroups), &sgs) + _ = json.Unmarshal([]byte(r.SecurityGroups), &sgs) var ips []ipAddrEntry - json.Unmarshal([]byte(r.IPAddresses), &ips) - ipResponses := make([]map[string]any, 0, len(ips)) - for _, ip := range ips { - ipResponses = append(ipResponses, map[string]any{ + _ = json.Unmarshal([]byte(r.IPAddresses), &ips) + ipResponses := make([]map[string]any, len(ips)) + for i, ip := range ips { + ipResponses[i] = map[string]any{ "IpId": ip.IPID, "SubnetId": ip.SubnetID, "Ip": ip.IP, "Status": ip.Status, - }) + } } return map[string]any{ "Id": r.ID, @@ -304,7 +304,7 @@ func endpointToMap(r *endpointRow) map[string]any { func ruleToMap(r *ruleRow) map[string]any { var tIPs []map[string]any - json.Unmarshal([]byte(r.TargetIPs), &tIPs) + _ = json.Unmarshal([]byte(r.TargetIPs), &tIPs) if tIPs == nil { tIPs = []map[string]any{} } @@ -440,7 +440,7 @@ func (p *Provider) createResolverEndpoint(params map[string]any) (*plugin.Respon } if rawTags, ok := params["Tags"].([]any); ok { - p.store.tags.AddTags(arn, parseTags(rawTags)) + _ = p.store.tags.AddTags(arn, parseTags(rawTags)) } return shared.JSONResponse(http.StatusOK, map[string]any{ @@ -491,7 +491,7 @@ func (p *Provider) deleteResolverEndpoint(params map[string]any) (*plugin.Respon if err != nil { return shared.JSONError("ResourceNotFoundException", "resolver endpoint not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(ep.ARN) + _ = p.store.tags.DeleteAllTags(ep.ARN) if err := p.store.DeleteEndpoint(id); err != nil { return shared.JSONError("ResourceNotFoundException", "resolver endpoint not found", http.StatusBadRequest), nil } @@ -578,7 +578,7 @@ func (p *Provider) createResolverRule(params map[string]any) (*plugin.Response, } if rawTags, ok := params["Tags"].([]any); ok { - p.store.tags.AddTags(arn, parseTags(rawTags)) + _ = p.store.tags.AddTags(arn, parseTags(rawTags)) } return shared.JSONResponse(http.StatusOK, map[string]any{"ResolverRule": ruleToMap(rule)}) @@ -632,7 +632,7 @@ func (p *Provider) updateResolverRule(params map[string]any) (*plugin.Response, endpointID = existing.ResolverEndpointID } if targetIPs == nil { - json.Unmarshal([]byte(existing.TargetIPs), &targetIPs) + _ = json.Unmarshal([]byte(existing.TargetIPs), &targetIPs) } if err := p.store.UpdateRule(id, name, endpointID, targetIPs); err != nil { return shared.JSONError("ResourceNotFoundException", "resolver rule not found", http.StatusBadRequest), nil @@ -647,7 +647,7 @@ func (p *Provider) deleteResolverRule(params map[string]any) (*plugin.Response, if err != nil { return shared.JSONError("ResourceNotFoundException", "resolver rule not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(rule.ARN) + _ = p.store.tags.DeleteAllTags(rule.ARN) if err := p.store.DeleteRule(id); err != nil { return shared.JSONError("ResourceNotFoundException", "resolver rule not found", http.StatusBadRequest), nil } @@ -723,7 +723,7 @@ func (p *Provider) createResolverQueryLogConfig(params map[string]any) (*plugin. return nil, err } if rawTags, ok := params["Tags"].([]any); ok { - p.store.tags.AddTags(arn, parseTags(rawTags)) + _ = p.store.tags.AddTags(arn, parseTags(rawTags)) } return shared.JSONResponse(http.StatusOK, map[string]any{"ResolverQueryLogConfig": queryLogToMap(cfg)}) } @@ -759,7 +759,7 @@ func (p *Provider) deleteResolverQueryLogConfig(params map[string]any) (*plugin. if err != nil { return shared.JSONError("ResourceNotFoundException", "query log config not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(cfg.ARN) + _ = p.store.tags.DeleteAllTags(cfg.ARN) if err := p.store.DeleteQueryLogConfig(id); err != nil { return shared.JSONError("ResourceNotFoundException", "query log config not found", http.StatusBadRequest), nil } @@ -834,7 +834,7 @@ func (p *Provider) createFirewallRuleGroup(params map[string]any) (*plugin.Respo return nil, err } if rawTags, ok := params["Tags"].([]any); ok { - p.store.tags.AddTags(arn, parseTags(rawTags)) + _ = p.store.tags.AddTags(arn, parseTags(rawTags)) } return shared.JSONResponse(http.StatusOK, map[string]any{"FirewallRuleGroup": fwRuleGroupToMap(grp)}) } @@ -870,7 +870,7 @@ func (p *Provider) deleteFirewallRuleGroup(params map[string]any) (*plugin.Respo if err != nil { return shared.JSONError("ResourceNotFoundException", "firewall rule group not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(grp.ARN) + _ = p.store.tags.DeleteAllTags(grp.ARN) if err := p.store.DeleteFirewallRuleGroup(id); err != nil { return shared.JSONError("ResourceNotFoundException", "firewall rule group not found", http.StatusBadRequest), nil } @@ -964,7 +964,7 @@ func (p *Provider) createFirewallDomainList(params map[string]any) (*plugin.Resp return nil, err } if rawTags, ok := params["Tags"].([]any); ok { - p.store.tags.AddTags(arn, parseTags(rawTags)) + _ = p.store.tags.AddTags(arn, parseTags(rawTags)) } return shared.JSONResponse(http.StatusOK, map[string]any{"FirewallDomainList": fwDomainListToMap(dl)}) } @@ -1000,7 +1000,7 @@ func (p *Provider) deleteFirewallDomainList(params map[string]any) (*plugin.Resp if err != nil { return shared.JSONError("ResourceNotFoundException", "firewall domain list not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(dl.ARN) + _ = p.store.tags.DeleteAllTags(dl.ARN) if err := p.store.DeleteFirewallDomainList(id); err != nil { return shared.JSONError("ResourceNotFoundException", "firewall domain list not found", http.StatusBadRequest), nil } @@ -1047,15 +1047,14 @@ func (p *Provider) updateFirewallDomains(params map[string]any) (*plugin.Respons } } } - dl, err := p.store.GetFirewallDomainList(id) - if err != nil { + if _, err := p.store.GetFirewallDomainList(id); err != nil { return shared.JSONError("ResourceNotFoundException", "firewall domain list not found", http.StatusBadRequest), nil } if err := p.store.UpdateFirewallDomains(id, op, domains); err != nil { return nil, err } // re-fetch for updated count - dl, _ = p.store.GetFirewallDomainList(id) + dl, _ := p.store.GetFirewallDomainList(id) return shared.JSONResponse(http.StatusOK, map[string]any{ "Id": dl.ID, "Name": dl.Name, diff --git a/internal/services/route53resolver/provider_test.go b/internal/services/route53resolver/provider_test.go index b773c9c..0db1ca6 100644 --- a/internal/services/route53resolver/provider_test.go +++ b/internal/services/route53resolver/provider_test.go @@ -21,12 +21,12 @@ func newTestProvider(t *testing.T) *Provider { if err != nil { t.Fatal(err) } - t.Cleanup(func() { os.RemoveAll(dir) }) + t.Cleanup(func() { _ = os.RemoveAll(dir) }) p := &Provider{} if err := p.Init(plugin.PluginConfig{DataDir: dir}); err != nil { t.Fatal(err) } - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } @@ -42,7 +42,7 @@ func call(t *testing.T, p *Provider, action string, body map[string]any) map[str t.Fatalf("action %s: status %d body %s", action, resp.StatusCode, resp.Body) } var out map[string]any - json.Unmarshal(resp.Body, &out) + _ = json.Unmarshal(resp.Body, &out) return out } diff --git a/internal/services/route53resolver/store.go b/internal/services/route53resolver/store.go index d578452..6ef2f61 100644 --- a/internal/services/route53resolver/store.go +++ b/internal/services/route53resolver/store.go @@ -252,7 +252,7 @@ func (s *Store) ListEndpoints() ([]endpointRow, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []endpointRow for rows.Next() { r, err := scanEndpoint(rows) @@ -294,7 +294,7 @@ func (s *Store) AssociateEndpointIP(id string, ip ipAddrEntry) (*endpointRow, er return nil, err } var ips []ipAddrEntry - json.Unmarshal([]byte(ep.IPAddresses), &ips) + _ = json.Unmarshal([]byte(ep.IPAddresses), &ips) ips = append(ips, ip) ipJSON := marshalJSON(ips) if _, err := s.db().Exec(`UPDATE resolver_endpoints SET ip_addresses=? WHERE id=?`, ipJSON, id); err != nil { @@ -310,7 +310,7 @@ func (s *Store) DisassociateEndpointIP(id, ipID string) (*endpointRow, error) { return nil, err } var ips []ipAddrEntry - json.Unmarshal([]byte(ep.IPAddresses), &ips) + _ = json.Unmarshal([]byte(ep.IPAddresses), &ips) filtered := ips[:0] for _, ip := range ips { if ip.IPID != ipID { @@ -331,7 +331,7 @@ func (s *Store) ListEndpointIPs(id string) ([]ipAddrEntry, error) { return nil, err } var ips []ipAddrEntry - json.Unmarshal([]byte(ep.IPAddresses), &ips) + _ = json.Unmarshal([]byte(ep.IPAddresses), &ips) return ips, nil } @@ -377,7 +377,7 @@ func (s *Store) ListRules() ([]ruleRow, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []ruleRow for rows.Next() { r, err := scanRule(rows) @@ -448,7 +448,7 @@ func (s *Store) DisassociateRule(ruleID, vpcID string) (*ruleAssocRow, error) { if err != nil { return nil, err } - s.db().Exec(`DELETE FROM rule_associations WHERE id=?`, assoc.ID) + _, _ = s.db().Exec(`DELETE FROM rule_associations WHERE id=?`, assoc.ID) return assoc, nil } @@ -464,7 +464,7 @@ func (s *Store) ListRuleAssociations() ([]ruleAssocRow, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []ruleAssocRow for rows.Next() { r, err := scanRuleAssoc(rows) @@ -513,7 +513,7 @@ func (s *Store) ListQueryLogConfigs() ([]queryLogRow, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []queryLogRow for rows.Next() { r, err := scanQueryLog(rows) @@ -569,7 +569,7 @@ func (s *Store) DisassociateQueryLogConfig(configID, resourceID string) (*queryL if err != nil { return nil, err } - s.db().Exec(`DELETE FROM query_log_associations WHERE id=?`, assoc.ID) + _, _ = s.db().Exec(`DELETE FROM query_log_associations WHERE id=?`, assoc.ID) return assoc, nil } @@ -585,7 +585,7 @@ func (s *Store) ListQueryLogConfigAssociations() ([]queryLogAssocRow, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []queryLogAssocRow for rows.Next() { r, err := scanQueryLogAssoc(rows) @@ -634,7 +634,7 @@ func (s *Store) ListFirewallRuleGroups() ([]fwRuleGroupRow, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []fwRuleGroupRow for rows.Next() { r, err := scanFwRuleGroup(rows) @@ -659,7 +659,7 @@ func (s *Store) DeleteFirewallRuleGroup(id string) error { } func (s *Store) incrFwRuleGroupCount(groupID string, delta int) { - s.db().Exec( + _, _ = s.db().Exec( `UPDATE firewall_rule_groups SET rule_count = rule_count + ? WHERE id=?`, delta, groupID) } @@ -695,7 +695,7 @@ func (s *Store) ListFirewallRules(groupID string) ([]fwRuleRow, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []fwRuleRow for rows.Next() { r, err := scanFwRule(rows) @@ -772,7 +772,7 @@ func (s *Store) ListFirewallDomainLists() ([]fwDomainListRow, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []fwDomainListRow for rows.Next() { r, err := scanFwDomainList(rows) @@ -793,7 +793,7 @@ func (s *Store) DeleteFirewallDomainList(id string) error { if n == 0 { return errNotFound } - s.db().Exec(`DELETE FROM firewall_domains WHERE list_id=?`, id) + _, _ = s.db().Exec(`DELETE FROM firewall_domains WHERE list_id=?`, id) return nil } @@ -801,21 +801,21 @@ func (s *Store) UpdateFirewallDomains(listID, op string, domains []string) error switch op { case "ADD": for _, d := range domains { - s.db().Exec(`INSERT OR IGNORE INTO firewall_domains (list_id,domain) VALUES (?,?)`, listID, d) + _, _ = s.db().Exec(`INSERT OR IGNORE INTO firewall_domains (list_id,domain) VALUES (?,?)`, listID, d) } case "REMOVE": for _, d := range domains { - s.db().Exec(`DELETE FROM firewall_domains WHERE list_id=? AND domain=?`, listID, d) + _, _ = s.db().Exec(`DELETE FROM firewall_domains WHERE list_id=? AND domain=?`, listID, d) } case "REPLACE": - s.db().Exec(`DELETE FROM firewall_domains WHERE list_id=?`, listID) + _, _ = s.db().Exec(`DELETE FROM firewall_domains WHERE list_id=?`, listID) for _, d := range domains { - s.db().Exec(`INSERT OR IGNORE INTO firewall_domains (list_id,domain) VALUES (?,?)`, listID, d) + _, _ = s.db().Exec(`INSERT OR IGNORE INTO firewall_domains (list_id,domain) VALUES (?,?)`, listID, d) } } var count int - s.db().QueryRow(`SELECT COUNT(*) FROM firewall_domains WHERE list_id=?`, listID).Scan(&count) - s.db().Exec(`UPDATE firewall_domain_lists SET domain_count=? WHERE id=?`, count, listID) + _ = s.db().QueryRow(`SELECT COUNT(*) FROM firewall_domains WHERE list_id=?`, listID).Scan(&count) + _, _ = s.db().Exec(`UPDATE firewall_domain_lists SET domain_count=? WHERE id=?`, count, listID) return nil } @@ -824,7 +824,7 @@ func (s *Store) ListFirewallDomains(listID string) ([]string, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []string for rows.Next() { var d string @@ -880,7 +880,7 @@ func (s *Store) ListFirewallRuleGroupAssociations(vpcID string) ([]fwRuleGroupAs if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []fwRuleGroupAssocRow for rows.Next() { r, err := scanFwRuleGroupAssoc(rows) @@ -897,7 +897,7 @@ func (s *Store) DisassociateFirewallRuleGroup(id string) (*fwRuleGroupAssocRow, if err != nil { return nil, err } - s.db().Exec(`DELETE FROM firewall_rule_group_associations WHERE id=?`, id) + _, _ = s.db().Exec(`DELETE FROM firewall_rule_group_associations WHERE id=?`, id) return assoc, nil } diff --git a/internal/services/s3/metadata.go b/internal/services/s3/metadata.go index fdea16e..0763502 100644 --- a/internal/services/s3/metadata.go +++ b/internal/services/s3/metadata.go @@ -231,7 +231,7 @@ func (s *MetadataStore) ListBuckets(accountID string) ([]BucketInfo, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var buckets []BucketInfo for rows.Next() { @@ -322,7 +322,7 @@ func (s *MetadataStore) ListObjects(bucket, prefix, accountID string, maxKeys in if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var objects []ObjectMeta for rows.Next() { @@ -388,7 +388,7 @@ func (s *MetadataStore) ListMultipartUploads(bucket, accountID string) ([]Multip if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var uploads []MultipartUploadInfo for rows.Next() { @@ -421,7 +421,7 @@ func (s *MetadataStore) ListUploadParts(uploadID string) ([]UploadPartInfo, erro if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var parts []UploadPartInfo for rows.Next() { @@ -556,7 +556,7 @@ func (s *MetadataStore) GetBucketTags(bucket, accountID string) (map[string]stri if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() tags := make(map[string]string) for rows.Next() { var k, v string @@ -609,7 +609,7 @@ func (s *MetadataStore) GetObjectTags(bucket, key, accountID string) (map[string if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() tags := make(map[string]string) for rows.Next() { var k, v string diff --git a/internal/services/s3/metadata_test.go b/internal/services/s3/metadata_test.go index caf4fa9..d0aa782 100644 --- a/internal/services/s3/metadata_test.go +++ b/internal/services/s3/metadata_test.go @@ -15,7 +15,7 @@ func TestMetadataStore_CreateAndListBuckets(t *testing.T) { dbPath := filepath.Join(t.TempDir(), "meta.db") store, err := NewMetadataStore(dbPath) require.NoError(t, err) - defer store.Close() + defer func() { _ = store.Close() }() err = store.CreateBucket("test-bucket", "us-east-1", "000000000000") require.NoError(t, err) @@ -31,7 +31,7 @@ func TestMetadataStore_CreateDuplicateBucket(t *testing.T) { dbPath := filepath.Join(t.TempDir(), "meta.db") store, err := NewMetadataStore(dbPath) require.NoError(t, err) - defer store.Close() + defer func() { _ = store.Close() }() err = store.CreateBucket("test-bucket", "us-east-1", "000000000000") require.NoError(t, err) @@ -44,9 +44,9 @@ func TestMetadataStore_DeleteBucket(t *testing.T) { dbPath := filepath.Join(t.TempDir(), "meta.db") store, err := NewMetadataStore(dbPath) require.NoError(t, err) - defer store.Close() + defer func() { _ = store.Close() }() - store.CreateBucket("test-bucket", "us-east-1", "000000000000") + _ = store.CreateBucket("test-bucket", "us-east-1", "000000000000") err = store.DeleteBucket("test-bucket", "000000000000") require.NoError(t, err) @@ -58,9 +58,9 @@ func TestMetadataStore_PutAndGetObjectMeta(t *testing.T) { dbPath := filepath.Join(t.TempDir(), "meta.db") store, err := NewMetadataStore(dbPath) require.NoError(t, err) - defer store.Close() + defer func() { _ = store.Close() }() - store.CreateBucket("test-bucket", "us-east-1", "000000000000") + _ = store.CreateBucket("test-bucket", "us-east-1", "000000000000") meta := ObjectMeta{ Bucket: "test-bucket", diff --git a/internal/services/s3/notifications.go b/internal/services/s3/notifications.go index 054d853..0bdb851 100644 --- a/internal/services/s3/notifications.go +++ b/internal/services/s3/notifications.go @@ -178,7 +178,7 @@ func sendToSQS(ctx context.Context, baseURL, queueName string, payload []byte) e if err != nil { return err } - resp.Body.Close() + _ = resp.Body.Close() if resp.StatusCode != http.StatusOK { return fmt.Errorf("sqs send: unexpected status %d", resp.StatusCode) } @@ -197,7 +197,7 @@ func invokeLambda(ctx context.Context, baseURL, fnName string, payload []byte) e if err != nil { return err } - resp.Body.Close() + _ = resp.Body.Close() if resp.StatusCode != http.StatusOK { return fmt.Errorf("lambda invoke: unexpected status %d", resp.StatusCode) } diff --git a/internal/services/s3/provider.go b/internal/services/s3/provider.go index b66d29c..ba44a90 100644 --- a/internal/services/s3/provider.go +++ b/internal/services/s3/provider.go @@ -16,6 +16,7 @@ import ( "net/url" "os" "path/filepath" + "regexp" "sort" "strconv" "strings" @@ -460,9 +461,15 @@ func generateUploadID() (string, error) { return hex.EncodeToString(b), nil } +var uploadIDPattern = regexp.MustCompile(`^[a-f0-9]{32}$`) + +func isValidUploadID(uploadID string) bool { + return uploadIDPattern.MatchString(uploadID) +} + // multipartDir returns the directory used to store parts for an upload. func (p *S3Provider) multipartDir(uploadID string) string { - return filepath.Join(p.fileStore.baseDir, "_multipart", uploadID) + return filepath.Join(p.fileStore.baseDir, "_multipart", filepath.Base(uploadID)) } // partPath returns the path to a specific part file. @@ -884,6 +891,10 @@ func (p *S3Provider) uploadPart(_ context.Context, bucket, key, uploadID, partNu } func (p *S3Provider) completeMultipartUpload(_ context.Context, bucket, key, uploadID string, req *http.Request) (*plugin.Response, error) { + if !isValidUploadID(uploadID) { + return xmlError("NoSuchUpload", "upload not found", http.StatusNotFound), nil + } + upload, err := p.metaStore.GetMultipartUpload(uploadID) if err != nil { if errors.Is(err, ErrUploadNotFound) { @@ -941,7 +952,7 @@ func (p *S3Provider) completeMultipartUpload(_ context.Context, bucket, key, upl } // Clean up parts directory - os.RemoveAll(p.multipartDir(uploadID)) + _ = os.RemoveAll(p.multipartDir(uploadID)) // Remove upload from metadata if err := p.metaStore.DeleteMultipartUpload(uploadID); err != nil { @@ -960,6 +971,9 @@ func (p *S3Provider) completeMultipartUpload(_ context.Context, bucket, key, upl } func (p *S3Provider) abortMultipartUpload(_ context.Context, bucket, key, uploadID string) (*plugin.Response, error) { + if !isValidUploadID(uploadID) { + return xmlError("InvalidRequest", "invalid uploadId", http.StatusBadRequest), nil + } if _, err := p.metaStore.GetMultipartUpload(uploadID); err != nil { if errors.Is(err, ErrUploadNotFound) { return xmlError("NoSuchUpload", "upload not found", http.StatusNotFound), nil @@ -970,7 +984,7 @@ func (p *S3Provider) abortMultipartUpload(_ context.Context, bucket, key, upload _ = key // Delete part files - os.RemoveAll(p.multipartDir(uploadID)) + _ = os.RemoveAll(p.multipartDir(uploadID)) if err := p.metaStore.DeleteMultipartUpload(uploadID); err != nil { return nil, err @@ -1044,7 +1058,7 @@ func (p *S3Provider) deleteObjects(_ context.Context, bucket string, req *http.R if err := p.fileStore.DeleteObject(defaultAccountID, bucket, obj.Key); err != nil && !os.IsNotExist(err) { return nil, err } - result.Deleted = append(result.Deleted, deletedObjectXML{Key: obj.Key}) + result.Deleted = append(result.Deleted, deletedObjectXML(obj)) } return xmlResponse(http.StatusOK, result) diff --git a/internal/services/s3/provider_test.go b/internal/services/s3/provider_test.go index b100e7e..d1662c4 100644 --- a/internal/services/s3/provider_test.go +++ b/internal/services/s3/provider_test.go @@ -33,7 +33,7 @@ func newTestProvider(t *testing.T) *S3Provider { func TestS3Provider_CreateBucket(t *testing.T) { p := newTestProvider(t) - defer p.Shutdown(context.Background()) + defer func() { _ = p.Shutdown(context.Background()) }() req := httptest.NewRequest("PUT", "/test-bucket", nil) resp, err := p.HandleRequest(context.Background(), "", req) require.NoError(t, err) @@ -42,11 +42,13 @@ func TestS3Provider_CreateBucket(t *testing.T) { func TestS3Provider_ListBuckets(t *testing.T) { p := newTestProvider(t) - defer p.Shutdown(context.Background()) + defer func() { _ = p.Shutdown(context.Background()) }() req1 := httptest.NewRequest("PUT", "/bucket-a", nil) - p.HandleRequest(context.Background(), "", req1) + _, err := p.HandleRequest(context.Background(), "", req1) + require.NoError(t, err) req2 := httptest.NewRequest("PUT", "/bucket-b", nil) - p.HandleRequest(context.Background(), "", req2) + _, err = p.HandleRequest(context.Background(), "", req2) + require.NoError(t, err) req := httptest.NewRequest("GET", "/", nil) resp, err := p.HandleRequest(context.Background(), "", req) require.NoError(t, err) @@ -57,9 +59,10 @@ func TestS3Provider_ListBuckets(t *testing.T) { func TestS3Provider_PutAndGetObject(t *testing.T) { p := newTestProvider(t) - defer p.Shutdown(context.Background()) + defer func() { _ = p.Shutdown(context.Background()) }() reqCreate := httptest.NewRequest("PUT", "/test-bucket", nil) - p.HandleRequest(context.Background(), "", reqCreate) + _, err := p.HandleRequest(context.Background(), "", reqCreate) + require.NoError(t, err) body := strings.NewReader("hello world") reqPut := httptest.NewRequest("PUT", "/test-bucket/hello.txt", body) reqPut.Header.Set("Content-Type", "text/plain") @@ -75,11 +78,13 @@ func TestS3Provider_PutAndGetObject(t *testing.T) { func TestS3Provider_DeleteObject(t *testing.T) { p := newTestProvider(t) - defer p.Shutdown(context.Background()) + defer func() { _ = p.Shutdown(context.Background()) }() reqCreate := httptest.NewRequest("PUT", "/test-bucket", nil) - p.HandleRequest(context.Background(), "", reqCreate) + _, err := p.HandleRequest(context.Background(), "", reqCreate) + require.NoError(t, err) reqPut := httptest.NewRequest("PUT", "/test-bucket/hello.txt", strings.NewReader("data")) - p.HandleRequest(context.Background(), "", reqPut) + _, err = p.HandleRequest(context.Background(), "", reqPut) + require.NoError(t, err) reqDel := httptest.NewRequest("DELETE", "/test-bucket/hello.txt", nil) resp, err := p.HandleRequest(context.Background(), "", reqDel) require.NoError(t, err) @@ -94,13 +99,15 @@ func TestS3Provider_DeleteObject(t *testing.T) { func TestS3Provider_ListObjectsV2(t *testing.T) { p := newTestProvider(t) - defer p.Shutdown(context.Background()) + defer func() { _ = p.Shutdown(context.Background()) }() // Create bucket and put 5 objects - p.HandleRequest(context.Background(), "", httptest.NewRequest("PUT", "/v2-bucket", nil)) + _, err := p.HandleRequest(context.Background(), "", httptest.NewRequest("PUT", "/v2-bucket", nil)) + require.NoError(t, err) for i := 0; i < 5; i++ { req := httptest.NewRequest("PUT", fmt.Sprintf("/v2-bucket/key%d", i), strings.NewReader("x")) - p.HandleRequest(context.Background(), "", req) + _, err = p.HandleRequest(context.Background(), "", req) + require.NoError(t, err) } // First page: max-keys=2 @@ -128,12 +135,14 @@ func TestS3Provider_ListObjectsV2(t *testing.T) { func TestS3Provider_ListObjectsV2_WithPrefix(t *testing.T) { p := newTestProvider(t) - defer p.Shutdown(context.Background()) + defer func() { _ = p.Shutdown(context.Background()) }() - p.HandleRequest(context.Background(), "", httptest.NewRequest("PUT", "/prefix-bucket", nil)) + _, err := p.HandleRequest(context.Background(), "", httptest.NewRequest("PUT", "/prefix-bucket", nil)) + require.NoError(t, err) for _, k := range []string{"foo/a", "foo/b", "bar/c"} { req := httptest.NewRequest("PUT", "/prefix-bucket/"+k, strings.NewReader("data")) - p.HandleRequest(context.Background(), "", req) + _, err = p.HandleRequest(context.Background(), "", req) + require.NoError(t, err) } req := httptest.NewRequest("GET", "/prefix-bucket?list-type=2&prefix=foo/", nil) @@ -150,9 +159,10 @@ func TestS3Provider_ListObjectsV2_WithPrefix(t *testing.T) { func TestS3Provider_MultipartUpload(t *testing.T) { p := newTestProvider(t) - defer p.Shutdown(context.Background()) + defer func() { _ = p.Shutdown(context.Background()) }() - p.HandleRequest(context.Background(), "", httptest.NewRequest("PUT", "/mp-bucket", nil)) + _, err := p.HandleRequest(context.Background(), "", httptest.NewRequest("PUT", "/mp-bucket", nil)) + require.NoError(t, err) // Create multipart upload reqCreate := httptest.NewRequest("POST", "/mp-bucket/big.bin?uploads", nil) @@ -197,9 +207,10 @@ func TestS3Provider_MultipartUpload(t *testing.T) { func TestS3Provider_AbortMultipartUpload(t *testing.T) { p := newTestProvider(t) - defer p.Shutdown(context.Background()) + defer func() { _ = p.Shutdown(context.Background()) }() - p.HandleRequest(context.Background(), "", httptest.NewRequest("PUT", "/abort-bucket", nil)) + _, err := p.HandleRequest(context.Background(), "", httptest.NewRequest("PUT", "/abort-bucket", nil)) + require.NoError(t, err) // Create upload reqCreate := httptest.NewRequest("POST", "/abort-bucket/obj?uploads", nil) @@ -218,13 +229,15 @@ func TestS3Provider_AbortMultipartUpload(t *testing.T) { func TestS3Provider_ListMultipartUploads(t *testing.T) { p := newTestProvider(t) - defer p.Shutdown(context.Background()) + defer func() { _ = p.Shutdown(context.Background()) }() - p.HandleRequest(context.Background(), "", httptest.NewRequest("PUT", "/list-mp-bucket", nil)) + _, err := p.HandleRequest(context.Background(), "", httptest.NewRequest("PUT", "/list-mp-bucket", nil)) + require.NoError(t, err) // Create two uploads for _, key := range []string{"obj1", "obj2"} { - p.HandleRequest(context.Background(), "", httptest.NewRequest("POST", "/list-mp-bucket/"+key+"?uploads", nil)) + _, err = p.HandleRequest(context.Background(), "", httptest.NewRequest("POST", "/list-mp-bucket/"+key+"?uploads", nil)) + require.NoError(t, err) } reqList := httptest.NewRequest("GET", "/list-mp-bucket?uploads", nil) @@ -239,11 +252,13 @@ func TestS3Provider_ListMultipartUploads(t *testing.T) { func TestS3Provider_DeleteObjects(t *testing.T) { p := newTestProvider(t) - defer p.Shutdown(context.Background()) + defer func() { _ = p.Shutdown(context.Background()) }() - p.HandleRequest(context.Background(), "", httptest.NewRequest("PUT", "/del-bucket", nil)) + _, err := p.HandleRequest(context.Background(), "", httptest.NewRequest("PUT", "/del-bucket", nil)) + require.NoError(t, err) for _, k := range []string{"a", "b", "c"} { - p.HandleRequest(context.Background(), "", httptest.NewRequest("PUT", "/del-bucket/"+k, strings.NewReader("data"))) + _, err = p.HandleRequest(context.Background(), "", httptest.NewRequest("PUT", "/del-bucket/"+k, strings.NewReader("data"))) + require.NoError(t, err) } delBody := `ab` @@ -267,9 +282,10 @@ func TestS3Provider_DeleteObjects(t *testing.T) { func TestS3Provider_BucketPolicy(t *testing.T) { p := newTestProvider(t) - defer p.Shutdown(context.Background()) + defer func() { _ = p.Shutdown(context.Background()) }() - p.HandleRequest(context.Background(), "", httptest.NewRequest("PUT", "/pol-bucket", nil)) + _, err := p.HandleRequest(context.Background(), "", httptest.NewRequest("PUT", "/pol-bucket", nil)) + require.NoError(t, err) // No policy yet — should 404 resp, err := p.HandleRequest(context.Background(), "", httptest.NewRequest("GET", "/pol-bucket?policy", nil)) @@ -297,9 +313,10 @@ func TestS3Provider_BucketPolicy(t *testing.T) { func TestS3Provider_BucketLocation(t *testing.T) { p := newTestProvider(t) - defer p.Shutdown(context.Background()) + defer func() { _ = p.Shutdown(context.Background()) }() - p.HandleRequest(context.Background(), "", httptest.NewRequest("PUT", "/loc-bucket", nil)) + _, err := p.HandleRequest(context.Background(), "", httptest.NewRequest("PUT", "/loc-bucket", nil)) + require.NoError(t, err) resp, err := p.HandleRequest(context.Background(), "", httptest.NewRequest("GET", "/loc-bucket?location", nil)) require.NoError(t, err) assert.Equal(t, 200, resp.StatusCode) @@ -308,9 +325,10 @@ func TestS3Provider_BucketLocation(t *testing.T) { func TestS3Provider_BucketVersioning(t *testing.T) { p := newTestProvider(t) - defer p.Shutdown(context.Background()) + defer func() { _ = p.Shutdown(context.Background()) }() - p.HandleRequest(context.Background(), "", httptest.NewRequest("PUT", "/ver-bucket", nil)) + _, err := p.HandleRequest(context.Background(), "", httptest.NewRequest("PUT", "/ver-bucket", nil)) + require.NoError(t, err) // Default: Suspended resp, err := p.HandleRequest(context.Background(), "", httptest.NewRequest("GET", "/ver-bucket?versioning", nil)) @@ -332,9 +350,10 @@ func TestS3Provider_BucketVersioning(t *testing.T) { func TestS3Provider_BucketCors(t *testing.T) { p := newTestProvider(t) - defer p.Shutdown(context.Background()) + defer func() { _ = p.Shutdown(context.Background()) }() - p.HandleRequest(context.Background(), "", httptest.NewRequest("PUT", "/cors-bucket", nil)) + _, err := p.HandleRequest(context.Background(), "", httptest.NewRequest("PUT", "/cors-bucket", nil)) + require.NoError(t, err) corsBody := `GET*` reqPut := httptest.NewRequest("PUT", "/cors-bucket?cors", strings.NewReader(corsBody)) @@ -356,9 +375,10 @@ func TestS3Provider_BucketCors(t *testing.T) { func TestS3Provider_BucketTagging(t *testing.T) { p := newTestProvider(t) - defer p.Shutdown(context.Background()) + defer func() { _ = p.Shutdown(context.Background()) }() - p.HandleRequest(context.Background(), "", httptest.NewRequest("PUT", "/tag-bucket", nil)) + _, err := p.HandleRequest(context.Background(), "", httptest.NewRequest("PUT", "/tag-bucket", nil)) + require.NoError(t, err) tagBody := `envtest` reqPut := httptest.NewRequest("PUT", "/tag-bucket?tagging", strings.NewReader(tagBody)) @@ -385,10 +405,12 @@ func TestS3Provider_BucketTagging(t *testing.T) { func TestS3Provider_ObjectTagging(t *testing.T) { p := newTestProvider(t) - defer p.Shutdown(context.Background()) + defer func() { _ = p.Shutdown(context.Background()) }() - p.HandleRequest(context.Background(), "", httptest.NewRequest("PUT", "/otag-bucket", nil)) - p.HandleRequest(context.Background(), "", httptest.NewRequest("PUT", "/otag-bucket/f.txt", strings.NewReader("data"))) + _, err := p.HandleRequest(context.Background(), "", httptest.NewRequest("PUT", "/otag-bucket", nil)) + require.NoError(t, err) + _, err = p.HandleRequest(context.Background(), "", httptest.NewRequest("PUT", "/otag-bucket/f.txt", strings.NewReader("data"))) + require.NoError(t, err) tagBody := `statusactive` reqPut := httptest.NewRequest("PUT", "/otag-bucket/f.txt?tagging", strings.NewReader(tagBody)) @@ -411,9 +433,10 @@ func TestS3Provider_ObjectTagging(t *testing.T) { func TestS3Provider_BucketACL(t *testing.T) { p := newTestProvider(t) - defer p.Shutdown(context.Background()) + defer func() { _ = p.Shutdown(context.Background()) }() - p.HandleRequest(context.Background(), "", httptest.NewRequest("PUT", "/acl-bucket", nil)) + _, err := p.HandleRequest(context.Background(), "", httptest.NewRequest("PUT", "/acl-bucket", nil)) + require.NoError(t, err) // Default ACL should return FULL_CONTROL canned ACL resp, err := p.HandleRequest(context.Background(), "", httptest.NewRequest("GET", "/acl-bucket?acl", nil)) @@ -437,9 +460,10 @@ func TestS3Provider_BucketACL(t *testing.T) { func TestS3Provider_BucketNotification(t *testing.T) { p := newTestProvider(t) - defer p.Shutdown(context.Background()) + defer func() { _ = p.Shutdown(context.Background()) }() - p.HandleRequest(context.Background(), "", httptest.NewRequest("PUT", "/notif-bucket", nil)) + _, err := p.HandleRequest(context.Background(), "", httptest.NewRequest("PUT", "/notif-bucket", nil)) + require.NoError(t, err) // Default: empty config resp, err := p.HandleRequest(context.Background(), "", httptest.NewRequest("GET", "/notif-bucket?notification", nil)) diff --git a/internal/services/s3/store_test.go b/internal/services/s3/store_test.go index bc66b76..72f7f5b 100644 --- a/internal/services/s3/store_test.go +++ b/internal/services/s3/store_test.go @@ -20,7 +20,7 @@ func TestFileStore_PutAndGetObject(t *testing.T) { func TestFileStore_DeleteObject(t *testing.T) { store := NewFileStore(t.TempDir()) - store.PutObject("000000000000", "test-bucket", "hello.txt", []byte("hello")) + _ = store.PutObject("000000000000", "test-bucket", "hello.txt", []byte("hello")) err := store.DeleteObject("000000000000", "test-bucket", "hello.txt") require.NoError(t, err) _, err = store.GetObject("000000000000", "test-bucket", "hello.txt") diff --git a/internal/services/s3tables/provider.go b/internal/services/s3tables/provider.go index 6b7164f..4046e91 100644 --- a/internal/services/s3tables/provider.go +++ b/internal/services/s3tables/provider.go @@ -48,7 +48,7 @@ func (p *S3TablesProvider) HandleRequest(_ context.Context, op string, req *http body, _ := io.ReadAll(req.Body) var params map[string]any if len(body) > 0 { - json.Unmarshal(body, ¶ms) + _ = json.Unmarshal(body, ¶ms) } if params == nil { params = map[string]any{} @@ -493,7 +493,7 @@ func (p *S3TablesProvider) deleteTablePolicy(req *http.Request) (*plugin.Respons if err != nil { return jsonError("NotFoundException", "table not found", http.StatusNotFound), nil } - p.store.DeletePolicy(t.ARN) + p.store.DeletePolicy(t.ARN) //nolint:errcheck return jsonResponse(http.StatusNoContent, nil) } @@ -529,7 +529,7 @@ func (p *S3TablesProvider) deleteTableBucketPolicy(req *http.Request) (*plugin.R if err != nil { return jsonError("NotFoundException", "bucket not found", http.StatusNotFound), nil } - p.store.DeletePolicy(b.ARN) + p.store.DeletePolicy(b.ARN) //nolint:errcheck return jsonResponse(http.StatusNoContent, nil) } @@ -552,7 +552,7 @@ func (p *S3TablesProvider) getTableEncryption(req *http.Request) (*plugin.Respon cfg = `{"sseAlgorithm":"AES256"}` } var m map[string]any - json.Unmarshal([]byte(cfg), &m) + _ = json.Unmarshal([]byte(cfg), &m) return jsonResponse(http.StatusOK, map[string]any{"encryptionConfiguration": m}) } @@ -591,7 +591,7 @@ func (p *S3TablesProvider) deleteTableEncryption(req *http.Request) (*plugin.Res if err != nil { return jsonError("NotFoundException", "table not found", http.StatusNotFound), nil } - p.store.DeleteEncryption(t.ARN) + p.store.DeleteEncryption(t.ARN) //nolint:errcheck return jsonResponse(http.StatusNoContent, nil) } @@ -606,7 +606,7 @@ func (p *S3TablesProvider) getTableBucketEncryption(req *http.Request) (*plugin. cfg = `{"sseAlgorithm":"AES256"}` } var m map[string]any - json.Unmarshal([]byte(cfg), &m) + _ = json.Unmarshal([]byte(cfg), &m) return jsonResponse(http.StatusOK, map[string]any{"encryptionConfiguration": m}) } @@ -633,7 +633,7 @@ func (p *S3TablesProvider) deleteTableBucketEncryption(req *http.Request) (*plug if err != nil { return jsonError("NotFoundException", "bucket not found", http.StatusNotFound), nil } - p.store.DeleteEncryption(b.ARN) + p.store.DeleteEncryption(b.ARN) //nolint:errcheck return jsonResponse(http.StatusNoContent, nil) } @@ -658,7 +658,7 @@ func (p *S3TablesProvider) getTableMaintenanceConfiguration(req *http.Request) ( out := map[string]any{} for k, v := range cfgs { var m map[string]any - json.Unmarshal([]byte(v), &m) + _ = json.Unmarshal([]byte(v), &m) out[k] = m } return jsonResponse(http.StatusOK, map[string]any{ @@ -710,7 +710,7 @@ func (p *S3TablesProvider) getTableBucketMaintenanceConfiguration(req *http.Requ out := map[string]any{} for k, v := range cfgs { var m map[string]any - json.Unmarshal([]byte(v), &m) + _ = json.Unmarshal([]byte(v), &m) out[k] = m } return jsonResponse(http.StatusOK, map[string]any{ diff --git a/internal/services/s3tables/provider_test.go b/internal/services/s3tables/provider_test.go index f5d7b19..8b389d1 100644 --- a/internal/services/s3tables/provider_test.go +++ b/internal/services/s3tables/provider_test.go @@ -19,7 +19,7 @@ func newTestProvider(t *testing.T) *S3TablesProvider { t.Helper() p := &S3TablesProvider{} require.NoError(t, p.Init(plugin.PluginConfig{DataDir: t.TempDir()})) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/s3tables/store.go b/internal/services/s3tables/store.go index 729f378..79962db 100644 --- a/internal/services/s3tables/store.go +++ b/internal/services/s3tables/store.go @@ -178,7 +178,7 @@ func (s *Store) ListBuckets() ([]Bucket, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var buckets []Bucket for rows.Next() { var b Bucket @@ -244,7 +244,7 @@ func (s *Store) ListNamespaces(bucketARN string) ([]Namespace, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var nsList []Namespace for rows.Next() { var ns Namespace @@ -321,7 +321,7 @@ func (s *Store) ListTables(bucketARN, namespace string) ([]Table, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var tables []Table for rows.Next() { var t Table @@ -471,7 +471,7 @@ func (s *Store) ListMaintenance(resourceARN string) (map[string]string, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() out := make(map[string]string) for rows.Next() { var k, v string diff --git a/internal/services/sagemaker/provider.go b/internal/services/sagemaker/provider.go index 59e947b..33a64ba 100644 --- a/internal/services/sagemaker/provider.go +++ b/internal/services/sagemaker/provider.go @@ -376,7 +376,7 @@ func (p *Provider) describeModel(params map[string]any) (*plugin.Response, error return shared.JSONError("ResourceNotFound", "model not found: "+name, http.StatusBadRequest), nil } var container any - json.Unmarshal([]byte(m.PrimaryContainer), &container) + _ = json.Unmarshal([]byte(m.PrimaryContainer), &container) return shared.JSONResponse(http.StatusOK, map[string]any{ "ModelName": m.Name, "ModelArn": m.ARN, @@ -436,7 +436,7 @@ func (p *Provider) describeEndpointConfig(params map[string]any) (*plugin.Respon return shared.JSONError("ResourceNotFound", "endpoint config not found: "+name, http.StatusBadRequest), nil } var variants any - json.Unmarshal([]byte(ec.ProductionVariants), &variants) + _ = json.Unmarshal([]byte(ec.ProductionVariants), &variants) return shared.JSONResponse(http.StatusOK, map[string]any{ "EndpointConfigName": ec.Name, "EndpointConfigArn": ec.ARN, @@ -574,10 +574,10 @@ func (p *Provider) describeTrainingJob(params map[string]any) (*plugin.Response, return shared.JSONError("ResourceNotFound", "training job not found: "+name, http.StatusBadRequest), nil } var algorithm, inputConfig, outputConfig, resourceConfig any - json.Unmarshal([]byte(tj.Algorithm), &algorithm) - json.Unmarshal([]byte(tj.InputConfig), &inputConfig) - json.Unmarshal([]byte(tj.OutputConfig), &outputConfig) - json.Unmarshal([]byte(tj.ResourceConfig), &resourceConfig) + _ = json.Unmarshal([]byte(tj.Algorithm), &algorithm) + _ = json.Unmarshal([]byte(tj.InputConfig), &inputConfig) + _ = json.Unmarshal([]byte(tj.OutputConfig), &outputConfig) + _ = json.Unmarshal([]byte(tj.ResourceConfig), &resourceConfig) return shared.JSONResponse(http.StatusOK, map[string]any{ "TrainingJobName": tj.Name, "TrainingJobArn": tj.ARN, @@ -646,10 +646,10 @@ func (p *Provider) describeProcessingJob(params map[string]any) (*plugin.Respons return shared.JSONError("ResourceNotFound", "processing job not found: "+name, http.StatusBadRequest), nil } var appSpec, inputs, outputs, resources any - json.Unmarshal([]byte(pj.AppSpec), &appSpec) - json.Unmarshal([]byte(pj.Inputs), &inputs) - json.Unmarshal([]byte(pj.Outputs), &outputs) - json.Unmarshal([]byte(pj.Resources), &resources) + _ = json.Unmarshal([]byte(pj.AppSpec), &appSpec) + _ = json.Unmarshal([]byte(pj.Inputs), &inputs) + _ = json.Unmarshal([]byte(pj.Outputs), &outputs) + _ = json.Unmarshal([]byte(pj.Resources), &resources) return shared.JSONResponse(http.StatusOK, map[string]any{ "ProcessingJobName": pj.Name, "ProcessingJobArn": pj.ARN, @@ -717,9 +717,9 @@ func (p *Provider) describeTransformJob(params map[string]any) (*plugin.Response return shared.JSONError("ResourceNotFound", "transform job not found: "+name, http.StatusBadRequest), nil } var input, output, resources any - json.Unmarshal([]byte(tj.Input), &input) - json.Unmarshal([]byte(tj.Output), &output) - json.Unmarshal([]byte(tj.Resources), &resources) + _ = json.Unmarshal([]byte(tj.Input), &input) + _ = json.Unmarshal([]byte(tj.Output), &output) + _ = json.Unmarshal([]byte(tj.Resources), &resources) return shared.JSONResponse(http.StatusOK, map[string]any{ "TransformJobName": tj.Name, "TransformJobArn": tj.ARN, diff --git a/internal/services/sagemaker/provider_test.go b/internal/services/sagemaker/provider_test.go index 1ee087d..fcd8128 100644 --- a/internal/services/sagemaker/provider_test.go +++ b/internal/services/sagemaker/provider_test.go @@ -19,7 +19,7 @@ func newTestProvider(t *testing.T) *Provider { if err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}); err != nil { t.Fatalf("Init: %v", err) } - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/sagemaker/store.go b/internal/services/sagemaker/store.go index e0b2535..f0c0abd 100644 --- a/internal/services/sagemaker/store.go +++ b/internal/services/sagemaker/store.go @@ -306,7 +306,7 @@ func (s *Store) ListNotebookInstances() ([]NotebookInstance, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var items []NotebookInstance for rows.Next() { nb, err := scanNotebookInstance(rows) @@ -395,7 +395,7 @@ func (s *Store) ListModels() ([]Model, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var items []Model for rows.Next() { m, err := scanModel(rows) @@ -458,7 +458,7 @@ func (s *Store) ListEndpointConfigs() ([]EndpointConfig, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var items []EndpointConfig for rows.Next() { ec, err := scanEndpointConfig(rows) @@ -521,7 +521,7 @@ func (s *Store) ListEndpoints() ([]Endpoint, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var items []Endpoint for rows.Next() { e, err := scanEndpoint(rows) @@ -600,7 +600,7 @@ func (s *Store) ListTrainingJobs() ([]TrainingJob, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var items []TrainingJob for rows.Next() { tj, err := scanTrainingJob(rows) @@ -663,7 +663,7 @@ func (s *Store) ListProcessingJobs() ([]ProcessingJob, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var items []ProcessingJob for rows.Next() { pj, err := scanProcessingJob(rows) @@ -726,7 +726,7 @@ func (s *Store) ListTransformJobs() ([]TransformJob, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var items []TransformJob for rows.Next() { tj, err := scanTransformJob(rows) @@ -789,7 +789,7 @@ func (s *Store) ListPipelines() ([]Pipeline, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var items []Pipeline for rows.Next() { p, err := scanPipeline(rows) @@ -870,7 +870,7 @@ func (s *Store) ListPipelineExecutions(pipelineName string) ([]PipelineExecution if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var items []PipelineExecution for rows.Next() { pe, err := scanPipelineExecution(rows) @@ -933,7 +933,7 @@ func (s *Store) ListExperiments() ([]Experiment, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var items []Experiment for rows.Next() { e, err := scanExperiment(rows) @@ -1016,7 +1016,7 @@ func (s *Store) ListTrials(experimentName string) ([]Trial, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var items []Trial for rows.Next() { tr, err := scanTrial(rows) @@ -1091,7 +1091,7 @@ func (s *Store) ListDomains() ([]Domain, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var items []Domain for rows.Next() { d, err := scanDomain(rows) @@ -1175,7 +1175,7 @@ func (s *Store) ListUserProfiles(domainID string) ([]UserProfile, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var items []UserProfile for rows.Next() { up, err := scanUserProfile(rows) diff --git a/internal/services/scheduler/provider.go b/internal/services/scheduler/provider.go index 03d813b..cb8d0dc 100644 --- a/internal/services/scheduler/provider.go +++ b/internal/services/scheduler/provider.go @@ -46,7 +46,7 @@ func (p *SchedulerProvider) HandleRequest(_ context.Context, op string, req *htt body, _ := io.ReadAll(req.Body) var params map[string]any if len(body) > 0 { - json.Unmarshal(body, ¶ms) + _ = json.Unmarshal(body, ¶ms) } if params == nil { params = map[string]any{} @@ -271,7 +271,7 @@ func (p *SchedulerProvider) listSchedules(req *http.Request) (*plugin.Response, list := make([]map[string]any, 0, len(schedules)) for _, sc := range schedules { var target map[string]any - json.Unmarshal([]byte(sc.Target), &target) + _ = json.Unmarshal([]byte(sc.Target), &target) list = append(list, map[string]any{ "Arn": sc.ARN, "Name": sc.Name, @@ -341,7 +341,7 @@ func (p *SchedulerProvider) createScheduleGroup(req *http.Request, params map[st tags[k] = s } } - p.store.tags.AddTags(g.ARN, tags) + _ = p.store.tags.AddTags(g.ARN, tags) } return jsonResponse(http.StatusOK, map[string]any{"ScheduleGroupArn": g.ARN}) @@ -419,14 +419,14 @@ func (p *SchedulerProvider) tagResource(req *http.Request, params map[string]any tags[k] = s } } - p.store.tags.AddTags(arn, tags) + _ = p.store.tags.AddTags(arn, tags) return jsonResponse(http.StatusOK, map[string]any{}) } func (p *SchedulerProvider) untagResource(req *http.Request) (*plugin.Response, error) { arn := tagARN(req.URL.Path) keys := req.URL.Query()["TagKeys"] - p.store.tags.RemoveTags(arn, keys) + p.store.tags.RemoveTags(arn, keys) //nolint:errcheck return jsonResponse(http.StatusOK, map[string]any{}) } @@ -918,9 +918,9 @@ func rateLimitARN(path string) string { func scheduleToMap(sc *Schedule) map[string]any { var target map[string]any - json.Unmarshal([]byte(sc.Target), &target) + _ = json.Unmarshal([]byte(sc.Target), &target) var flexWindow map[string]any - json.Unmarshal([]byte(sc.FlexibleTimeWindow), &flexWindow) + _ = json.Unmarshal([]byte(sc.FlexibleTimeWindow), &flexWindow) return map[string]any{ "Arn": sc.ARN, "Name": sc.Name, diff --git a/internal/services/scheduler/provider_test.go b/internal/services/scheduler/provider_test.go index 191160f..e39408e 100644 --- a/internal/services/scheduler/provider_test.go +++ b/internal/services/scheduler/provider_test.go @@ -19,7 +19,7 @@ func newTestProvider(t *testing.T) *SchedulerProvider { t.Helper() p := &SchedulerProvider{} require.NoError(t, p.Init(plugin.PluginConfig{DataDir: t.TempDir()})) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/scheduler/store.go b/internal/services/scheduler/store.go index 15584e1..9f76cd1 100644 --- a/internal/services/scheduler/store.go +++ b/internal/services/scheduler/store.go @@ -107,7 +107,7 @@ func (s *Store) Close() error { return s.store.Close() } func (s *Store) ensureDefaultGroup() { arn := "arn:aws:scheduler:us-east-1:" + shared.DefaultAccountID + ":schedule-group/default" now := time.Now().Unix() - s.store.DB().Exec( + _, _ = s.store.DB().Exec( `INSERT OR IGNORE INTO scheduler_groups (name, arn, state, account_id, created_at) VALUES (?, ?, 'ACTIVE', ?, ?)`, "default", arn, shared.DefaultAccountID, now, ) @@ -173,7 +173,7 @@ func (s *Store) ListGroups(prefix string) ([]ScheduleGroup, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var groups []ScheduleGroup for rows.Next() { g, err := scanGroup(rows) @@ -274,7 +274,7 @@ func (s *Store) ListSchedules(groupName, prefix, state string) ([]Schedule, erro if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var schedules []Schedule for rows.Next() { sc, err := scanSchedule(rows) @@ -337,7 +337,7 @@ func (s *Store) ListRateLimits() ([]RateLimit, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var list []RateLimit for rows.Next() { var rl RateLimit diff --git a/internal/services/secretsmanager/provider_test.go b/internal/services/secretsmanager/provider_test.go index 82eb52f..d4fa90e 100644 --- a/internal/services/secretsmanager/provider_test.go +++ b/internal/services/secretsmanager/provider_test.go @@ -19,7 +19,7 @@ func newTestProvider(t *testing.T) *Provider { t.Helper() p := &Provider{} require.NoError(t, p.Init(plugin.PluginConfig{DataDir: t.TempDir()})) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/secretsmanager/store.go b/internal/services/secretsmanager/store.go index f811b15..496616b 100644 --- a/internal/services/secretsmanager/store.go +++ b/internal/services/secretsmanager/store.go @@ -180,7 +180,7 @@ func (s *SecretStore) ListSecrets(accountID string) ([]Secret, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var secrets []Secret for rows.Next() { var sec Secret @@ -369,7 +369,7 @@ func (s *SecretStore) GetTags(arn string) ([]Tag, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var tags []Tag for rows.Next() { var t Tag @@ -460,7 +460,7 @@ func (s *SecretStore) ListSecretVersionIds(nameOrARN string, includeDeprecated b if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var versions []SecretVersionInfo for rows.Next() { var v SecretVersionInfo diff --git a/internal/services/serverlessrepo/provider.go b/internal/services/serverlessrepo/provider.go index 1c1c68b..38c0ad8 100644 --- a/internal/services/serverlessrepo/provider.go +++ b/internal/services/serverlessrepo/provider.go @@ -162,7 +162,7 @@ func (p *ServerlessRepoProvider) HandleRequest(_ context.Context, op string, req appID := extractAppID(req.URL.Path) depID, _ := params["DependentApplicationId"].(string) depVer, _ := params["DependentSemanticVersion"].(string) - p.store.AddDependency(appID, depID, depVer) + p.store.AddDependency(appID, depID, depVer) //nolint:errcheck return shared.JSONResponse(http.StatusOK, map[string]any{}) case "RemoveApplicationDependency": return shared.JSONResponse(http.StatusOK, map[string]any{}) @@ -226,7 +226,7 @@ func (p *ServerlessRepoProvider) createApplication(params map[string]any) (*plug // If a semantic version is provided, also create a version if semVer := strParam(params, "SemanticVersion", "semanticVersion"); semVer != "" { templateURL := strParam(params, "TemplateUrl", "templateUrl") - p.store.CreateVersion(appID, semVer, templateURL) + p.store.CreateVersion(appID, semVer, templateURL) //nolint:errcheck } return shared.JSONResponse(http.StatusCreated, applicationToMap(app, "")) @@ -344,7 +344,7 @@ func (p *ServerlessRepoProvider) createApplicationVersion(req *http.Request, par return shared.JSONError("NotFoundException", "application not found", http.StatusNotFound), nil } templateURL, _ := params["TemplateUrl"].(string) - version, err := p.store.CreateVersion(appID, semVer, templateURL) + version, err := p.store.CreateVersion(appID, semVer, templateURL) //nolint:errcheck if err != nil { if isUniqueErr(err) { return shared.JSONError("ConflictException", "version already exists", http.StatusConflict), nil diff --git a/internal/services/serverlessrepo/provider_test.go b/internal/services/serverlessrepo/provider_test.go index 9f97bbc..ed103b4 100644 --- a/internal/services/serverlessrepo/provider_test.go +++ b/internal/services/serverlessrepo/provider_test.go @@ -19,7 +19,7 @@ func newTestProvider(t *testing.T) *ServerlessRepoProvider { t.Helper() p := &ServerlessRepoProvider{} require.NoError(t, p.Init(plugin.PluginConfig{DataDir: t.TempDir()})) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/serverlessrepo/store.go b/internal/services/serverlessrepo/store.go index 47b17e7..c540a5f 100644 --- a/internal/services/serverlessrepo/store.go +++ b/internal/services/serverlessrepo/store.go @@ -15,7 +15,6 @@ import ( var ( errApplicationNotFound = errors.New("application not found") - errVersionNotFound = errors.New("version not found") ) var migrations = []sqlite.Migration{ @@ -192,8 +191,8 @@ func (s *Store) DeleteApplication(appID string) error { return errApplicationNotFound } // Also delete versions and policy - s.store.DB().Exec(`DELETE FROM serverlessrepo_versions WHERE application_id=?`, appID) - s.store.DB().Exec(`DELETE FROM serverlessrepo_policies WHERE application_id=?`, appID) + _, _ = s.store.DB().Exec(`DELETE FROM serverlessrepo_versions WHERE application_id=?`, appID) + _, _ = s.store.DB().Exec(`DELETE FROM serverlessrepo_policies WHERE application_id=?`, appID) return nil } @@ -205,7 +204,7 @@ func (s *Store) ListApplications() ([]Application, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var apps []Application for rows.Next() { a, err := scanApplication(rows) @@ -244,7 +243,7 @@ func (s *Store) ListVersions(appID string) ([]ApplicationVersion, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var versions []ApplicationVersion for rows.Next() { var v ApplicationVersion @@ -367,7 +366,7 @@ func (s *Store) ListDependencies(appID string) ([]map[string]string, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var deps []map[string]string for rows.Next() { var depID, ver string diff --git a/internal/services/servicediscovery/provider.go b/internal/services/servicediscovery/provider.go index 19dbc91..11749bd 100644 --- a/internal/services/servicediscovery/provider.go +++ b/internal/services/servicediscovery/provider.go @@ -181,12 +181,12 @@ func (p *Provider) createNamespace(params map[string]any, nsType string) (*plugi // Handle tags if rawTags, ok := params["Tags"].([]any); ok { - p.store.tags.AddTags(ns.ARN, parseTags(rawTags)) + _ = p.store.tags.AddTags(ns.ARN, parseTags(rawTags)) //nolint:errcheck } targets := map[string]string{"NAMESPACE": id} targetsJSON, _ := json.Marshal(targets) - p.store.CreateOperation(opID, "CREATE_NAMESPACE", string(targetsJSON)) + _, _ = p.store.CreateOperation(opID, "CREATE_NAMESPACE", string(targetsJSON)) return shared.JSONResponse(http.StatusOK, map[string]any{"OperationId": opID}) } @@ -231,14 +231,14 @@ func (p *Provider) deleteNamespace(params map[string]any) (*plugin.Response, err if err != nil { return shared.JSONError("NamespaceNotFound", "namespace not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(ns.ARN) + _ = p.store.tags.DeleteAllTags(ns.ARN) //nolint:errcheck if err := p.store.DeleteNamespace(id); err != nil { return shared.JSONError("NamespaceNotFound", "namespace not found", http.StatusBadRequest), nil } opID := shared.GenerateUUID() targets := map[string]string{"NAMESPACE": id} targetsJSON, _ := json.Marshal(targets) - p.store.CreateOperation(opID, "DELETE_NAMESPACE", string(targetsJSON)) + _, _ = p.store.CreateOperation(opID, "DELETE_NAMESPACE", string(targetsJSON)) return shared.JSONResponse(http.StatusOK, map[string]any{"OperationId": opID}) } @@ -257,7 +257,7 @@ func (p *Provider) updateHttpNamespace(params map[string]any) (*plugin.Response, opID := shared.GenerateUUID() targets := map[string]string{"NAMESPACE": id} targetsJSON, _ := json.Marshal(targets) - p.store.CreateOperation(opID, "UPDATE_NAMESPACE", string(targetsJSON)) + _, _ = p.store.CreateOperation(opID, "UPDATE_NAMESPACE", string(targetsJSON)) return shared.JSONResponse(http.StatusOK, map[string]any{"OperationId": opID}) } @@ -302,7 +302,7 @@ func (p *Provider) createService(params map[string]any) (*plugin.Response, error } if rawTags, ok := params["Tags"].([]any); ok { - p.store.tags.AddTags(svc.ARN, parseTags(rawTags)) + _ = p.store.tags.AddTags(svc.ARN, parseTags(rawTags)) //nolint:errcheck } return shared.JSONResponse(http.StatusOK, map[string]any{ @@ -375,7 +375,7 @@ func (p *Provider) updateService(params map[string]any) (*plugin.Response, error opID := shared.GenerateUUID() targets := map[string]string{"SERVICE": id} targetsJSON, _ := json.Marshal(targets) - p.store.CreateOperation(opID, "UPDATE_SERVICE", string(targetsJSON)) + _, _ = p.store.CreateOperation(opID, "UPDATE_SERVICE", string(targetsJSON)) return shared.JSONResponse(http.StatusOK, map[string]any{"OperationId": opID}) } @@ -388,7 +388,7 @@ func (p *Provider) deleteService(params map[string]any) (*plugin.Response, error if err != nil { return shared.JSONError("ServiceNotFound", "service not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(svc.ARN) + _ = p.store.tags.DeleteAllTags(svc.ARN) //nolint:errcheck if err := p.store.DeleteService(id); err != nil { return shared.JSONError("ServiceNotFound", "service not found", http.StatusBadRequest), nil } @@ -423,7 +423,7 @@ func (p *Provider) registerInstance(params map[string]any) (*plugin.Response, er opID := shared.GenerateUUID() targets := map[string]string{"INSTANCE": instanceID, "SERVICE": serviceID} targetsJSON, _ := json.Marshal(targets) - p.store.CreateOperation(opID, "REGISTER_INSTANCE", string(targetsJSON)) + _, _ = p.store.CreateOperation(opID, "REGISTER_INSTANCE", string(targetsJSON)) return shared.JSONResponse(http.StatusOK, map[string]any{"OperationId": opID}) } @@ -439,7 +439,7 @@ func (p *Provider) deregisterInstance(params map[string]any) (*plugin.Response, opID := shared.GenerateUUID() targets := map[string]string{"INSTANCE": instanceID, "SERVICE": serviceID} targetsJSON, _ := json.Marshal(targets) - p.store.CreateOperation(opID, "DEREGISTER_INSTANCE", string(targetsJSON)) + _, _ = p.store.CreateOperation(opID, "DEREGISTER_INSTANCE", string(targetsJSON)) return shared.JSONResponse(http.StatusOK, map[string]any{"OperationId": opID}) } @@ -510,7 +510,7 @@ func (p *Provider) discoverInstances(params map[string]any) (*plugin.Response, e } for _, inst := range insts { var attrs map[string]string - json.Unmarshal([]byte(inst.Attributes), &attrs) + _ = json.Unmarshal([]byte(inst.Attributes), &attrs) instances = append(instances, map[string]any{ "InstanceId": inst.ID, "NamespaceName": namespaceName, @@ -572,7 +572,7 @@ func (p *Provider) getOperation(params map[string]any) (*plugin.Response, error) return shared.JSONError("OperationNotFound", "operation not found", http.StatusBadRequest), nil } var targets map[string]string - json.Unmarshal([]byte(op.Targets), &targets) + _ = json.Unmarshal([]byte(op.Targets), &targets) return shared.JSONResponse(http.StatusOK, map[string]any{ "Operation": map[string]any{ "Id": op.ID, @@ -640,7 +640,7 @@ func (p *Provider) updateServiceAttributes(params map[string]any) (*plugin.Respo attrMap[k] = vs } } - p.store.tags.AddTags("svc-attrs:"+svc.ARN, attrMap) + _ = p.store.tags.AddTags("svc-attrs:"+svc.ARN, attrMap) //nolint:errcheck return shared.JSONResponse(http.StatusOK, map[string]any{}) } @@ -660,7 +660,7 @@ func (p *Provider) deleteServiceAttributes(params map[string]any) (*plugin.Respo strKeys = append(strKeys, s) } } - p.store.tags.RemoveTags("svc-attrs:"+svc.ARN, strKeys) + p.store.tags.RemoveTags("svc-attrs:"+svc.ARN, strKeys) //nolint:errcheck return shared.JSONResponse(http.StatusOK, map[string]any{}) } @@ -731,8 +731,8 @@ func namespaceToMap(ns *Namespace, serviceCount int32) map[string]any { func serviceToMap(svc *Service, instanceCount int32) map[string]any { var dnsConfig any var healthConfig any - json.Unmarshal([]byte(svc.DnsConfig), &dnsConfig) - json.Unmarshal([]byte(svc.HealthConfig), &healthConfig) + _ = json.Unmarshal([]byte(svc.DnsConfig), &dnsConfig) + _ = json.Unmarshal([]byte(svc.HealthConfig), &healthConfig) return map[string]any{ "Id": svc.ID, "Arn": svc.ARN, @@ -748,7 +748,7 @@ func serviceToMap(svc *Service, instanceCount int32) map[string]any { func instanceToMap(inst *Instance) map[string]any { var attrs map[string]string - json.Unmarshal([]byte(inst.Attributes), &attrs) + _ = json.Unmarshal([]byte(inst.Attributes), &attrs) return map[string]any{ "Id": inst.ID, "Attributes": attrs, @@ -757,7 +757,7 @@ func instanceToMap(inst *Instance) map[string]any { func instanceSummaryToMap(inst *Instance) map[string]any { var attrs map[string]string - json.Unmarshal([]byte(inst.Attributes), &attrs) + _ = json.Unmarshal([]byte(inst.Attributes), &attrs) return map[string]any{ "Id": inst.ID, "Attributes": attrs, diff --git a/internal/services/servicediscovery/provider_test.go b/internal/services/servicediscovery/provider_test.go index 914ba62..723efaa 100644 --- a/internal/services/servicediscovery/provider_test.go +++ b/internal/services/servicediscovery/provider_test.go @@ -19,7 +19,7 @@ func newTestProvider(t *testing.T) *Provider { t.Helper() p := &Provider{} require.NoError(t, p.Init(plugin.PluginConfig{DataDir: t.TempDir()})) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/servicediscovery/store.go b/internal/services/servicediscovery/store.go index bc7ebca..fb0d2e5 100644 --- a/internal/services/servicediscovery/store.go +++ b/internal/services/servicediscovery/store.go @@ -135,7 +135,7 @@ func (s *Store) ListNamespaces() ([]Namespace, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Namespace for rows.Next() { ns, err := scanNamespace(rows) @@ -203,7 +203,7 @@ func (s *Store) ListServices(namespaceID string) ([]Service, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Service for rows.Next() { svc, err := scanService(rows) @@ -276,7 +276,7 @@ func (s *Store) ListInstances(serviceID string) ([]Instance, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Instance for rows.Next() { var inst Instance @@ -336,7 +336,7 @@ func (s *Store) ListOperations() ([]Operation, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Operation for rows.Next() { var op Operation diff --git a/internal/services/ses/provider.go b/internal/services/ses/provider.go index b849a40..e4c01b6 100644 --- a/internal/services/ses/provider.go +++ b/internal/services/ses/provider.go @@ -941,7 +941,7 @@ func (p *Provider) handleSetReceiptRulePosition(form url.Values) (*plugin.Respon ruleSetName := form.Get("RuleSetName") ruleName := form.Get("RuleName") pos := 0 - fmt.Sscanf(form.Get("Position"), "%d", &pos) + _, _ = fmt.Sscanf(form.Get("Position"), "%d", &pos) if err := p.store.SetReceiptRulePosition(ruleSetName, ruleName, pos); err != nil && !errors.Is(err, errNotFound) { return nil, err } @@ -1159,13 +1159,6 @@ func (p *Provider) handleGetSendQuota(form url.Values) (*plugin.Response, error) } func (p *Provider) handleGetSendStatistics(form url.Values) (*plugin.Response, error) { - type dataPoint struct { - DeliveryAttempts int `xml:"DeliveryAttempts"` - Bounces int `xml:"Bounces"` - Complaints int `xml:"Complaints"` - Rejects int `xml:"Rejects"` - Timestamp string `xml:"Timestamp"` - } type result struct { SendDataPoints struct{} `xml:"SendDataPoints"` } diff --git a/internal/services/ses/provider_test.go b/internal/services/ses/provider_test.go index 7aba920..3faaebd 100644 --- a/internal/services/ses/provider_test.go +++ b/internal/services/ses/provider_test.go @@ -19,7 +19,7 @@ func newTestProvider(t *testing.T) *Provider { t.Helper() p := &Provider{} require.NoError(t, p.Init(plugin.PluginConfig{DataDir: t.TempDir()})) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/ses/store.go b/internal/services/ses/store.go index f2f0440..f875b14 100644 --- a/internal/services/ses/store.go +++ b/internal/services/ses/store.go @@ -176,7 +176,7 @@ func (s *Store) ListIdentities(identityType string) ([]Identity, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Identity for rows.Next() { id, err := scanIdentity(rows) @@ -275,7 +275,7 @@ func (s *Store) ListTemplates() ([]Template, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Template for rows.Next() { var t Template @@ -330,7 +330,7 @@ func (s *Store) ListConfigSets() ([]ConfigSet, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []ConfigSet for rows.Next() { var cs ConfigSet @@ -390,7 +390,7 @@ func (s *Store) ListReceiptRuleSets() ([]ReceiptRuleSet, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []ReceiptRuleSet for rows.Next() { rs, err := scanRuleSet(rows) @@ -452,7 +452,7 @@ func (s *Store) CloneReceiptRuleSet(originalName, newName string) error { if err != nil { return err } - defer rows.Close() + defer func() { _ = rows.Close() }() for rows.Next() { var rr ReceiptRule var recJSON, actJSON string @@ -534,7 +534,7 @@ func (s *Store) ListReceiptRules(ruleSetName string) ([]ReceiptRule, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []ReceiptRule for rows.Next() { rr, err := scanRule(rows) @@ -636,7 +636,7 @@ func (s *Store) ListReceiptFilters() ([]ReceiptFilter, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []ReceiptFilter for rows.Next() { var f ReceiptFilter diff --git a/internal/services/sesv2/provider_test.go b/internal/services/sesv2/provider_test.go index f5948b6..b49ec24 100644 --- a/internal/services/sesv2/provider_test.go +++ b/internal/services/sesv2/provider_test.go @@ -18,7 +18,7 @@ func newProvider(t *testing.T) *Provider { if err != nil { t.Fatalf("create temp dir: %v", err) } - t.Cleanup(func() { os.RemoveAll(dir) }) + t.Cleanup(func() { _ = os.RemoveAll(dir) }) p := &Provider{} store, err := NewStore(dir) @@ -26,7 +26,7 @@ func newProvider(t *testing.T) *Provider { t.Fatalf("NewStore: %v", err) } p.store = store - t.Cleanup(func() { store.Close() }) + t.Cleanup(func() { _ = store.Close() }) return p } @@ -79,7 +79,7 @@ func callOpStatus(t *testing.T, p *Provider, op, path, method string, body map[s } var result map[string]any if len(resp.Body) > 0 { - json.Unmarshal(resp.Body, &result) + _ = json.Unmarshal(resp.Body, &result) } return result } @@ -437,7 +437,7 @@ func TestTags(t *testing.T) { t.Fatalf("expected 200, got %d: %s", resp.StatusCode, string(resp.Body)) } var result map[string]any - json.Unmarshal(resp.Body, &result) + _ = json.Unmarshal(resp.Body, &result) tags, _ := result["Tags"].([]any) if len(tags) != 2 { t.Errorf("expected 2 tags, got %d: %v", len(tags), tags) @@ -457,7 +457,7 @@ func TestTags(t *testing.T) { req3 := httptest.NewRequest(http.MethodGet, "/v2/email/tags?ResourceArn="+arn, nil) resp3, _ := p.HandleRequest(context.Background(), "ListTagsForResource", req3) var result3 map[string]any - json.Unmarshal(resp3.Body, &result3) + _ = json.Unmarshal(resp3.Body, &result3) tags3, _ := result3["Tags"].([]any) if len(tags3) != 1 { t.Errorf("expected 1 tag after untag, got %d: %v", len(tags3), tags3) diff --git a/internal/services/sesv2/store.go b/internal/services/sesv2/store.go index 279ef66..25205c5 100644 --- a/internal/services/sesv2/store.go +++ b/internal/services/sesv2/store.go @@ -215,7 +215,7 @@ func (s *Store) ListEmailIdentities() ([]EmailIdentity, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []EmailIdentity for rows.Next() { e, err := scanEmailIdentity(rows) @@ -279,7 +279,7 @@ func (s *Store) GetEmailIdentityPolicies(identityName string) (map[string]string if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() out := make(map[string]string) for rows.Next() { var k, v string @@ -316,7 +316,7 @@ func (s *Store) ListEmailTemplates() ([]EmailTemplate, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []EmailTemplate for rows.Next() { t, err := scanEmailTemplate(rows) @@ -376,7 +376,7 @@ func (s *Store) ListConfigSets() ([]ConfigSet, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []ConfigSet for rows.Next() { c, err := scanConfigSet(rows) @@ -444,7 +444,7 @@ func (s *Store) ListConfigSetEventDests(configSetName string) ([]ConfigSetEventD if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []ConfigSetEventDest for rows.Next() { var d ConfigSetEventDest @@ -502,7 +502,7 @@ func (s *Store) ListContactLists() ([]ContactList, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []ContactList for rows.Next() { cl, err := scanContactList(rows) @@ -568,7 +568,7 @@ func (s *Store) ListContacts(listName string) ([]Contact, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Contact for rows.Next() { c, err := scanContact(rows) @@ -627,7 +627,7 @@ func (s *Store) ListDedicatedIpPools() ([]DedicatedIpPool, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []DedicatedIpPool for rows.Next() { p, err := scanDedicatedIpPool(rows) @@ -672,7 +672,7 @@ func (s *Store) ListSuppressedDestinations() ([]SuppressedDestination, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []SuppressedDestination for rows.Next() { sd, err := scanSuppressedDestination(rows) diff --git a/internal/services/sfn/provider.go b/internal/services/sfn/provider.go index fd31877..9587813 100644 --- a/internal/services/sfn/provider.go +++ b/internal/services/sfn/provider.go @@ -264,7 +264,7 @@ func actToMap(act *Activity) map[string]any { func aliasToMap(a *StateMachineAlias) map[string]any { var rc any - json.Unmarshal([]byte(a.RoutingConfig), &rc) + _ = json.Unmarshal([]byte(a.RoutingConfig), &rc) return map[string]any{ "stateMachineAliasArn": a.ARN, "name": a.Name, @@ -322,7 +322,7 @@ func (p *Provider) createStateMachine(params map[string]any) (*plugin.Response, } // Handle tags if rawTags, ok := params["tags"].([]any); ok { - p.store.tags.AddTags(arn, parseTags(rawTags)) + _ = p.store.tags.AddTags(arn, parseTags(rawTags)) } return json10Resp(http.StatusOK, map[string]any{ "stateMachineArn": arn, @@ -369,7 +369,7 @@ func (p *Provider) deleteStateMachine(params map[string]any) (*plugin.Response, if err := p.store.DeleteStateMachine(arn); err != nil { return json10Err("StateMachineDoesNotExist", "state machine does not exist: "+arn, http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(arn) + _ = p.store.tags.DeleteAllTags(arn) return json10Resp(http.StatusOK, map[string]any{}) } @@ -469,8 +469,8 @@ func (p *Provider) createStateMachineAlias(params map[string]any) (*plugin.Respo // routingConfiguration: [{"stateMachineVersionArn": "...", "weight": N}] var stateMachineARN string rcArr, _ := params["routingConfiguration"].([]any) - for _, item := range rcArr { - m, _ := item.(map[string]any) + if len(rcArr) > 0 { + m, _ := rcArr[0].(map[string]any) versionARN, _ := m["stateMachineVersionArn"].(string) // Strip version suffix: arn:...:stateMachine:name:1 -> arn:...:stateMachine:name if idx := strings.LastIndex(versionARN, ":"); idx >= 0 { @@ -489,7 +489,6 @@ func (p *Provider) createStateMachineAlias(params map[string]any) (*plugin.Respo stateMachineARN = versionARN } } - break } if stateMachineARN == "" { return json10Err("ValidationException", "routingConfiguration must reference a state machine version", http.StatusBadRequest), nil @@ -829,7 +828,7 @@ func (p *Provider) createActivity(params map[string]any) (*plugin.Response, erro return nil, err } if rawTags, ok := params["tags"].([]any); ok { - p.store.tags.AddTags(arn, parseTags(rawTags)) + _ = p.store.tags.AddTags(arn, parseTags(rawTags)) } return json10Resp(http.StatusOK, map[string]any{ "activityArn": arn, @@ -871,7 +870,7 @@ func (p *Provider) deleteActivity(params map[string]any) (*plugin.Response, erro if err := p.store.DeleteActivity(arn); err != nil { return json10Err("ActivityDoesNotExist", "activity does not exist: "+arn, http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(arn) + _ = p.store.tags.DeleteAllTags(arn) return json10Resp(http.StatusOK, map[string]any{}) } diff --git a/internal/services/sfn/provider_test.go b/internal/services/sfn/provider_test.go index 5ee5257..a215736 100644 --- a/internal/services/sfn/provider_test.go +++ b/internal/services/sfn/provider_test.go @@ -20,7 +20,7 @@ func newTestProvider(t *testing.T) *Provider { p := &Provider{} err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/sfn/store.go b/internal/services/sfn/store.go index b31e8bf..f5b506d 100644 --- a/internal/services/sfn/store.go +++ b/internal/services/sfn/store.go @@ -158,7 +158,7 @@ func (s *Store) ListStateMachines() ([]StateMachine, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var sms []StateMachine for rows.Next() { sm, err := scanStateMachine(rows) @@ -230,7 +230,7 @@ func (s *Store) ListExecutions(stateMachineARN, statusFilter string) ([]Executio if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var execs []Execution for rows.Next() { ex, err := scanExecution(rows) @@ -285,7 +285,7 @@ func (s *Store) ListActivities() ([]Activity, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var acts []Activity for rows.Next() { act, err := scanActivity(rows) @@ -336,7 +336,7 @@ func (s *Store) ListAliases(stateMachineARN string) ([]StateMachineAlias, error) if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var aliases []StateMachineAlias for rows.Next() { a, err := scanAlias(rows) diff --git a/internal/services/shield/provider.go b/internal/services/shield/provider.go index 0e21365..592f27b 100644 --- a/internal/services/shield/provider.go +++ b/internal/services/shield/provider.go @@ -187,7 +187,7 @@ func (p *Provider) createProtection(params map[string]any) (*plugin.Response, er if rawTags, ok := params["Tags"].([]any); ok { tags := parseTagList(rawTags) - p.store.tags.AddTags(arn, tags) + _ = p.store.tags.AddTags(arn, tags) } return shared.JSONResponse(http.StatusOK, map[string]any{"ProtectionId": id}) @@ -237,7 +237,7 @@ func (p *Provider) deleteProtection(params map[string]any) (*plugin.Response, er if err != nil { return shared.JSONError("ResourceNotFoundException", "protection not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(prot.ARN) + _ = p.store.tags.DeleteAllTags(prot.ARN) if err := p.store.DeleteProtection(protID); err != nil { return shared.JSONError("ResourceNotFoundException", "protection not found", http.StatusBadRequest), nil } @@ -255,10 +255,10 @@ func (p *Provider) associateHealthCheck(params map[string]any) (*plugin.Response return shared.JSONError("ResourceNotFoundException", "protection not found", http.StatusBadRequest), nil } var ids []string - json.Unmarshal([]byte(prot.HealthCheckIDs), &ids) + _ = json.Unmarshal([]byte(prot.HealthCheckIDs), &ids) ids = append(ids, healthCheckARN) b, _ := json.Marshal(ids) - p.store.UpdateProtectionHealthChecks(protID, string(b)) + p.store.UpdateProtectionHealthChecks(protID, string(b)) //nolint:errcheck return shared.JSONResponse(http.StatusOK, map[string]any{}) } @@ -273,7 +273,7 @@ func (p *Provider) disassociateHealthCheck(params map[string]any) (*plugin.Respo return shared.JSONError("ResourceNotFoundException", "protection not found", http.StatusBadRequest), nil } var ids []string - json.Unmarshal([]byte(prot.HealthCheckIDs), &ids) + _ = json.Unmarshal([]byte(prot.HealthCheckIDs), &ids) filtered := ids[:0] for _, id := range ids { if id != healthCheckARN { @@ -281,7 +281,7 @@ func (p *Provider) disassociateHealthCheck(params map[string]any) (*plugin.Respo } } b, _ := json.Marshal(filtered) - p.store.UpdateProtectionHealthChecks(protID, string(b)) + p.store.UpdateProtectionHealthChecks(protID, string(b)) //nolint:errcheck return shared.JSONResponse(http.StatusOK, map[string]any{}) } @@ -326,7 +326,7 @@ func (p *Provider) createProtectionGroup(params map[string]any) (*plugin.Respons if rawTags, ok := params["Tags"].([]any); ok { tags := parseTagList(rawTags) - p.store.tags.AddTags(arn, tags) + _ = p.store.tags.AddTags(arn, tags) } return shared.JSONResponse(http.StatusOK, map[string]any{}) @@ -394,7 +394,7 @@ func (p *Provider) deleteProtectionGroup(params map[string]any) (*plugin.Respons if err != nil { return shared.JSONError("ResourceNotFoundException", "protection group not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(g.ARN) + _ = p.store.tags.DeleteAllTags(g.ARN) if err := p.store.DeleteProtectionGroup(groupID); err != nil { return shared.JSONError("ResourceNotFoundException", "protection group not found", http.StatusBadRequest), nil } @@ -411,11 +411,9 @@ func (p *Provider) listResourcesInProtectionGroup(params map[string]any) (*plugi return shared.JSONError("ResourceNotFoundException", "protection group not found", http.StatusBadRequest), nil } var members []string - json.Unmarshal([]byte(g.Members), &members) + _ = json.Unmarshal([]byte(g.Members), &members) arns := make([]string, 0, len(members)) - for _, m := range members { - arns = append(arns, m) - } + arns = append(arns, members...) return shared.JSONResponse(http.StatusOK, map[string]any{"ResourceArns": arns}) } @@ -423,7 +421,7 @@ func (p *Provider) listResourcesInProtectionGroup(params map[string]any) (*plugi func (p *Provider) createSubscription() (*plugin.Response, error) { now := time.Now().Unix() - p.store.store.DB().Exec( + _, _ = p.store.store.DB().Exec( `UPDATE subscription SET state='ACTIVE', start_time=?, end_time=? WHERE id='default'`, now, now+365*24*3600, ) @@ -448,7 +446,7 @@ func (p *Provider) updateSubscription(params map[string]any) (*plugin.Response, } func (p *Provider) deleteSubscription() (*plugin.Response, error) { - p.store.SetSubscriptionState("INACTIVE") + p.store.SetSubscriptionState("INACTIVE") //nolint:errcheck return shared.JSONResponse(http.StatusOK, map[string]any{}) } @@ -461,12 +459,12 @@ func (p *Provider) getSubscriptionState() (*plugin.Response, error) { } func (p *Provider) enableProactiveEngagement() (*plugin.Response, error) { - p.store.SetProactiveEngagement("ENABLED") + p.store.SetProactiveEngagement("ENABLED") //nolint:errcheck return shared.JSONResponse(http.StatusOK, map[string]any{}) } func (p *Provider) disableProactiveEngagement() (*plugin.Response, error) { - p.store.SetProactiveEngagement("DISABLED") + p.store.SetProactiveEngagement("DISABLED") //nolint:errcheck return shared.JSONResponse(http.StatusOK, map[string]any{}) } @@ -550,7 +548,7 @@ func (p *Provider) listTagsForResource(params map[string]any) (*plugin.Response, func protectionToMap(prot *Protection) map[string]any { var healthCheckIDs []string - json.Unmarshal([]byte(prot.HealthCheckIDs), &healthCheckIDs) + _ = json.Unmarshal([]byte(prot.HealthCheckIDs), &healthCheckIDs) if healthCheckIDs == nil { healthCheckIDs = []string{} } @@ -566,7 +564,7 @@ func protectionToMap(prot *Protection) map[string]any { func protectionGroupToMap(g *ProtectionGroup) map[string]any { var members []string - json.Unmarshal([]byte(g.Members), &members) + _ = json.Unmarshal([]byte(g.Members), &members) if members == nil { members = []string{} } diff --git a/internal/services/shield/provider_test.go b/internal/services/shield/provider_test.go index 2b704e9..f68dae6 100644 --- a/internal/services/shield/provider_test.go +++ b/internal/services/shield/provider_test.go @@ -19,7 +19,7 @@ func newTestProvider(t *testing.T) *Provider { t.Helper() p := &Provider{} require.NoError(t, p.Init(plugin.PluginConfig{DataDir: t.TempDir()})) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } @@ -33,11 +33,6 @@ func callJSON(t *testing.T, p *Provider, target, body string) *plugin.Response { return resp } -func parseJSON(t *testing.T, resp *plugin.Response) map[string]any { - t.Helper() - return parseBody(t, resp) -} - func parseBody(t *testing.T, resp *plugin.Response) map[string]any { t.Helper() var m map[string]any diff --git a/internal/services/shield/store.go b/internal/services/shield/store.go index fae4da9..d03862f 100644 --- a/internal/services/shield/store.go +++ b/internal/services/shield/store.go @@ -90,7 +90,7 @@ func NewStore(dataDir string) (*Store, error) { } st := &Store{store: s, tags: shared.NewTagStore(s)} // Ensure default subscription row exists - st.store.DB().Exec( + _, _ = st.store.DB().Exec( `INSERT OR IGNORE INTO subscription (id, state, start_time, end_time, auto_renew, proactive_engagement) VALUES ('default', 'ACTIVE', 0, 0, 'ENABLED', 'DISABLED')`) return st, nil @@ -138,7 +138,7 @@ func (s *Store) ListProtections() ([]Protection, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var protections []Protection for rows.Next() { p, err := scanProtection(rows) @@ -201,7 +201,7 @@ func (s *Store) ListProtectionGroups() ([]ProtectionGroup, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var groups []ProtectionGroup for rows.Next() { g, err := scanProtectionGroup(rows) diff --git a/internal/services/sns/provider_test.go b/internal/services/sns/provider_test.go index e9332fe..ddd6538 100644 --- a/internal/services/sns/provider_test.go +++ b/internal/services/sns/provider_test.go @@ -20,7 +20,7 @@ func newTestProvider(t *testing.T) *Provider { p := &Provider{} err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } @@ -111,7 +111,7 @@ func TestSNS_StoreDir(t *testing.T) { p := &Provider{} err := p.Init(plugin.PluginConfig{DataDir: dir}) require.NoError(t, err) - defer p.Shutdown(context.Background()) + defer func() { _ = p.Shutdown(context.Background()) }() // DB file should exist inside DataDir/sns/ _, err2 := filepath.Glob(filepath.Join(dir, "sns", "*.db")) require.NoError(t, err2) diff --git a/internal/services/sns/store.go b/internal/services/sns/store.go index 6a07286..45234ae 100644 --- a/internal/services/sns/store.go +++ b/internal/services/sns/store.go @@ -134,7 +134,7 @@ func (s *SNSStore) ListTopics(accountID string) ([]Topic, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var topics []Topic for rows.Next() { t, err := scanTopic(rows) @@ -195,7 +195,7 @@ func (s *SNSStore) ListSubscriptions(accountID string) ([]Subscription, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() return scanSubscriptions(rows) } @@ -204,7 +204,7 @@ func (s *SNSStore) ListSubscriptionsByTopic(topicARN string) ([]Subscription, er if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() return scanSubscriptions(rows) } @@ -358,7 +358,7 @@ func (s *SNSStore) ListTagsForResource(topicARN string) (map[string]string, erro if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() tags := map[string]string{} for rows.Next() { var k, v string diff --git a/internal/services/sqs/store.go b/internal/services/sqs/store.go index 44a0d8a..bbdfe09 100644 --- a/internal/services/sqs/store.go +++ b/internal/services/sqs/store.go @@ -411,7 +411,7 @@ func (s *QueueStore) SetQueueAttributes(queueName, accountID string, attrs map[s case float64: q.MaxReceiveCount = int(n) case string: - fmt.Sscanf(n, "%d", &q.MaxReceiveCount) + _, _ = fmt.Sscanf(n, "%d", &q.MaxReceiveCount) } } } diff --git a/internal/services/ssm/provider.go b/internal/services/ssm/provider.go index e48a0ef..c49031a 100644 --- a/internal/services/ssm/provider.go +++ b/internal/services/ssm/provider.go @@ -454,7 +454,7 @@ func (p *Provider) describeDocument(params map[string]any) (*plugin.Response, er } version := 0 if v, ok := params["DocumentVersion"].(string); ok && v != "" && v != "$LATEST" { - fmt.Sscanf(v, "%d", &version) + _, _ = fmt.Sscanf(v, "%d", &version) } doc, err := p.store.GetDocument(name, defaultAccountID, version) if err != nil { @@ -476,7 +476,7 @@ func (p *Provider) getDocumentContent(params map[string]any) (*plugin.Response, } version := 0 if v, ok := params["DocumentVersion"].(string); ok && v != "" && v != "$LATEST" { - fmt.Sscanf(v, "%d", &version) + _, _ = fmt.Sscanf(v, "%d", &version) } doc, err := p.store.GetDocument(name, defaultAccountID, version) if err != nil { diff --git a/internal/services/ssm/provider_test.go b/internal/services/ssm/provider_test.go index 3e477cc..6166a5a 100644 --- a/internal/services/ssm/provider_test.go +++ b/internal/services/ssm/provider_test.go @@ -19,7 +19,7 @@ func newTestProvider(t *testing.T) *Provider { t.Helper() p := &Provider{} require.NoError(t, p.Init(plugin.PluginConfig{DataDir: t.TempDir()})) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/ssm/store.go b/internal/services/ssm/store.go index cc30245..24bbb1a 100644 --- a/internal/services/ssm/store.go +++ b/internal/services/ssm/store.go @@ -209,7 +209,7 @@ func (s *SSMStore) GetParametersByPath(path, accountID string, recursive bool) ( if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var params []Parameter for rows.Next() { var p Parameter @@ -272,7 +272,7 @@ func (s *SSMStore) ListTags(name, accountID string) ([]Tag, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var tags []Tag for rows.Next() { var t Tag @@ -292,7 +292,7 @@ func (s *SSMStore) DescribeParameters(accountID string) ([]Parameter, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var params []Parameter for rows.Next() { var p Parameter @@ -315,7 +315,7 @@ func (s *SSMStore) GetParameterHistory(name, accountID string) ([]ParameterHisto if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var history []ParameterHistory for rows.Next() { var h ParameterHistory @@ -476,7 +476,7 @@ func (s *SSMStore) ListDocuments(accountID string) ([]Document, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var docs []Document for rows.Next() { var d Document diff --git a/internal/services/ssoadmin/provider.go b/internal/services/ssoadmin/provider.go index 1a4fc16..5bc3bbc 100644 --- a/internal/services/ssoadmin/provider.go +++ b/internal/services/ssoadmin/provider.go @@ -262,7 +262,7 @@ func (p *Provider) createInstance(params map[string]any) (*plugin.Response, erro } if rawTags, ok := params["Tags"].([]any); ok { - p.store.tags.AddTags(arn, parseTagList(rawTags)) + _ = p.store.tags.AddTags(arn, parseTagList(rawTags)) } return shared.JSONResponse(http.StatusOK, map[string]any{"InstanceArn": arn}) @@ -309,7 +309,7 @@ func (p *Provider) deleteInstance(params map[string]any) (*plugin.Response, erro if arn == "" { return ssoError("ValidationException", "InstanceArn is required", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(arn) + _ = p.store.tags.DeleteAllTags(arn) if err := p.store.DeleteInstance(arn); err != nil { return ssoError("ResourceNotFoundException", "instance not found", http.StatusBadRequest), nil } @@ -347,7 +347,7 @@ func (p *Provider) createPermissionSet(params map[string]any) (*plugin.Response, } if rawTags, ok := params["Tags"].([]any); ok { - p.store.tags.AddTags(arn, parseTagList(rawTags)) + _ = p.store.tags.AddTags(arn, parseTagList(rawTags)) } return shared.JSONResponse(http.StatusOK, map[string]any{ @@ -411,7 +411,7 @@ func (p *Provider) deletePermissionSet(params map[string]any) (*plugin.Response, if arn == "" { return ssoError("ValidationException", "PermissionSetArn is required", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(arn) + _ = p.store.tags.DeleteAllTags(arn) if err := p.store.DeletePermissionSet(arn); err != nil { return ssoError("ResourceNotFoundException", "permission set not found", http.StatusBadRequest), nil } @@ -646,7 +646,7 @@ func (p *Provider) getPermissionsBoundary(params map[string]any) (*plugin.Respon return ssoError("ResourceNotFoundException", "permission set not found", http.StatusBadRequest), nil } var pb any - json.Unmarshal([]byte(ps.PermissionsBoundary), &pb) + _ = json.Unmarshal([]byte(ps.PermissionsBoundary), &pb) return shared.JSONResponse(http.StatusOK, map[string]any{"PermissionsBoundary": pb}) } @@ -779,7 +779,7 @@ func (p *Provider) createApplication(params map[string]any) (*plugin.Response, e } if rawTags, ok := params["Tags"].([]any); ok { - p.store.tags.AddTags(arn, parseTagList(rawTags)) + _ = p.store.tags.AddTags(arn, parseTagList(rawTags)) } return shared.JSONResponse(http.StatusOK, map[string]any{"ApplicationArn": arn}) @@ -839,7 +839,7 @@ func (p *Provider) deleteApplication(params map[string]any) (*plugin.Response, e if arn == "" { return ssoError("ValidationException", "ApplicationArn is required", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(arn) + _ = p.store.tags.DeleteAllTags(arn) if err := p.store.DeleteApplication(arn); err != nil { return ssoError("ResourceNotFoundException", "application not found", http.StatusBadRequest), nil } @@ -878,7 +878,7 @@ func (p *Provider) createTrustedTokenIssuer(params map[string]any) (*plugin.Resp } if rawTags, ok := params["Tags"].([]any); ok { - p.store.tags.AddTags(arn, parseTagList(rawTags)) + _ = p.store.tags.AddTags(arn, parseTagList(rawTags)) } return shared.JSONResponse(http.StatusOK, map[string]any{"TrustedTokenIssuerArn": arn}) @@ -936,7 +936,7 @@ func (p *Provider) deleteTrustedTokenIssuer(params map[string]any) (*plugin.Resp if arn == "" { return ssoError("ValidationException", "TrustedTokenIssuerArn is required", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(arn) + _ = p.store.tags.DeleteAllTags(arn) if err := p.store.DeleteTrustedTokenIssuer(arn); err != nil { return ssoError("ResourceNotFoundException", "trusted token issuer not found", http.StatusBadRequest), nil } @@ -1055,7 +1055,7 @@ func applicationToMap(app *Application) map[string]any { func trustedTokenIssuerToMap(tti *TrustedTokenIssuer) map[string]any { var config any - json.Unmarshal([]byte(tti.Config), &config) + _ = json.Unmarshal([]byte(tti.Config), &config) return map[string]any{ "TrustedTokenIssuerArn": tti.ARN, "Name": tti.Name, diff --git a/internal/services/ssoadmin/provider_test.go b/internal/services/ssoadmin/provider_test.go index 65e1fe1..0b59a23 100644 --- a/internal/services/ssoadmin/provider_test.go +++ b/internal/services/ssoadmin/provider_test.go @@ -20,7 +20,7 @@ func newTestProvider(t *testing.T) *Provider { t.Helper() p := &Provider{} require.NoError(t, p.Init(plugin.PluginConfig{DataDir: t.TempDir()})) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/ssoadmin/store.go b/internal/services/ssoadmin/store.go index 816857b..30c92f7 100644 --- a/internal/services/ssoadmin/store.go +++ b/internal/services/ssoadmin/store.go @@ -176,7 +176,7 @@ func (s *Store) ListInstances() ([]Instance, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var insts []Instance for rows.Next() { inst, err := scanInstance(rows) @@ -239,7 +239,7 @@ func (s *Store) ListPermissionSets(instanceARN string) ([]PermissionSet, error) if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var sets []PermissionSet for rows.Next() { ps, err := scanPermissionSet(rows) @@ -346,7 +346,7 @@ func (s *Store) ListManagedPolicies(permissionSetARN string) ([]string, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var arns []string for rows.Next() { var arn string @@ -387,7 +387,7 @@ func (s *Store) ListCustomerManagedPolicies(permissionSetARN string) ([][2]strin if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var policies [][2]string for rows.Next() { var p [2]string @@ -435,7 +435,7 @@ func (s *Store) ListAccountAssignments(instanceARN, permissionSetARN, accountID if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() return scanAssignments(rows) } @@ -448,7 +448,7 @@ func (s *Store) ListAccountAssignmentsForPrincipal(instanceARN, principalID, pri if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() return scanAssignments(rows) } @@ -460,7 +460,7 @@ func (s *Store) ListAccountsForPermissionSet(instanceARN, permissionSetARN strin if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var accounts []string for rows.Next() { var id string @@ -480,7 +480,7 @@ func (s *Store) ListPermissionSetsProvisionedToAccount(instanceARN, accountID st if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var arns []string for rows.Next() { var arn string @@ -530,7 +530,7 @@ func (s *Store) ListApplications(instanceARN string) ([]Application, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var apps []Application for rows.Next() { app, err := scanApplication(rows) @@ -608,7 +608,7 @@ func (s *Store) ListTrustedTokenIssuers(instanceARN string) ([]TrustedTokenIssue if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var issuers []TrustedTokenIssuer for rows.Next() { tti, err := scanTrustedTokenIssuer(rows) diff --git a/internal/services/support/provider_test.go b/internal/services/support/provider_test.go index 5ce4fdb..4cfdf9f 100644 --- a/internal/services/support/provider_test.go +++ b/internal/services/support/provider_test.go @@ -19,7 +19,7 @@ func newTestProvider(t *testing.T) *Provider { t.Helper() p := &Provider{} require.NoError(t, p.Init(plugin.PluginConfig{DataDir: t.TempDir()})) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/support/store.go b/internal/services/support/store.go index 51a4381..3197a1f 100644 --- a/internal/services/support/store.go +++ b/internal/services/support/store.go @@ -143,7 +143,7 @@ func (s *Store) ListCases(includeResolved bool, filterIDs []string) ([]Case, err if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var cases []Case for rows.Next() { c, err := scanCase(rows) @@ -233,7 +233,7 @@ func (s *Store) ListCommunications(caseID string) ([]Communication, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var comms []Communication for rows.Next() { var c Communication diff --git a/internal/services/swf/provider.go b/internal/services/swf/provider.go index 35c265a..a5f96ea 100644 --- a/internal/services/swf/provider.go +++ b/internal/services/swf/provider.go @@ -255,7 +255,7 @@ func (p *Provider) registerDomain(params map[string]any) (*plugin.Response, erro return nil, err } if rawTags, ok := params["tags"].([]any); ok { - p.store.tags.AddTags(d.ARN, parseTags(rawTags)) + _ = p.store.tags.AddTags(d.ARN, parseTags(rawTags)) } return json10Resp(http.StatusOK, map[string]any{}) } @@ -800,7 +800,7 @@ func (p *Provider) tagResource(params map[string]any) (*plugin.Response, error) return json10Err("ValidationException", "resourceArn is required", http.StatusBadRequest), nil } if rawTags, ok := params["tags"].([]any); ok { - p.store.tags.AddTags(arn, parseTags(rawTags)) + _ = p.store.tags.AddTags(arn, parseTags(rawTags)) } return json10Resp(http.StatusOK, map[string]any{}) } @@ -817,7 +817,7 @@ func (p *Provider) untagResource(params map[string]any) (*plugin.Response, error keys = append(keys, s) } } - p.store.tags.RemoveTags(arn, keys) + p.store.tags.RemoveTags(arn, keys) //nolint:errcheck } return json10Resp(http.StatusOK, map[string]any{}) } diff --git a/internal/services/swf/provider_test.go b/internal/services/swf/provider_test.go index 86a2ec6..da994e8 100644 --- a/internal/services/swf/provider_test.go +++ b/internal/services/swf/provider_test.go @@ -20,7 +20,7 @@ func newTestProvider(t *testing.T) *Provider { p := &Provider{} err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/swf/store.go b/internal/services/swf/store.go index 31f26c5..b7a4f9e 100644 --- a/internal/services/swf/store.go +++ b/internal/services/swf/store.go @@ -162,7 +162,7 @@ func (s *Store) ListDomains(statusFilter string) ([]Domain, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var domains []Domain for rows.Next() { d, err := scanDomain(rows) @@ -218,7 +218,7 @@ func (s *Store) ListWorkflowTypes(domain, statusFilter string) ([]WorkflowType, if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var wts []WorkflowType for rows.Next() { wt, err := scanWorkflowType(rows) @@ -290,7 +290,7 @@ func (s *Store) ListActivityTypes(domain, statusFilter string) ([]ActivityType, if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var ats []ActivityType for rows.Next() { at, err := scanActivityType(rows) @@ -372,7 +372,7 @@ func (s *Store) ListWorkflowExecutions(domain, statusFilter string) ([]WorkflowE if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var execs []WorkflowExecution for rows.Next() { we, err := scanWorkflowExecution(rows) diff --git a/internal/services/textract/provider.go b/internal/services/textract/provider.go index b613e6a..7af49a4 100644 --- a/internal/services/textract/provider.go +++ b/internal/services/textract/provider.go @@ -214,7 +214,7 @@ func (p *Provider) createAdapter(params map[string]any) (*plugin.Response, error // Tags if rawTags, ok := params["Tags"].(map[string]any); ok { tags := flatMapTags(rawTags) - p.store.tags.AddTags(a.ARN, tags) + _ = p.store.tags.AddTags(a.ARN, tags) //nolint:errcheck } return shared.JSONResponse(http.StatusOK, map[string]any{"AdapterId": a.ID}) } @@ -284,7 +284,7 @@ func (p *Provider) deleteAdapter(params map[string]any) (*plugin.Response, error if err != nil { return shared.JSONError("ResourceNotFoundException", "adapter not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(a.ARN) + _ = p.store.tags.DeleteAllTags(a.ARN) //nolint:errcheck if err := p.store.DeleteAdapter(id); err != nil { return shared.JSONError("ResourceNotFoundException", "adapter not found", http.StatusBadRequest), nil } @@ -600,7 +600,7 @@ func adapterVersionToMap(av *AdapterVersion) map[string]any { func jsonParse(s string) any { var v any - json.Unmarshal([]byte(s), &v) + _ = json.Unmarshal([]byte(s), &v) return v } diff --git a/internal/services/textract/provider_test.go b/internal/services/textract/provider_test.go index 4692ccc..f032bc6 100644 --- a/internal/services/textract/provider_test.go +++ b/internal/services/textract/provider_test.go @@ -19,7 +19,7 @@ func newTestProvider(t *testing.T) *Provider { t.Helper() p := &Provider{} require.NoError(t, p.Init(plugin.PluginConfig{DataDir: t.TempDir()})) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/textract/store.go b/internal/services/textract/store.go index 6ba8e3e..a2673a7 100644 --- a/internal/services/textract/store.go +++ b/internal/services/textract/store.go @@ -121,7 +121,7 @@ func (s *Store) ListAdapters() ([]Adapter, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var adapters []Adapter for rows.Next() { a, err := scanAdapter(rows) @@ -195,7 +195,7 @@ func (s *Store) ListAdapterVersions(adapterID string) ([]AdapterVersion, error) if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var versions []AdapterVersion for rows.Next() { v, err := scanAdapterVersion(rows) diff --git a/internal/services/timestreamwrite/provider_test.go b/internal/services/timestreamwrite/provider_test.go index a364449..0623d32 100644 --- a/internal/services/timestreamwrite/provider_test.go +++ b/internal/services/timestreamwrite/provider_test.go @@ -19,7 +19,7 @@ func newTestProvider(t *testing.T) *Provider { t.Helper() p := &Provider{} require.NoError(t, p.Init(plugin.PluginConfig{DataDir: t.TempDir()})) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/timestreamwrite/store.go b/internal/services/timestreamwrite/store.go index 9496d3b..39b4746 100644 --- a/internal/services/timestreamwrite/store.go +++ b/internal/services/timestreamwrite/store.go @@ -145,7 +145,7 @@ func (s *Store) ListDatabases() ([]*DatabaseRow, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var dbs []*DatabaseRow for rows.Next() { db, err := scanDatabase(rows) @@ -231,7 +231,7 @@ func (s *Store) ListTables(dbName string) ([]*TableRow, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var tables []*TableRow for rows.Next() { t, err := scanTable(rows) @@ -315,7 +315,7 @@ func (s *Store) ListBatchLoadTasks(statusFilter string) ([]*BatchLoadTaskRow, er if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var tasks []*BatchLoadTaskRow for rows.Next() { t, err := scanBatchLoadTask(rows) @@ -417,8 +417,8 @@ func dbRowToMap(r *DatabaseRow) map[string]any { func tableRowToMap(r *TableRow) map[string]any { memHours := int64(6) magDays := int64(73000) - fmt.Sscanf(r.RetentionMem, "%d", &memHours) - fmt.Sscanf(r.RetentionMag, "%d", &magDays) + _, _ = fmt.Sscanf(r.RetentionMem, "%d", &memHours) + _, _ = fmt.Sscanf(r.RetentionMag, "%d", &magDays) return map[string]any{ "Arn": r.ARN, "TableName": r.Name, diff --git a/internal/services/transcribe/provider.go b/internal/services/transcribe/provider.go index dcba388..9d18339 100644 --- a/internal/services/transcribe/provider.go +++ b/internal/services/transcribe/provider.go @@ -210,7 +210,7 @@ func (p *Provider) startTranscriptionJob(params map[string]any) (*plugin.Respons } arn := shared.BuildARN("transcribe", "transcription-job", name) if rawTags, ok := params["Tags"].([]any); ok { - p.store.tags.AddTags(arn, parseListTags(rawTags)) + _ = p.store.tags.AddTags(arn, parseListTags(rawTags)) } return shared.JSONResponse(http.StatusOK, map[string]any{ "TranscriptionJob": transcriptionJobToMap(j), @@ -255,7 +255,7 @@ func (p *Provider) deleteTranscriptionJob(params map[string]any) (*plugin.Respon return shared.JSONError("ValidationException", "TranscriptionJobName is required", http.StatusBadRequest), nil } arn := shared.BuildARN("transcribe", "transcription-job", name) - p.store.tags.DeleteAllTags(arn) + _ = p.store.tags.DeleteAllTags(arn) if err := p.store.DeleteTranscriptionJob(name); err != nil { return shared.JSONError("NotFoundException", "transcription job not found", http.StatusBadRequest), nil } @@ -1019,7 +1019,7 @@ func medicalScribeJobToMap(displayName string, j *TranscriptionJob) map[string]a func jsonParse(s string) any { var v any - json.Unmarshal([]byte(s), &v) + _ = json.Unmarshal([]byte(s), &v) return v } diff --git a/internal/services/transcribe/provider_test.go b/internal/services/transcribe/provider_test.go index a615b17..d21abbd 100644 --- a/internal/services/transcribe/provider_test.go +++ b/internal/services/transcribe/provider_test.go @@ -19,7 +19,7 @@ func newTestProvider(t *testing.T) *Provider { t.Helper() p := &Provider{} require.NoError(t, p.Init(plugin.PluginConfig{DataDir: t.TempDir()})) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/transcribe/store.go b/internal/services/transcribe/store.go index c1757e7..e0b238d 100644 --- a/internal/services/transcribe/store.go +++ b/internal/services/transcribe/store.go @@ -164,7 +164,7 @@ func (s *Store) ListTranscriptionJobs(statusFilter string) ([]TranscriptionJob, if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var jobs []TranscriptionJob for rows.Next() { j, err := scanTranscriptionJob(rows) @@ -240,7 +240,7 @@ func (s *Store) ListVocabularies(language string) ([]Vocabulary, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var vocabs []Vocabulary for rows.Next() { v, err := scanVocabulary(rows) @@ -330,7 +330,7 @@ func (s *Store) ListVocabularyFilters(language string) ([]VocabularyFilter, erro if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var filters []VocabularyFilter for rows.Next() { f, err := scanVocabularyFilter(rows) @@ -420,7 +420,7 @@ func (s *Store) ListLanguageModels(language string) ([]LanguageModel, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var models []LanguageModel for rows.Next() { m, err := scanLanguageModel(rows) @@ -487,7 +487,7 @@ func (s *Store) ListCallAnalyticsCategories() ([]CallAnalyticsCategory, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var cats []CallAnalyticsCategory for rows.Next() { c, err := scanCallAnalyticsCategory(rows) diff --git a/internal/services/transfer/provider.go b/internal/services/transfer/provider.go index 7a4ce56..daab86a 100644 --- a/internal/services/transfer/provider.go +++ b/internal/services/transfer/provider.go @@ -206,7 +206,7 @@ func (p *Provider) createServer(params map[string]any) (*plugin.Response, error) } if rawTags, ok := params["Tags"].([]any); ok { - p.store.tags.AddTags(srv.ARN, parseTags(rawTags)) + _ = p.store.tags.AddTags(srv.ARN, parseTags(rawTags)) } return shared.JSONResponse(http.StatusOK, map[string]any{"ServerId": srv.ID}) @@ -272,7 +272,7 @@ func (p *Provider) deleteServer(params map[string]any) (*plugin.Response, error) if err != nil { return shared.JSONError("ResourceNotFoundException", "server not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(srv.ARN) + _ = p.store.tags.DeleteAllTags(srv.ARN) if err := p.store.DeleteServer(serverID); err != nil { return shared.JSONError("ResourceNotFoundException", "server not found", http.StatusBadRequest), nil } @@ -332,7 +332,7 @@ func (p *Provider) importHostKey(params map[string]any) (*plugin.Response, error } if rawTags, ok := params["Tags"].([]any); ok { - p.store.tags.AddTags(hk.ARN, parseTags(rawTags)) + _ = p.store.tags.AddTags(hk.ARN, parseTags(rawTags)) } return shared.JSONResponse(http.StatusOK, map[string]any{ @@ -418,7 +418,7 @@ func (p *Provider) deleteHostKeyOp(params map[string]any) (*plugin.Response, err if err != nil { return shared.JSONError("ResourceNotFoundException", "host key not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(hk.ARN) + _ = p.store.tags.DeleteAllTags(hk.ARN) if err := p.store.DeleteHostKey(hostKeyID, serverID); err != nil { return shared.JSONError("ResourceNotFoundException", "host key not found", http.StatusBadRequest), nil } @@ -767,9 +767,9 @@ func (p *Provider) testIdentityProvider(params map[string]any) (*plugin.Response func serverToMap(srv *Server, tags []map[string]string) map[string]any { var protocols any - json.Unmarshal([]byte(srv.Protocols), &protocols) + _ = json.Unmarshal([]byte(srv.Protocols), &protocols) var identityProvider any - json.Unmarshal([]byte(srv.IdentityProvider), &identityProvider) + _ = json.Unmarshal([]byte(srv.IdentityProvider), &identityProvider) return map[string]any{ "Arn": srv.ARN, "Domain": srv.Domain, diff --git a/internal/services/transfer/provider_test.go b/internal/services/transfer/provider_test.go index 9420fb8..7154140 100644 --- a/internal/services/transfer/provider_test.go +++ b/internal/services/transfer/provider_test.go @@ -19,7 +19,7 @@ func newTestProvider(t *testing.T) *Provider { t.Helper() p := &Provider{} require.NoError(t, p.Init(plugin.PluginConfig{DataDir: t.TempDir()})) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/transfer/store.go b/internal/services/transfer/store.go index b860e1e..eba5419 100644 --- a/internal/services/transfer/store.go +++ b/internal/services/transfer/store.go @@ -134,7 +134,7 @@ func (s *Store) ListServers() ([]Server, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Server for rows.Next() { srv, err := scanServer(rows) @@ -202,7 +202,7 @@ func (s *Store) ListHostKeys(serverID string) ([]HostKey, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []HostKey for rows.Next() { hk, err := scanHostKey(rows) @@ -271,7 +271,7 @@ func (s *Store) ListAccesses(serverID string) ([]Access, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var out []Access for rows.Next() { a, err := scanAccess(rows) diff --git a/internal/services/waf/provider.go b/internal/services/waf/provider.go index f6e1407..0d94575 100644 --- a/internal/services/waf/provider.go +++ b/internal/services/waf/provider.go @@ -374,7 +374,7 @@ func (p *Provider) getWebACL(params map[string]any) (*plugin.Response, error) { return nil, err } var rules any - json.Unmarshal([]byte(w.Rules), &rules) + _ = json.Unmarshal([]byte(w.Rules), &rules) if rules == nil { rules = []any{} } @@ -424,7 +424,7 @@ func (p *Provider) updateWebACL(params map[string]any) (*plugin.Response, error) } if updates, ok := params["Updates"].([]any); ok { var rules []any - json.Unmarshal([]byte(w.Rules), &rules) + _ = json.Unmarshal([]byte(w.Rules), &rules) if rules == nil { rules = []any{} } @@ -503,7 +503,7 @@ func (p *Provider) getIPSet(params map[string]any) (*plugin.Response, error) { return nil, err } var descs any - json.Unmarshal([]byte(ip.Descriptors), &descs) + _ = json.Unmarshal([]byte(ip.Descriptors), &descs) if descs == nil { descs = []any{} } @@ -542,7 +542,7 @@ func (p *Provider) updateIPSet(params map[string]any) (*plugin.Response, error) } if updates, ok := params["Updates"].([]any); ok { var descs []any - json.Unmarshal([]byte(ip.Descriptors), &descs) + _ = json.Unmarshal([]byte(ip.Descriptors), &descs) if descs == nil { descs = []any{} } @@ -627,7 +627,7 @@ func (p *Provider) getRule(params map[string]any) (*plugin.Response, error) { return nil, err } var preds any - json.Unmarshal([]byte(r.Predicates), &preds) + _ = json.Unmarshal([]byte(r.Predicates), &preds) if preds == nil { preds = []any{} } @@ -667,7 +667,7 @@ func (p *Provider) updateRule(params map[string]any) (*plugin.Response, error) { } if updates, ok := params["Updates"].([]any); ok { var preds []any - json.Unmarshal([]byte(r.Predicates), &preds) + _ = json.Unmarshal([]byte(r.Predicates), &preds) if preds == nil { preds = []any{} } @@ -853,7 +853,7 @@ func (p *Provider) getRateBasedRule(params map[string]any) (*plugin.Response, er return nil, err } var preds any - json.Unmarshal([]byte(r.Predicates), &preds) + _ = json.Unmarshal([]byte(r.Predicates), &preds) if preds == nil { preds = []any{} } @@ -957,7 +957,7 @@ func (p *Provider) getByteMatchSet(params map[string]any) (*plugin.Response, err return nil, err } var tuples any - json.Unmarshal([]byte(b.Tuples), &tuples) + _ = json.Unmarshal([]byte(b.Tuples), &tuples) if tuples == nil { tuples = []any{} } @@ -996,7 +996,7 @@ func (p *Provider) updateByteMatchSet(params map[string]any) (*plugin.Response, } if updates, ok := params["Updates"].([]any); ok { var tuples []any - json.Unmarshal([]byte(b.Tuples), &tuples) + _ = json.Unmarshal([]byte(b.Tuples), &tuples) if tuples == nil { tuples = []any{} } @@ -1073,7 +1073,7 @@ func (p *Provider) getRegexPatternSet(params map[string]any) (*plugin.Response, return nil, err } var patterns any - json.Unmarshal([]byte(r.Patterns), &patterns) + _ = json.Unmarshal([]byte(r.Patterns), &patterns) if patterns == nil { patterns = []any{} } @@ -1112,7 +1112,7 @@ func (p *Provider) updateRegexPatternSet(params map[string]any) (*plugin.Respons } if updates, ok := params["Updates"].([]any); ok { var patterns []any - json.Unmarshal([]byte(r.Patterns), &patterns) + _ = json.Unmarshal([]byte(r.Patterns), &patterns) if patterns == nil { patterns = []any{} } @@ -1189,7 +1189,7 @@ func (p *Provider) getSizeConstraintSet(params map[string]any) (*plugin.Response return nil, err } var constraints any - json.Unmarshal([]byte(sc.Constraints), &constraints) + _ = json.Unmarshal([]byte(sc.Constraints), &constraints) if constraints == nil { constraints = []any{} } @@ -1228,7 +1228,7 @@ func (p *Provider) updateSizeConstraintSet(params map[string]any) (*plugin.Respo } if updates, ok := params["Updates"].([]any); ok { var constraints []any - json.Unmarshal([]byte(sc.Constraints), &constraints) + _ = json.Unmarshal([]byte(sc.Constraints), &constraints) if constraints == nil { constraints = []any{} } @@ -1305,7 +1305,7 @@ func (p *Provider) getSqlInjectionMatchSet(params map[string]any) (*plugin.Respo return nil, err } var tuples any - json.Unmarshal([]byte(si.Tuples), &tuples) + _ = json.Unmarshal([]byte(si.Tuples), &tuples) if tuples == nil { tuples = []any{} } @@ -1344,7 +1344,7 @@ func (p *Provider) updateSqlInjectionMatchSet(params map[string]any) (*plugin.Re } if updates, ok := params["Updates"].([]any); ok { var tuples []any - json.Unmarshal([]byte(si.Tuples), &tuples) + _ = json.Unmarshal([]byte(si.Tuples), &tuples) if tuples == nil { tuples = []any{} } @@ -1421,7 +1421,7 @@ func (p *Provider) getXssMatchSet(params map[string]any) (*plugin.Response, erro return nil, err } var tuples any - json.Unmarshal([]byte(x.Tuples), &tuples) + _ = json.Unmarshal([]byte(x.Tuples), &tuples) if tuples == nil { tuples = []any{} } @@ -1460,7 +1460,7 @@ func (p *Provider) updateXssMatchSet(params map[string]any) (*plugin.Response, e } if updates, ok := params["Updates"].([]any); ok { var tuples []any - json.Unmarshal([]byte(x.Tuples), &tuples) + _ = json.Unmarshal([]byte(x.Tuples), &tuples) if tuples == nil { tuples = []any{} } @@ -1537,7 +1537,7 @@ func (p *Provider) getGeoMatchSet(params map[string]any) (*plugin.Response, erro return nil, err } var constraints any - json.Unmarshal([]byte(g.Constraints), &constraints) + _ = json.Unmarshal([]byte(g.Constraints), &constraints) if constraints == nil { constraints = []any{} } @@ -1576,7 +1576,7 @@ func (p *Provider) updateGeoMatchSet(params map[string]any) (*plugin.Response, e } if updates, ok := params["Updates"].([]any); ok { var constraints []any - json.Unmarshal([]byte(g.Constraints), &constraints) + _ = json.Unmarshal([]byte(g.Constraints), &constraints) if constraints == nil { constraints = []any{} } @@ -1653,7 +1653,7 @@ func (p *Provider) getRegexMatchSet(params map[string]any) (*plugin.Response, er return nil, err } var tuples any - json.Unmarshal([]byte(r.Tuples), &tuples) + _ = json.Unmarshal([]byte(r.Tuples), &tuples) if tuples == nil { tuples = []any{} } @@ -1692,7 +1692,7 @@ func (p *Provider) updateRegexMatchSet(params map[string]any) (*plugin.Response, } if updates, ok := params["Updates"].([]any); ok { var tuples []any - json.Unmarshal([]byte(r.Tuples), &tuples) + _ = json.Unmarshal([]byte(r.Tuples), &tuples) if tuples == nil { tuples = []any{} } @@ -1760,7 +1760,7 @@ func (p *Provider) getLoggingConfiguration(params map[string]any) (*plugin.Respo return nil, err } var lc any - json.Unmarshal([]byte(config), &lc) + _ = json.Unmarshal([]byte(config), &lc) return jsonResp(http.StatusOK, map[string]any{"LoggingConfiguration": lc}) } @@ -1786,7 +1786,7 @@ func (p *Provider) listLoggingConfigurations(_ map[string]any) (*plugin.Response items := make([]any, 0, len(configs)) for _, c := range configs { var lc any - json.Unmarshal([]byte(c["config"]), &lc) + _ = json.Unmarshal([]byte(c["config"]), &lc) items = append(items, lc) } return jsonResp(http.StatusOK, map[string]any{"LoggingConfigurations": items}) diff --git a/internal/services/waf/provider_test.go b/internal/services/waf/provider_test.go index dceb891..405dd8c 100644 --- a/internal/services/waf/provider_test.go +++ b/internal/services/waf/provider_test.go @@ -20,7 +20,7 @@ func newTestProvider(t *testing.T) *Provider { t.Helper() p := &Provider{} require.NoError(t, p.Init(plugin.PluginConfig{DataDir: t.TempDir()})) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/waf/store.go b/internal/services/waf/store.go index 864dc3b..05f124b 100644 --- a/internal/services/waf/store.go +++ b/internal/services/waf/store.go @@ -253,7 +253,7 @@ func (s *Store) ListWebACLs() ([]WebACL, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []WebACL for rows.Next() { var w WebACL @@ -321,7 +321,7 @@ func (s *Store) ListIPSets() ([]IPSet, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []IPSet for rows.Next() { var ip IPSet @@ -389,7 +389,7 @@ func (s *Store) ListRules() ([]Rule, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []Rule for rows.Next() { var r Rule @@ -457,7 +457,7 @@ func (s *Store) ListRuleGroups() ([]RuleGroup, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []RuleGroup for rows.Next() { var rg RuleGroup @@ -510,7 +510,7 @@ func (s *Store) ListRateBasedRules() ([]RateBasedRule, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []RateBasedRule for rows.Next() { var r RateBasedRule @@ -578,7 +578,7 @@ func (s *Store) ListByteMatchSets() ([]ByteMatchSet, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []ByteMatchSet for rows.Next() { var b ByteMatchSet @@ -646,7 +646,7 @@ func (s *Store) ListRegexPatternSets() ([]RegexPatternSet, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []RegexPatternSet for rows.Next() { var r RegexPatternSet @@ -714,7 +714,7 @@ func (s *Store) ListSizeConstraintSets() ([]SizeConstraintSet, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []SizeConstraintSet for rows.Next() { var sc SizeConstraintSet @@ -782,7 +782,7 @@ func (s *Store) ListSqlInjectionMatchSets() ([]SqlInjectionMatchSet, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []SqlInjectionMatchSet for rows.Next() { var si SqlInjectionMatchSet @@ -850,7 +850,7 @@ func (s *Store) ListXssMatchSets() ([]XssMatchSet, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []XssMatchSet for rows.Next() { var x XssMatchSet @@ -918,7 +918,7 @@ func (s *Store) ListGeoMatchSets() ([]GeoMatchSet, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []GeoMatchSet for rows.Next() { var g GeoMatchSet @@ -986,7 +986,7 @@ func (s *Store) ListRegexMatchSets() ([]RegexMatchSet, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []RegexMatchSet for rows.Next() { var r RegexMatchSet @@ -1065,7 +1065,7 @@ func (s *Store) ListLoggingConfigs() ([]map[string]string, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var result []map[string]string for rows.Next() { var arn, config string diff --git a/internal/services/wafv2/provider.go b/internal/services/wafv2/provider.go index 25c3f11..9038d2e 100644 --- a/internal/services/wafv2/provider.go +++ b/internal/services/wafv2/provider.go @@ -269,7 +269,7 @@ func (p *Provider) createWebACL(params map[string]any) (*plugin.Response, error) } if rawTags, ok := params["Tags"].([]any); ok { - p.store.tags.AddTags(arn, parseTagList(rawTags)) + _ = p.store.tags.AddTags(arn, parseTagList(rawTags)) } return shared.JSONResponse(http.StatusOK, map[string]any{ @@ -362,7 +362,7 @@ func (p *Provider) deleteWebACL(params map[string]any) (*plugin.Response, error) if err != nil { return wafError("WAFNonexistentItemException", "web ACL not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(w.ARN) + _ = p.store.tags.DeleteAllTags(w.ARN) if err := p.store.DeleteWebACL(name, scope); err != nil { return wafError("WAFNonexistentItemException", "web ACL not found", http.StatusBadRequest), nil } @@ -475,7 +475,7 @@ func (p *Provider) createIPSet(params map[string]any) (*plugin.Response, error) } if rawTags, ok := params["Tags"].([]any); ok { - p.store.tags.AddTags(arn, parseTagList(rawTags)) + _ = p.store.tags.AddTags(arn, parseTagList(rawTags)) } return shared.JSONResponse(http.StatusOK, map[string]any{ @@ -555,7 +555,7 @@ func (p *Provider) deleteIPSet(params map[string]any) (*plugin.Response, error) if err != nil { return wafError("WAFNonexistentItemException", "IP set not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(ip.ARN) + _ = p.store.tags.DeleteAllTags(ip.ARN) if err := p.store.DeleteIPSet(name, scope); err != nil { return wafError("WAFNonexistentItemException", "IP set not found", http.StatusBadRequest), nil } @@ -601,7 +601,7 @@ func (p *Provider) createRegexPatternSet(params map[string]any) (*plugin.Respons } if rawTags, ok := params["Tags"].([]any); ok { - p.store.tags.AddTags(arn, parseTagList(rawTags)) + _ = p.store.tags.AddTags(arn, parseTagList(rawTags)) } return shared.JSONResponse(http.StatusOK, map[string]any{ @@ -681,7 +681,7 @@ func (p *Provider) deleteRegexPatternSet(params map[string]any) (*plugin.Respons if err != nil { return wafError("WAFNonexistentItemException", "regex pattern set not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(r.ARN) + _ = p.store.tags.DeleteAllTags(r.ARN) if err := p.store.DeleteRegexPatternSet(name, scope); err != nil { return wafError("WAFNonexistentItemException", "regex pattern set not found", http.StatusBadRequest), nil } @@ -738,7 +738,7 @@ func (p *Provider) createRuleGroup(params map[string]any) (*plugin.Response, err } if rawTags, ok := params["Tags"].([]any); ok { - p.store.tags.AddTags(arn, parseTagList(rawTags)) + _ = p.store.tags.AddTags(arn, parseTagList(rawTags)) } return shared.JSONResponse(http.StatusOK, map[string]any{ @@ -822,7 +822,7 @@ func (p *Provider) deleteRuleGroup(params map[string]any) (*plugin.Response, err if err != nil { return wafError("WAFNonexistentItemException", "rule group not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(rg.ARN) + _ = p.store.tags.DeleteAllTags(rg.ARN) if err := p.store.DeleteRuleGroup(name, scope); err != nil { return wafError("WAFNonexistentItemException", "rule group not found", http.StatusBadRequest), nil } @@ -865,7 +865,7 @@ func (p *Provider) listAPIKeys(params map[string]any) (*plugin.Response, error) list := make([]map[string]any, 0, len(keys)) for _, k := range keys { var domains []string - json.Unmarshal([]byte(k.TokenDomains), &domains) + _ = json.Unmarshal([]byte(k.TokenDomains), &domains) if domains == nil { domains = []string{} } @@ -903,7 +903,7 @@ func (p *Provider) getDecryptedAPIKey(params map[string]any) (*plugin.Response, return wafError("WAFNonexistentItemException", "API key not found", http.StatusBadRequest), nil } var domains []string - json.Unmarshal([]byte(k.TokenDomains), &domains) + _ = json.Unmarshal([]byte(k.TokenDomains), &domains) if domains == nil { domains = []string{} } @@ -1098,9 +1098,9 @@ func webACLSummary(w *WebACL) map[string]any { func webACLDetail(w *WebACL) map[string]any { var defaultAction, rules, visConfig any - json.Unmarshal([]byte(w.DefaultAction), &defaultAction) - json.Unmarshal([]byte(w.Rules), &rules) - json.Unmarshal([]byte(w.VisibilityConfig), &visConfig) + _ = json.Unmarshal([]byte(w.DefaultAction), &defaultAction) + _ = json.Unmarshal([]byte(w.Rules), &rules) + _ = json.Unmarshal([]byte(w.VisibilityConfig), &visConfig) if rules == nil { rules = []any{} } @@ -1130,7 +1130,7 @@ func ipSetSummary(ip *IPSet) map[string]any { func ipSetDetail(ip *IPSet) map[string]any { var addresses []string - json.Unmarshal([]byte(ip.Addresses), &addresses) + _ = json.Unmarshal([]byte(ip.Addresses), &addresses) if addresses == nil { addresses = []string{} } @@ -1156,7 +1156,7 @@ func regexPatternSetSummary(r *RegexPatternSet) map[string]any { func regexPatternSetDetail(r *RegexPatternSet) map[string]any { var patterns []any - json.Unmarshal([]byte(r.Patterns), &patterns) + _ = json.Unmarshal([]byte(r.Patterns), &patterns) if patterns == nil { patterns = []any{} } @@ -1182,8 +1182,8 @@ func ruleGroupSummary(rg *RuleGroup) map[string]any { func ruleGroupDetail(rg *RuleGroup) map[string]any { var rules, visConfig any - json.Unmarshal([]byte(rg.Rules), &rules) - json.Unmarshal([]byte(rg.VisibilityConfig), &visConfig) + _ = json.Unmarshal([]byte(rg.Rules), &rules) + _ = json.Unmarshal([]byte(rg.VisibilityConfig), &visConfig) if rules == nil { rules = []any{} } @@ -1200,8 +1200,8 @@ func ruleGroupDetail(rg *RuleGroup) map[string]any { func buildLoggingConfig(resourceARN, destinations, redactedFields string) map[string]any { var dests, rf []any - json.Unmarshal([]byte(destinations), &dests) - json.Unmarshal([]byte(redactedFields), &rf) + _ = json.Unmarshal([]byte(destinations), &dests) + _ = json.Unmarshal([]byte(redactedFields), &rf) if dests == nil { dests = []any{} } diff --git a/internal/services/wafv2/provider_test.go b/internal/services/wafv2/provider_test.go index 994d54f..c30ac14 100644 --- a/internal/services/wafv2/provider_test.go +++ b/internal/services/wafv2/provider_test.go @@ -20,7 +20,7 @@ func newTestProvider(t *testing.T) *Provider { t.Helper() p := &Provider{} require.NoError(t, p.Init(plugin.PluginConfig{DataDir: t.TempDir()})) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/wafv2/store.go b/internal/services/wafv2/store.go index ca27ad5..7549cec 100644 --- a/internal/services/wafv2/store.go +++ b/internal/services/wafv2/store.go @@ -207,7 +207,7 @@ func (s *Store) ListWebACLs(scope string) ([]WebACL, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var acls []WebACL for rows.Next() { w, err := scanWebACL(rows) @@ -301,7 +301,7 @@ func (s *Store) ListResourcesForWebACL(webACLARN string) ([]string, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var arns []string for rows.Next() { var arn string @@ -339,7 +339,7 @@ func (s *Store) ListIPSets(scope string) ([]IPSet, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var sets []IPSet for rows.Next() { ip, err := scanIPSet(rows) @@ -416,7 +416,7 @@ func (s *Store) ListRegexPatternSets(scope string) ([]RegexPatternSet, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var sets []RegexPatternSet for rows.Next() { r, err := scanRegexPatternSet(rows) @@ -493,7 +493,7 @@ func (s *Store) ListRuleGroups(scope string) ([]RuleGroup, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var groups []RuleGroup for rows.Next() { rg, err := scanRuleGroup(rows) @@ -566,7 +566,7 @@ func (s *Store) ListAPIKeys(scope string) ([]APIKey, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var keys []APIKey for rows.Next() { var k APIKey @@ -639,7 +639,7 @@ func (s *Store) ListLoggingConfigs() ([][3]string, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var configs [][3]string for rows.Next() { var c [3]string diff --git a/internal/services/xray/provider.go b/internal/services/xray/provider.go index a8ea76c..8b17b39 100644 --- a/internal/services/xray/provider.go +++ b/internal/services/xray/provider.go @@ -297,7 +297,7 @@ func (p *Provider) createGroup(params map[string]any) (*plugin.Response, error) return nil, err } if rawTags, ok := params["Tags"].(map[string]any); ok { - p.store.tags.AddTags(arn, toStringMap(rawTags)) //nolint:errcheck + _ = p.store.tags.AddTags(arn, toStringMap(rawTags)) //nolint:errcheck } stored, err := p.store.GetGroup(name) if err != nil { @@ -379,7 +379,7 @@ func (p *Provider) deleteGroup(name string) (*plugin.Response, error) { if err != nil { return shared.JSONError("InvalidRequestException", "group not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(g.ARN) //nolint:errcheck + _ = p.store.tags.DeleteAllTags(g.ARN) //nolint:errcheck if err := p.store.DeleteGroup(name); err != nil { return shared.JSONError("InvalidRequestException", "group not found", http.StatusBadRequest), nil } @@ -451,7 +451,7 @@ func (p *Provider) createSamplingRule(params map[string]any) (*plugin.Response, return nil, err } if rawTags, ok := params["Tags"].(map[string]any); ok { - p.store.tags.AddTags(arn, toStringMap(rawTags)) //nolint:errcheck + _ = p.store.tags.AddTags(arn, toStringMap(rawTags)) //nolint:errcheck } stored, err := p.store.GetSamplingRule(name) if err != nil { @@ -509,7 +509,7 @@ func (p *Provider) deleteSamplingRule(params map[string]any) (*plugin.Response, if err != nil { return shared.JSONError("InvalidRequestException", "sampling rule not found", http.StatusBadRequest), nil } - p.store.tags.DeleteAllTags(r.ARN) //nolint:errcheck + _ = p.store.tags.DeleteAllTags(r.ARN) //nolint:errcheck if err := p.store.DeleteSamplingRule(name); err != nil { return shared.JSONError("InvalidRequestException", "sampling rule not found", http.StatusBadRequest), nil } @@ -653,7 +653,7 @@ func groupToMap(g *Group, tags map[string]string) map[string]any { tags = map[string]string{} } var insightsConfig any - json.Unmarshal([]byte(g.InsightsConfig), &insightsConfig) //nolint:errcheck + _ = json.Unmarshal([]byte(g.InsightsConfig), &insightsConfig) //nolint:errcheck return map[string]any{ "GroupName": g.Name, "GroupARN": g.ARN, diff --git a/internal/services/xray/provider_test.go b/internal/services/xray/provider_test.go index 3d8960f..35fc399 100644 --- a/internal/services/xray/provider_test.go +++ b/internal/services/xray/provider_test.go @@ -20,7 +20,7 @@ func newTestProvider(t *testing.T) *Provider { p := &Provider{} err := p.Init(plugin.PluginConfig{DataDir: t.TempDir()}) require.NoError(t, err) - t.Cleanup(func() { p.Shutdown(context.Background()) }) + t.Cleanup(func() { _ = p.Shutdown(context.Background()) }) return p } diff --git a/internal/services/xray/store.go b/internal/services/xray/store.go index dc0fefb..a286ccf 100644 --- a/internal/services/xray/store.go +++ b/internal/services/xray/store.go @@ -120,7 +120,7 @@ func (s *Store) ListGroups() ([]Group, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var groups []Group for rows.Next() { g, err := scanGroup(rows) @@ -189,7 +189,7 @@ func (s *Store) ListSamplingRules() ([]SamplingRule, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var rules []SamplingRule for rows.Next() { r, err := scanSamplingRule(rows) @@ -280,7 +280,7 @@ func (s *Store) GetSegmentsByTraceID(traceID string) ([]TraceSegment, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var segs []TraceSegment for rows.Next() { var seg TraceSegment @@ -298,7 +298,7 @@ func (s *Store) ListDistinctTraceIDs() ([]string, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var ids []string for rows.Next() { var id string diff --git a/internal/shared/store.go b/internal/shared/store.go index 8057c47..b82078d 100644 --- a/internal/shared/store.go +++ b/internal/shared/store.go @@ -38,7 +38,7 @@ func (s *ResourceStore[T]) List(where string, args []any) ([]T, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() var items []T for rows.Next() { item, err := s.scanner(rows) diff --git a/internal/shared/store_test.go b/internal/shared/store_test.go index 23c2061..61a8235 100644 --- a/internal/shared/store_test.go +++ b/internal/shared/store_test.go @@ -37,7 +37,7 @@ func newTestResourceStore(t *testing.T) *ResourceStore[testItem] { dbPath := t.TempDir() + "/test.db" db, err := sqlite.Open(dbPath, testMigrations) require.NoError(t, err) - t.Cleanup(func() { db.Close() }) + t.Cleanup(func() { _ = db.Close() }) return NewResourceStore[testItem](db, "items", "id", "id, name", testScanner) } diff --git a/internal/shared/tags.go b/internal/shared/tags.go index e0cbd8c..30dd857 100644 --- a/internal/shared/tags.go +++ b/internal/shared/tags.go @@ -56,7 +56,7 @@ func (s *TagStore) ListTags(arn string) (map[string]string, error) { if err != nil { return nil, err } - defer rows.Close() + defer func() { _ = rows.Close() }() tags := make(map[string]string) for rows.Next() { var k, v string diff --git a/internal/shared/tags_test.go b/internal/shared/tags_test.go index 58a61cb..9f9d8e6 100644 --- a/internal/shared/tags_test.go +++ b/internal/shared/tags_test.go @@ -15,7 +15,7 @@ func newTestTagStore(t *testing.T) *TagStore { dbPath := t.TempDir() + "/tags.db" db, err := sqlite.Open(dbPath, TagMigrations) require.NoError(t, err) - t.Cleanup(func() { db.Close() }) + t.Cleanup(func() { _ = db.Close() }) return NewTagStore(db) } diff --git a/internal/storage/sqlite/store.go b/internal/storage/sqlite/store.go index 5022601..3551eb1 100644 --- a/internal/storage/sqlite/store.go +++ b/internal/storage/sqlite/store.go @@ -33,13 +33,13 @@ func Open(dbPath string, migrations []Migration) (*Store, error) { } if _, err := db.Exec("PRAGMA journal_mode=WAL;"); err != nil { - db.Close() + _ = db.Close() return nil, fmt.Errorf("enable WAL: %w", err) } s := &Store{db: db, path: dbPath} if err := s.migrate(migrations); err != nil { - db.Close() + _ = db.Close() return nil, fmt.Errorf("migrate: %w", err) } diff --git a/internal/storage/sqlite/store_test.go b/internal/storage/sqlite/store_test.go index 14176f6..805c473 100644 --- a/internal/storage/sqlite/store_test.go +++ b/internal/storage/sqlite/store_test.go @@ -18,7 +18,7 @@ func TestOpen_CreatesDatabaseAndRunsMigrations(t *testing.T) { store, err := Open(dbPath, migrations) require.NoError(t, err) - defer store.Close() + defer func() { _ = store.Close() }() _, err = store.DB().Exec(`INSERT INTO items (id, name) VALUES ('1', 'test')`) assert.NoError(t, err) @@ -32,11 +32,11 @@ func TestOpen_SkipsAlreadyAppliedMigrations(t *testing.T) { store, err := Open(dbPath, migrations) require.NoError(t, err) - store.Close() + _ = store.Close() store2, err := Open(dbPath, migrations) require.NoError(t, err) - defer store2.Close() + defer func() { _ = store2.Close() }() } func TestOpen_AppliesNewMigrations(t *testing.T) { @@ -46,14 +46,14 @@ func TestOpen_AppliesNewMigrations(t *testing.T) { {Version: 1, SQL: `CREATE TABLE items (id TEXT PRIMARY KEY, name TEXT NOT NULL)`}, }) require.NoError(t, err) - store.Close() + _ = store.Close() store2, err := Open(dbPath, []Migration{ {Version: 1, SQL: `CREATE TABLE items (id TEXT PRIMARY KEY, name TEXT NOT NULL)`}, {Version: 2, SQL: `ALTER TABLE items ADD COLUMN description TEXT NOT NULL DEFAULT ''`}, }) require.NoError(t, err) - defer store2.Close() + defer func() { _ = store2.Close() }() _, err = store2.DB().Exec(`INSERT INTO items (id, name, description) VALUES ('1', 'test', 'desc')`) assert.NoError(t, err)