forked from influxdata/influxdb
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbucket_service.go
49 lines (43 loc) · 1.29 KB
/
bucket_service.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package dbrp
import (
"context"
"github.com/influxdata/influxdb/v2"
"github.com/influxdata/influxdb/v2/kit/platform"
"go.uber.org/zap"
)
type BucketService struct {
influxdb.BucketService
Logger *zap.Logger
DBRPMappingService influxdb.DBRPMappingService
}
func NewBucketService(logger *zap.Logger, bucketService influxdb.BucketService, dbrpService influxdb.DBRPMappingService) *BucketService {
return &BucketService{
Logger: logger,
BucketService: bucketService,
DBRPMappingService: dbrpService,
}
}
func (s *BucketService) DeleteBucket(ctx context.Context, id platform.ID) error {
bucket, err := s.BucketService.FindBucketByID(ctx, id)
if err != nil {
return err
}
if err := s.BucketService.DeleteBucket(ctx, id); err != nil {
return err
}
logger := s.Logger.With(zap.String("bucket_id", id.String()))
mappings, _, err := s.DBRPMappingService.FindMany(ctx, influxdb.DBRPMappingFilter{
OrgID: &bucket.OrgID,
BucketID: &bucket.ID,
})
if err != nil {
logger.Error("Failed to lookup DBRP mappings for Bucket.", zap.Error(err))
return nil
}
for _, m := range mappings {
if err := s.DBRPMappingService.Delete(ctx, bucket.OrgID, m.ID); err != nil {
logger.Error("Failed to delete DBRP mapping for Bucket.", zap.Error(err))
}
}
return nil
}