Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 5 additions & 6 deletions managed/services/management/node.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ import (
"time"

"github.com/AlekSi/pointer"
"github.com/pkg/errors"
"github.com/prometheus/common/model"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
Expand Down Expand Up @@ -155,15 +154,15 @@ func (s *ManagementService) UnregisterNode(ctx context.Context, req *managementv

agents, err := models.FindPMMAgentsRunningOnNode(tx.Querier, node.NodeID)
if err != nil {
return errors.WithStack(err)
return fmt.Errorf("failed to find pmm-agent on node %s: %w", node.NodeID, err)
}
for _, a := range agents {
idsToKick[a.AgentID] = struct{}{}
}

agents, err = models.FindAgents(tx.Querier, models.AgentFilters{NodeID: node.NodeID})
if err != nil {
return errors.WithStack(err)
return fmt.Errorf("failed to find agents on node %s: %w", node.NodeID, err)
}
for _, a := range agents {
if a.PMMAgentID != nil {
Expand All @@ -173,7 +172,7 @@ func (s *ManagementService) UnregisterNode(ctx context.Context, req *managementv

agents, err = models.FindPMMAgentsForServicesOnNode(tx.Querier, node.NodeID)
if err != nil {
return errors.WithStack(err)
return fmt.Errorf("failed to find pmm-agent on node %s: %w", node.NodeID, err)
}
for _, a := range agents {
idsToSetState[a.AgentID] = struct{}{}
Expand Down Expand Up @@ -291,7 +290,7 @@ func (s *ManagementService) ListNodes(ctx context.Context, req *managementv1.Lis

result, _, err := s.vmClient.Query(ctx, upQuery, time.Now())
if err != nil {
return nil, errors.Wrap(err, "failed to execute an instant VM query")
return nil, fmt.Errorf("failed to execute an instant VM query: %w", err)
}

metrics := make(map[string]int, len(result.(model.Vector))) //nolint:forcetypeassert
Expand Down Expand Up @@ -368,7 +367,7 @@ func (s *ManagementService) GetNode(ctx context.Context, req *managementv1.GetNo

result, _, err := s.vmClient.Query(ctx, fmt.Sprintf(nodeUpQuery, req.NodeId), time.Now())
if err != nil {
return nil, errors.Wrap(err, "failed to execute an instant VM query")
return nil, fmt.Errorf("failed to execute an instant VM query: %w", err)
}

metrics := make(map[string]int, len(result.(model.Vector))) //nolint:forcetypeassert
Expand Down
5 changes: 3 additions & 2 deletions managed/services/management/rds.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ package management

import (
"context"
"errors"
"fmt"
"net/http"
"sort"
"time"
Expand All @@ -27,7 +29,6 @@ import (
"github.com/aws/aws-sdk-go-v2/service/rds"
"github.com/aws/aws-sdk-go-v2/service/rds/types"
"github.com/aws/smithy-go"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
"golang.org/x/sync/errgroup"
"google.golang.org/grpc/codes"
Expand Down Expand Up @@ -164,7 +165,7 @@ func (s *ManagementService) DiscoverRDS(ctx context.Context, req *managementv1.D

cfg, err := config.LoadDefaultConfig(ctx, opts...)
if err != nil {
return nil, errors.WithStack(err)
return nil, fmt.Errorf("failed to load RDS default config: %w", err)
}

// do not break our API if some AWS region is slow or down
Expand Down
4 changes: 2 additions & 2 deletions managed/services/management/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@ package management

import (
"context"
"fmt"
"time"

"github.com/AlekSi/pointer"
"github.com/pkg/errors"
"github.com/prometheus/common/model"
"github.com/sirupsen/logrus"
"google.golang.org/grpc/codes"
Expand Down Expand Up @@ -136,7 +136,7 @@ func (s *ManagementService) ListServices(ctx context.Context, req *managementv1.
`
result, _, err := s.vmClient.Query(ctx, query, time.Now())
if err != nil {
return nil, errors.Wrap(err, "failed to execute an instant VM query")
return nil, fmt.Errorf("failed to execute an instant VM query: %w", err)
}

metrics := make(map[string]statusMetrics, len(result.(model.Vector))) //nolint:forcetypeassert
Expand Down
13 changes: 7 additions & 6 deletions managed/services/minio/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,12 @@ package minio

import (
"context"
"errors"
"fmt"
"strings"

"github.com/minio/minio-go/v7"
"github.com/minio/minio-go/v7/pkg/credentials"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
"golang.org/x/sync/errgroup"

Expand Down Expand Up @@ -87,7 +88,7 @@ func (c *Client) RemoveRecursive(ctx context.Context, endpoint, accessKey, secre
}
for object := range mc.ListObjects(ctx, bucketName, options) {
if object.Err != nil {
return errors.WithStack(object.Err)
return fmt.Errorf("failed to list objects in bucket %q: %w", bucketName, object.Err)
}

objectsCh <- object
Expand All @@ -103,9 +104,9 @@ func (c *Client) RemoveRecursive(ctx context.Context, endpoint, accessKey, secre
}

if rerr != nil {
rerr = errors.Wrapf(rerr, "listing objects error: %s", err.Error())
rerr = errors.Join(errors.New("listing objects error"), err, rerr)
} else {
rerr = errors.WithStack(err)
rerr = err
}
}()

Expand All @@ -116,7 +117,7 @@ func (c *Client) RemoveRecursive(ctx context.Context, endpoint, accessKey, secre
}

if errorsEncountered {
return errors.Errorf("errors encountered while removing objects from bucket %q", bucketName)
return fmt.Errorf("errors encountered while removing objects from bucket %q", bucketName)
}

return nil
Expand Down Expand Up @@ -151,7 +152,7 @@ func (c *Client) List(ctx context.Context, endpoint, accessKey, secretKey, bucke

for object := range mc.ListObjects(ctx, bucketName, options) {
if object.Err != nil {
return nil, errors.WithStack(object.Err)
return nil, fmt.Errorf("failed to list objects in bucket %q: %w", bucketName, object.Err)
}
filename := object.Key
filename = strings.TrimPrefix(filename, options.Prefix)
Expand Down
15 changes: 8 additions & 7 deletions managed/services/preconditions.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@
package services

import (
"github.com/pkg/errors"
"fmt"

"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
"gopkg.in/reform.v1"
Expand Down Expand Up @@ -98,8 +99,8 @@ func CheckArtifactOverlapping(q *reform.Querier, serviceID, locationID, folder s
// TODO This doesn't work for all cases. For example, there may exist more than one storage locations pointing to the same place.

const (
usedByArtifactMsg = "Same location and folder already used for artifact %s of other service: %s"
usedByScheduledTaskMsg = "Same location and folder already used for scheduled task %s of other service: %s"
usedByArtifactMsg = "same location and folder already used for artifact %s of other service: %s"
usedByScheduledTaskMsg = "same location and folder already used for scheduled task %s of other service: %s"
)

service, err := models.FindServiceByID(q, serviceID)
Expand Down Expand Up @@ -130,12 +131,12 @@ func CheckArtifactOverlapping(q *reform.Querier, serviceID, locationID, folder s

if service.ServiceType == models.MongoDBServiceType && svc.ServiceType == models.MongoDBServiceType {
if svc.Cluster != service.Cluster {
return errors.Wrapf(ErrLocationFolderPairAlreadyUsed, usedByArtifactMsg, artifact.ID, serviceID)
return fmt.Errorf(usedByArtifactMsg+": %w", artifact.ID, serviceID, ErrLocationFolderPairAlreadyUsed)
}
continue
}

return errors.Wrapf(ErrLocationFolderPairAlreadyUsed, usedByArtifactMsg, artifact.ID, serviceID)
return fmt.Errorf(usedByArtifactMsg+": %w", artifact.ID, serviceID, ErrLocationFolderPairAlreadyUsed)
}
}

Expand All @@ -162,12 +163,12 @@ func CheckArtifactOverlapping(q *reform.Querier, serviceID, locationID, folder s

if service.ServiceType == models.MongoDBServiceType && task.Type == models.ScheduledMongoDBBackupTask {
if task.Data.MongoDBBackupTask.ClusterName != service.Cluster {
return errors.Wrapf(ErrLocationFolderPairAlreadyUsed, usedByScheduledTaskMsg, task.ID, serviceID)
return fmt.Errorf(usedByScheduledTaskMsg+": %w", task.ID, serviceID, ErrLocationFolderPairAlreadyUsed)
}
continue
}

return errors.Wrapf(ErrLocationFolderPairAlreadyUsed, usedByScheduledTaskMsg, task.ID, serviceID)
return fmt.Errorf(usedByScheduledTaskMsg+": %w", task.ID, serviceID, ErrLocationFolderPairAlreadyUsed)
}
}

Expand Down
4 changes: 2 additions & 2 deletions managed/services/scheduler/scheduler.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,12 @@ package scheduler
import (
"context"
"database/sql"
"fmt"
"sync"
"time"

"github.com/AlekSi/pointer"
"github.com/go-co-op/gocron"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
"gopkg.in/reform.v1"

Expand Down Expand Up @@ -350,7 +350,7 @@ func (s *Service) convertDBTask(dbTask *models.ScheduledTask) (Task, error) { //
}

default:
return nil, errors.Errorf("unknown task type: %s", dbTask.Type)
return nil, fmt.Errorf("unknown task type: %s", dbTask.Type)
}

return task, nil
Expand Down
12 changes: 6 additions & 6 deletions managed/services/scheduler/task.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@ package scheduler

import (
"context"
"errors"
"fmt"
"time"

"github.com/pkg/errors"

"github.com/percona/pmm/managed/models"
"github.com/percona/pmm/managed/services/backup"
)
Expand Down Expand Up @@ -92,11 +92,11 @@ func NewMySQLBackupTask(params *BackupTaskParams) (Task, error) { //nolint:iretu
}

if params.Mode != models.Snapshot {
return nil, errors.Errorf("unsupported backup mode for mySQL: %s", params.Mode)
return nil, fmt.Errorf("unsupported backup mode for mySQL: %s", params.Mode)
}

if params.DataModel != models.PhysicalDataModel {
return nil, errors.Errorf("unsupported backup data model for mySQL: %s", params.DataModel)
return nil, fmt.Errorf("unsupported backup data model for mySQL: %s", params.DataModel)
}

return &mySQLBackupTask{
Expand Down Expand Up @@ -156,11 +156,11 @@ func NewMongoDBBackupTask(params *BackupTaskParams) (Task, error) { //nolint:ire
}

if params.Mode != models.Snapshot && params.Mode != models.PITR {
return nil, errors.Errorf("unsupported backup mode for mongoDB: %s", params.Mode)
return nil, fmt.Errorf("unsupported backup mode for mongoDB: %s", params.Mode)
}

if params.Mode == models.PITR && params.DataModel != models.LogicalDataModel {
return nil, errors.WithMessage(backup.ErrIncompatibleDataModel, "PITR is only supported for logical backups")
return nil, fmt.Errorf("PITR is only supported for logical backups: %w", backup.ErrIncompatibleDataModel)
}

return &mongoDBBackupTask{
Expand Down
Loading
Loading