diff --git a/admin/commands/summary.go b/admin/commands/summary.go index 886148a8cb..71a6191eca 100644 --- a/admin/commands/summary.go +++ b/admin/commands/summary.go @@ -357,12 +357,12 @@ type SummaryCommand struct { Pprof bool `name:"pprof" help:"Include performance profiling data"` } -func (cmd *SummaryCommand) makeArchive(ctx context.Context, globals *flags.GlobalFlags) (err error) { +func (cmd *SummaryCommand) makeArchive(ctx context.Context, globals *flags.GlobalFlags) error { var f *os.File + var err error if f, err = os.Create(cmd.Filename); err != nil { - err = errors.WithStack(err) - return //nolint:nakedret + return errors.WithStack(err) } defer func() { @@ -389,7 +389,7 @@ func (cmd *SummaryCommand) makeArchive(ctx context.Context, globals *flags.Globa addServerData(ctx, zipW, cmd.Pprof) } - return //nolint:nakedret + return nil } // RunCmdWithContext runs summary command. diff --git a/agent/agents/process/process_logger.go b/agent/agents/process/process_logger.go index b34b1f1e2f..b9a2f85a8c 100644 --- a/agent/agents/process/process_logger.go +++ b/agent/agents/process/process_logger.go @@ -55,14 +55,14 @@ func newProcessLogger(l *logrus.Entry, lines int, redactWords []string) *process // Write implements io.Writer. // This method is thread-safe. -func (pl *processLogger) Write(p []byte) (n int, err error) { //nolint:nonamedreturns +func (pl *processLogger) Write(p []byte) (int, error) { pl.m.Lock() defer pl.m.Unlock() b := bytes.NewBuffer(pl.buf) - n, err = b.Write(p) + n, err := b.Write(p) if err != nil { - return //nolint:nakedret + return n, err } var line string @@ -70,8 +70,7 @@ func (pl *processLogger) Write(p []byte) (n int, err error) { //nolint:nonamedre line, err = b.ReadString('\n') if err != nil { pl.buf = []byte(line) - err = nil - return //nolint:nakedret + return n, nil //nolint:nilerr } line = strings.TrimSuffix(line, "\n") if pl.replacer != nil { diff --git a/agent/client/channel/channel_test.go b/agent/client/channel/channel_test.go index 5a785fa508..ba40d66411 100644 --- a/agent/client/channel/channel_test.go +++ b/agent/client/channel/channel_test.go @@ -49,10 +49,12 @@ func (s *testServer) Connect(stream agentpb.Agent_ConnectServer) error { var _ agentpb.AgentServer = (*testServer)(nil) -//nolint:nakedret -func setup(t *testing.T, connect func(agentpb.Agent_ConnectServer) error, expected ...error) (channel *Channel, cc *grpc.ClientConn, teardown func()) { +func setup(t *testing.T, connect func(agentpb.Agent_ConnectServer) error, expected ...error) (*Channel, *grpc.ClientConn, func()) { t.Helper() + var channel *Channel + var cc *grpc.ClientConn + var teardown func() // logrus.SetLevel(logrus.DebugLevel) // start server with given connect handler @@ -101,7 +103,7 @@ func setup(t *testing.T, connect func(agentpb.Agent_ConnectServer) error, expect require.NoError(t, <-serveError) } - return + return channel, cc, teardown } func TestAgentRequestWithTruncatedInvalidUTF8(t *testing.T) { diff --git a/agent/config/config.go b/agent/config/config.go index 9ba26d6911..f97f917541 100644 --- a/agent/config/config.go +++ b/agent/config/config.go @@ -186,7 +186,9 @@ func getFromCmdLine(cfg *Config, l *logrus.Entry) (string, error) { } // get is Get for unit tests: it parses args instead of command-line. -func get(args []string, cfg *Config, l *logrus.Entry) (configFileF string, err error) { //nolint:nonamedreturns,cyclop +func get(args []string, cfg *Config, l *logrus.Entry) (string, error) { //nolint:cyclop + var configFileF string + var err error // tweak configuration on exit to cover all return points defer func() { if cfg == nil { @@ -302,25 +304,25 @@ func get(args []string, cfg *Config, l *logrus.Entry) (configFileF string, err e // parse command-line flags and environment variables app, cfgFileF := Application(cfg) if _, err = app.Parse(args); err != nil { - return //nolint:nakedret + return configFileF, err } if *cfgFileF == "" { - return //nolint:nakedret + return configFileF, err } if configFileF, err = filepath.Abs(*cfgFileF); err != nil { - return //nolint:nakedret + return configFileF, err } l.Infof("Loading configuration file %s.", configFileF) fileCfg, err := loadFromFile(configFileF) if err != nil { - return //nolint:nakedret + return configFileF, err } // re-parse flags into configuration from file app, _ = Application(fileCfg) if _, err = app.Parse(args); err != nil { - return //nolint:nakedret + return configFileF, err } *cfg = *fileCfg diff --git a/managed/models/action_helpers_test.go b/managed/models/action_helpers_test.go index 735881a0db..3c530710d4 100644 --- a/managed/models/action_helpers_test.go +++ b/managed/models/action_helpers_test.go @@ -118,8 +118,12 @@ func TestCleanupResults(t *testing.T) { require.NoError(t, sqlDB.Close()) }() - setup := func(t *testing.T) (q *reform.Querier, teardown func(t *testing.T)) { + setup := func(t *testing.T) (*reform.Querier, func(t *testing.T)) { t.Helper() + + var q *reform.Querier + var teardown func(t *testing.T) + db := reform.NewDB(sqlDB, postgresql.Dialect, reform.NewPrintfLogger(t.Logf)) tx, err := db.Begin() require.NoError(t, err) @@ -158,7 +162,7 @@ func TestCleanupResults(t *testing.T) { t.Helper() require.NoError(t, tx.Rollback()) } - return //nolint:nakedret + return q, teardown } t.Run("CheckActionResultByID", func(t *testing.T) { diff --git a/managed/models/agent_helpers_test.go b/managed/models/agent_helpers_test.go index 1fbbb118f6..55652f3384 100644 --- a/managed/models/agent_helpers_test.go +++ b/managed/models/agent_helpers_test.go @@ -45,12 +45,12 @@ func TestAgentHelpers(t *testing.T) { require.NoError(t, sqlDB.Close()) }() - setup := func(t *testing.T) (q *reform.Querier, teardown func(t *testing.T)) { + setup := func(t *testing.T) (*reform.Querier, func(t *testing.T)) { t.Helper() db := reform.NewDB(sqlDB, postgresql.Dialect, reform.NewPrintfLogger(t.Logf)) tx, err := db.Begin() require.NoError(t, err) - q = tx.Querier + q := tx.Querier for _, str := range []reform.Struct{ &models.Node{ @@ -188,11 +188,11 @@ func TestAgentHelpers(t *testing.T) { require.NoError(t, q.Insert(str)) } - teardown = func(t *testing.T) { + teardown := func(t *testing.T) { t.Helper() require.NoError(t, tx.Rollback()) } - return //nolint:nakedret + return q, teardown } t.Run("AgentsForNode", func(t *testing.T) { diff --git a/managed/models/agent_model_test.go b/managed/models/agent_model_test.go index d762bee99f..a8a09de5ad 100644 --- a/managed/models/agent_model_test.go +++ b/managed/models/agent_model_test.go @@ -384,12 +384,12 @@ func TestExporterURL(t *testing.T) { require.NoError(t, sqlDB.Close()) }() - setup := func(t *testing.T) (q *reform.Querier, teardown func(t *testing.T)) { + setup := func(t *testing.T) (*reform.Querier, func(t *testing.T)) { t.Helper() db := reform.NewDB(sqlDB, postgresql.Dialect, reform.NewPrintfLogger(t.Logf)) tx, err := db.Begin() require.NoError(t, err) - q = tx.Querier + q := tx.Querier for _, str := range []reform.Struct{ &models.Node{ @@ -504,11 +504,11 @@ func TestExporterURL(t *testing.T) { require.NoError(t, q.Insert(str), "failed to INSERT %+v", str) } - teardown = func(t *testing.T) { + teardown := func(t *testing.T) { t.Helper() require.NoError(t, tx.Rollback()) } - return //nolint:nakedret + return q, teardown } t.Run("ExporterURL", func(t *testing.T) { diff --git a/managed/models/dsn_helpers_test.go b/managed/models/dsn_helpers_test.go index 242e8542be..4c8574618e 100644 --- a/managed/models/dsn_helpers_test.go +++ b/managed/models/dsn_helpers_test.go @@ -43,12 +43,12 @@ func TestFindDSNByServiceID(t *testing.T) { require.NoError(t, sqlDB.Close()) }() - setup := func(t *testing.T) (q *reform.Querier, teardown func(t *testing.T)) { + setup := func(t *testing.T) (*reform.Querier, func(t *testing.T)) { t.Helper() db := reform.NewDB(sqlDB, postgresql.Dialect, reform.NewPrintfLogger(t.Logf)) tx, err := db.Begin() require.NoError(t, err) - q = tx.Querier + q := tx.Querier for _, str := range []reform.Struct{ &models.Node{ @@ -165,11 +165,11 @@ func TestFindDSNByServiceID(t *testing.T) { require.NoError(t, q.Insert(str)) } - teardown = func(t *testing.T) { + teardown := func(t *testing.T) { t.Helper() require.NoError(t, tx.Rollback()) } - return //nolint:nakedret + return q, teardown } t.Run("FindDSNByServiceIDandPMMAgentIDWithNoAgent", func(t *testing.T) { diff --git a/managed/models/kubernetes_helpers_test.go b/managed/models/kubernetes_helpers_test.go index 625f69e006..0e7af0c3bd 100644 --- a/managed/models/kubernetes_helpers_test.go +++ b/managed/models/kubernetes_helpers_test.go @@ -44,12 +44,12 @@ func TestKubernetesHelpers(t *testing.T) { require.NoError(t, sqlDB.Close()) }) - setup := func(t *testing.T) (q *reform.Querier, teardown func(t *testing.T)) { + setup := func(t *testing.T) (*reform.Querier, func(t *testing.T)) { t.Helper() db := reform.NewDB(sqlDB, postgresql.Dialect, reform.NewPrintfLogger(t.Logf)) tx, err := db.Begin() require.NoError(t, err) - q = tx.Querier + q := tx.Querier for _, str := range []reform.Struct{ &models.KubernetesCluster{ @@ -82,11 +82,11 @@ func TestKubernetesHelpers(t *testing.T) { require.NoError(t, q.Insert(str), "failed to INSERT %+v", str) } - teardown = func(t *testing.T) { + teardown := func(t *testing.T) { t.Helper() require.NoError(t, tx.Rollback()) } - return //nolint:nakedret + return q, teardown } t.Run("FindAllKubernetesClusters", func(t *testing.T) { diff --git a/managed/models/node_helpers_test.go b/managed/models/node_helpers_test.go index e7c64fe5df..4b96aabdb5 100644 --- a/managed/models/node_helpers_test.go +++ b/managed/models/node_helpers_test.go @@ -43,12 +43,12 @@ func TestNodeHelpers(t *testing.T) { require.NoError(t, sqlDB.Close()) }() - setup := func(t *testing.T) (q *reform.Querier, teardown func(t *testing.T)) { + setup := func(t *testing.T) (*reform.Querier, func(t *testing.T)) { t.Helper() db := reform.NewDB(sqlDB, postgresql.Dialect, reform.NewPrintfLogger(t.Logf)) tx, err := db.Begin() require.NoError(t, err) - q = tx.Querier + q := tx.Querier for _, str := range []reform.Struct{ &models.Node{ @@ -111,11 +111,11 @@ func TestNodeHelpers(t *testing.T) { require.NoError(t, q.Insert(str), "failed to INSERT %+v", str) } - teardown = func(t *testing.T) { + teardown := func(t *testing.T) { t.Helper() require.NoError(t, tx.Rollback()) } - return //nolint:nakedret + return q, teardown } t.Run("CreateNode", func(t *testing.T) { diff --git a/managed/models/service_helpers_test.go b/managed/models/service_helpers_test.go index b042aa7a1c..876b7ce606 100644 --- a/managed/models/service_helpers_test.go +++ b/managed/models/service_helpers_test.go @@ -43,12 +43,12 @@ func TestServiceHelpers(t *testing.T) { require.NoError(t, sqlDB.Close()) }() - setup := func(t *testing.T) (q *reform.Querier, teardown func(t *testing.T)) { + setup := func(t *testing.T) (*reform.Querier, func(t *testing.T)) { t.Helper() db := reform.NewDB(sqlDB, postgresql.Dialect, reform.NewPrintfLogger(t.Logf)) tx, err := db.Begin() require.NoError(t, err) - q = tx.Querier + q := tx.Querier for _, str := range []reform.Struct{ &models.Node{ @@ -140,11 +140,11 @@ func TestServiceHelpers(t *testing.T) { require.NoError(t, q.Insert(str)) } - teardown = func(t *testing.T) { + teardown := func(t *testing.T) { t.Helper() require.NoError(t, tx.Rollback()) } - return //nolint:nakedret + return q, teardown } t.Run("FindServices", func(t *testing.T) { diff --git a/managed/services/management/dbaas/components_service_test.go b/managed/services/management/dbaas/components_service_test.go index e61c12d85a..a13101ebe4 100644 --- a/managed/services/management/dbaas/components_service_test.go +++ b/managed/services/management/dbaas/components_service_test.go @@ -53,18 +53,18 @@ func TestComponentService(t *testing.T) { kubeConfig = "{}" ) - setup := func(t *testing.T) (ctx context.Context, cs dbaasv1beta1.ComponentsServer, dbaasClient *mockDbaasClient, kubeClient *mockKubernetesClient, - kubeStorage *mockKubeStorageManager, + setup := func(t *testing.T) (context.Context, dbaasv1beta1.ComponentsServer, *mockDbaasClient, *mockKubernetesClient, + *mockKubeStorageManager, ) { t.Helper() - ctx = logger.Set(context.Background(), t.Name()) + ctx := logger.Set(context.Background(), t.Name()) uuid.SetRand(&tests.IDReader{}) sqlDB := testdb.Open(t, models.SetupFixtures, nil) db := reform.NewDB(sqlDB, postgresql.Dialect, nil) - dbaasClient = &mockDbaasClient{} + dbaasClient := &mockDbaasClient{} kubernetesCluster, err := models.CreateKubernetesCluster(db.Querier, &models.CreateKubernetesClusterParams{ KubernetesClusterName: clusterName, @@ -80,12 +80,12 @@ func TestComponentService(t *testing.T) { }) vsc := NewVersionServiceClient(versionServiceURL) - kubeStorage = &mockKubeStorageManager{} - kubeClient = &mockKubernetesClient{} + kubeStorage := &mockKubeStorageManager{} + kubeClient := &mockKubernetesClient{} kubeClient.On("GetServerVersion").Return(nil, nil) - cs = NewComponentsService(db, dbaasClient, vsc, kubeStorage) + cs := NewComponentsService(db, dbaasClient, vsc, kubeStorage) - return //nolint:nakedret + return ctx, cs, dbaasClient, kubeClient, kubeStorage } t.Run("PXC", func(t *testing.T) { diff --git a/managed/services/management/dbaas/kubernetes_server_test.go b/managed/services/management/dbaas/kubernetes_server_test.go index 7e93078b8d..da80cd9e9f 100644 --- a/managed/services/management/dbaas/kubernetes_server_test.go +++ b/managed/services/management/dbaas/kubernetes_server_test.go @@ -47,39 +47,39 @@ import ( ) func TestKubernetesServer(t *testing.T) { - setup := func(t *testing.T) (ctx context.Context, ks dbaasv1beta1.KubernetesServer, dbaasClient *mockDbaasClient, - kubeClient *mockKubernetesClient, grafanaClient *mockGrafanaClient, - versionService *mockVersionService, teardown func(t *testing.T), + setup := func(t *testing.T) (context.Context, dbaasv1beta1.KubernetesServer, *mockDbaasClient, + *mockKubernetesClient, *mockGrafanaClient, + *mockVersionService, func(t *testing.T), ) { t.Helper() - ctx = logger.Set(context.Background(), t.Name()) + ctx := logger.Set(context.Background(), t.Name()) uuid.SetRand(&tests.IDReader{}) sqlDB := testdb.Open(t, models.SetupFixtures, nil) // To enable verbose queries output use: // db = reform.NewDB(sqlDB, postgresql.Dialect, reform.NewPrintfLogger(t.Logf)) db := reform.NewDB(sqlDB, postgresql.Dialect, nil) - dbaasClient = &mockDbaasClient{} - kubeClient = &mockKubernetesClient{} - grafanaClient = &mockGrafanaClient{} + dbaasClient := &mockDbaasClient{} + kubeClient := &mockKubernetesClient{} + grafanaClient := &mockGrafanaClient{} - teardown = func(t *testing.T) { + teardown := func(t *testing.T) { t.Helper() uuid.SetRand(nil) dbaasClient.AssertExpectations(t) require.NoError(t, sqlDB.Close()) } // versionService = NewVersionServiceClient("https://check-dev.percona.com/versions/v1") - versionService = &mockVersionService{} - ks = NewKubernetesServer(db, dbaasClient, versionService, grafanaClient) + versionService := &mockVersionService{} + ks := NewKubernetesServer(db, dbaasClient, versionService, grafanaClient) s := ks.(*kubernetesServer) clients := map[string]kubernetesClient{ clusterName: kubeClient, } s.kubeStorage.clients = clients ks = s - return //nolint:nakedret + return ctx, ks, dbaasClient, kubeClient, grafanaClient, versionService, teardown } // This is for local testing. When running local tests, if pmmversion.PMMVersion is empty @@ -283,7 +283,7 @@ contexts: name: local current-context: local` ) - setup := func(t *testing.T) (ks dbaasv1beta1.KubernetesServer, kubeClient *mockKubernetesClient, teardown func(t *testing.T)) { + setup := func(t *testing.T) (dbaasv1beta1.KubernetesServer, *mockKubernetesClient, func(t *testing.T)) { t.Helper() uuid.SetRand(&tests.IDReader{}) @@ -291,7 +291,7 @@ current-context: local` sqlDB := testdb.Open(t, models.SetupFixtures, nil) db := reform.NewDB(sqlDB, postgresql.Dialect, reform.NewPrintfLogger(t.Logf)) dbaasClient := &mockDbaasClient{} - kubeClient = &mockKubernetesClient{} + kubeClient := &mockKubernetesClient{} grafanaClient := &mockGrafanaClient{} kubernetesCluster, err := models.CreateKubernetesCluster(db.Querier, &models.CreateKubernetesClusterParams{ @@ -300,7 +300,7 @@ current-context: local` }) require.NoError(t, err) - teardown = func(t *testing.T) { + teardown := func(t *testing.T) { t.Helper() uuid.SetRand(nil) dbaasClient.AssertExpectations(t) @@ -308,7 +308,7 @@ current-context: local` require.NoError(t, sqlDB.Close()) } versionService := NewVersionServiceClient("https://check-dev.percona.com/versions/v1") - ks = NewKubernetesServer(db, dbaasClient, versionService, grafanaClient) + ks := NewKubernetesServer(db, dbaasClient, versionService, grafanaClient) s := ks.(*kubernetesServer) kubeClient.On("GetServerVersion").Return(nil, nil) clients := map[string]kubernetesClient{ @@ -316,7 +316,7 @@ current-context: local` } s.kubeStorage.clients = clients ks = s - return //nolint:nakedret + return ks, kubeClient, teardown } t.Run("GetResources", func(t *testing.T) { ks, kubeClient, teardown := setup(t) @@ -430,7 +430,7 @@ contexts: name: local current-context: local` ) - setup := func(t *testing.T) (ks dbaasv1beta1.KubernetesServer, kubeClient *mockKubernetesClient, teardown func(t *testing.T)) { + setup := func(t *testing.T) (dbaasv1beta1.KubernetesServer, *mockKubernetesClient, func(t *testing.T)) { t.Helper() uuid.SetRand(&tests.IDReader{}) @@ -438,7 +438,7 @@ current-context: local` sqlDB := testdb.Open(t, models.SetupFixtures, nil) db := reform.NewDB(sqlDB, postgresql.Dialect, reform.NewPrintfLogger(t.Logf)) dbaasClient := &mockDbaasClient{} - kubeClient = &mockKubernetesClient{} + kubeClient := &mockKubernetesClient{} grafanaClient := &mockGrafanaClient{} kubernetesCluster, err := models.CreateKubernetesCluster(db.Querier, &models.CreateKubernetesClusterParams{ @@ -447,7 +447,7 @@ current-context: local` }) require.NoError(t, err) - teardown = func(t *testing.T) { + teardown := func(t *testing.T) { t.Helper() uuid.SetRand(nil) dbaasClient.AssertExpectations(t) @@ -455,14 +455,14 @@ current-context: local` require.NoError(t, sqlDB.Close()) } versionService := NewVersionServiceClient("https://check-dev.percona.com/versions/v1") - ks = NewKubernetesServer(db, dbaasClient, versionService, grafanaClient) + ks := NewKubernetesServer(db, dbaasClient, versionService, grafanaClient) s := ks.(*kubernetesServer) clients := map[string]kubernetesClient{ clusterName: kubeClient, } s.kubeStorage.clients = clients ks = s - return //nolint:nakedret + return ks, kubeClient, teardown } t.Run("ListStorageClasses", func(t *testing.T) { ks, kubeClient, teardown := setup(t) diff --git a/managed/services/management/node_mgmt_test.go b/managed/services/management/node_mgmt_test.go index 87bb250a4b..3fd3c7a014 100644 --- a/managed/services/management/node_mgmt_test.go +++ b/managed/services/management/node_mgmt_test.go @@ -44,7 +44,7 @@ func TestMgmtNodeService(t *testing.T) { t.Run("ListNodes", func(t *testing.T) { now = models.Now() - setup := func(t *testing.T) (ctx context.Context, s *MgmtNodeService, teardown func(t *testing.T)) { + setup := func(t *testing.T) (context.Context, *MgmtNodeService, func(t *testing.T)) { t.Helper() origNowF := models.Now @@ -52,7 +52,7 @@ func TestMgmtNodeService(t *testing.T) { return now } - ctx = logger.Set(context.Background(), t.Name()) + ctx := logger.Set(context.Background(), t.Name()) uuid.SetRand(&tests.IDReader{}) sqlDB := testdb.Open(t, models.SetupFixtures, nil) @@ -64,9 +64,9 @@ func TestMgmtNodeService(t *testing.T) { vmClient := &mockVictoriaMetricsClient{} vmClient.Test(t) - s = NewMgmtNodeService(db, ar, vmClient) + s := NewMgmtNodeService(db, ar, vmClient) - teardown = func(t *testing.T) { + teardown := func(t *testing.T) { t.Helper() models.Now = origNowF uuid.SetRand(nil) @@ -75,7 +75,7 @@ func TestMgmtNodeService(t *testing.T) { ar.AssertExpectations(t) } - return //nolint:nakedret + return ctx, s, teardown } const ( @@ -239,14 +239,14 @@ func TestMgmtNodeService(t *testing.T) { t.Run("GetNode", func(t *testing.T) { now := models.Now() - setup := func(t *testing.T) (ctx context.Context, s *MgmtNodeService, teardown func(t *testing.T)) { + setup := func(t *testing.T) (context.Context, *MgmtNodeService, func(t *testing.T)) { t.Helper() origNowF := models.Now models.Now = func() time.Time { return now } - ctx = logger.Set(context.Background(), t.Name()) + ctx := logger.Set(context.Background(), t.Name()) uuid.SetRand(&tests.IDReader{}) sqlDB := testdb.Open(t, models.SetupFixtures, nil) @@ -258,9 +258,9 @@ func TestMgmtNodeService(t *testing.T) { vmClient := &mockVictoriaMetricsClient{} vmClient.Test(t) - s = NewMgmtNodeService(db, ar, vmClient) + s := NewMgmtNodeService(db, ar, vmClient) - teardown = func(t *testing.T) { + teardown := func(t *testing.T) { t.Helper() models.Now = origNowF uuid.SetRand(nil) @@ -269,7 +269,7 @@ func TestMgmtNodeService(t *testing.T) { ar.AssertExpectations(t) } - return //nolint:nakedret + return ctx, s, teardown } t.Run("should query the node by its id", func(t *testing.T) { diff --git a/managed/utils/clean/clean_test.go b/managed/utils/clean/clean_test.go index f8108b0a85..cd49d52639 100644 --- a/managed/utils/clean/clean_test.go +++ b/managed/utils/clean/clean_test.go @@ -36,10 +36,10 @@ func TestCleaner(t *testing.T) { require.NoError(t, sqlDB.Close()) }() - setup := func(t *testing.T) (db *reform.DB, q *reform.Querier, teardown func(t *testing.T)) { + setup := func(t *testing.T) (*reform.DB, *reform.Querier, func(t *testing.T)) { t.Helper() - db = reform.NewDB(sqlDB, postgresql.Dialect, reform.NewPrintfLogger(t.Logf)) - q = db.Querier + db := reform.NewDB(sqlDB, postgresql.Dialect, reform.NewPrintfLogger(t.Logf)) + q := db.Querier now, origNowF := models.Now(), models.Now models.Now = func() time.Time { // fake "old" rows @@ -71,11 +71,11 @@ func TestCleaner(t *testing.T) { } require.NoError(t, q.Insert(str)) - teardown = func(t *testing.T) { + teardown := func(t *testing.T) { t.Helper() assert.NoError(t, models.CleanupOldActionResults(db.Querier, models.Now())) } - return //nolint:nakedret + return db, q, teardown } t.Run("CheckActionResultByID", func(t *testing.T) { diff --git a/qan-api2/models/data_ingestion.go b/qan-api2/models/data_ingestion.go index 3817c52ca0..d530832078 100644 --- a/qan-api2/models/data_ingestion.go +++ b/qan-api2/models/data_ingestion.go @@ -600,14 +600,15 @@ func (mb *MetricsBucket) Run(ctx context.Context) { _ = mb.insertBatch(0) } -func (mb *MetricsBucket) insertBatch(timeout time.Duration) (err error) { +func (mb *MetricsBucket) insertBatch(timeout time.Duration) error { // wait for first request before doing anything, ignore timeout req, ok := <-mb.requestsCh if !ok { mb.l.Warn("Requests channel closed, nothing to store.") - return //nolint:nakedret + return nil } + var err error var buckets int start := time.Now() defer func() { @@ -629,8 +630,7 @@ func (mb *MetricsBucket) insertBatch(timeout time.Duration) (err error) { // begin "transaction" and commit or rollback it on exit var tx *sqlx.Tx if tx, err = mb.db.Beginx(); err != nil { - err = errors.Wrap(err, "failed to begin transaction") - return //nolint:nakedret + return errors.Wrap(err, "failed to begin transaction") } defer func() { if err == nil { @@ -645,8 +645,7 @@ func (mb *MetricsBucket) insertBatch(timeout time.Duration) (err error) { // prepare INSERT statement and close it on exit var stmt *sqlx.NamedStmt if stmt, err = tx.PrepareNamed(insertSQL); err != nil { - err = errors.Wrap(err, "failed to prepare statement") - return //nolint:nakedret + return errors.Wrap(err, "failed to prepare statement") } defer func() { if e := stmt.Close(); e != nil && err == nil { @@ -694,8 +693,7 @@ func (mb *MetricsBucket) insertBatch(timeout time.Duration) (err error) { } if _, err = stmt.Exec(q); err != nil { - err = errors.Wrap(err, "failed to exec") - return //nolint:nakedret + return errors.Wrap(err, "failed to exec") } } @@ -704,10 +702,10 @@ func (mb *MetricsBucket) insertBatch(timeout time.Duration) (err error) { case req, ok = <-mb.requestsCh: if !ok { mb.l.Warn("Requests channel closed, exiting.") - return //nolint:nakedret + return nil } case <-timeoutCh: - return //nolint:nakedret + return nil } } }