github.com/influxdata/influxdb/v2@v2.7.6/replications/bucket_service.go (about) 1 package replications 2 3 import ( 4 "context" 5 6 "github.com/influxdata/influxdb/v2" 7 "github.com/influxdata/influxdb/v2/kit/platform" 8 "go.uber.org/zap" 9 ) 10 11 type ReplicationDeleter interface { 12 // DeleteBucketReplications deletes all replications registered to the local bucket 13 // with the given ID. 14 DeleteBucketReplications(context.Context, platform.ID) error 15 } 16 17 type bucketService struct { 18 influxdb.BucketService 19 logger *zap.Logger 20 replicationDeleter ReplicationDeleter 21 } 22 23 func NewBucketService(log *zap.Logger, bucketSvc influxdb.BucketService, deleter ReplicationDeleter) *bucketService { 24 return &bucketService{ 25 BucketService: bucketSvc, 26 logger: log, 27 replicationDeleter: deleter, 28 } 29 } 30 31 func (s *bucketService) DeleteBucket(ctx context.Context, id platform.ID) error { 32 if err := s.BucketService.DeleteBucket(ctx, id); err != nil { 33 return err 34 } 35 if err := s.replicationDeleter.DeleteBucketReplications(ctx, id); err != nil { 36 s.logger.Error("Failed to delete replications for bucket", 37 zap.String("bucket_id", id.String()), zap.Error(err)) 38 } 39 return nil 40 }