[#429] Refactor TreeService for notif,cors,settings

Signed-off-by: Angira Kekteeva <kira@nspcc.ru>
This commit is contained in:
Angira Kekteeva 2022-05-17 16:52:51 +03:00 committed by Alex Vanin
parent 8eff857e41
commit ab5c44ac14
5 changed files with 88 additions and 127 deletions

View file

@ -36,11 +36,6 @@ func (n *layer) PutBucketCORS(ctx context.Context, p *PutCORSParams) error {
return err
}
ids, nodeIds, err := n.treeService.GetBucketCORS(ctx, &p.BktInfo.CID, false)
if err != nil && !errorsStd.Is(err, ErrNodeNotFound) {
return err
}
s := &PutSystemObjectParams{
BktInfo: p.BktInfo,
ObjName: p.BktInfo.CORSObjectName(),
@ -55,19 +50,17 @@ func (n *layer) PutBucketCORS(ctx context.Context, p *PutCORSParams) error {
return fmt.Errorf("put system object: %w", err)
}
if err = n.treeService.PutBucketCORS(ctx, &p.BktInfo.CID, &obj.ID); err != nil {
objIDToDelete, err := n.treeService.PutBucketCORS(ctx, &p.BktInfo.CID, &obj.ID)
if err != nil {
return err
}
for i := 0; i < len(ids); i++ {
if err = n.objectDelete(ctx, p.BktInfo, *ids[i]); err != nil {
if objIDToDelete != nil {
if err = n.objectDelete(ctx, p.BktInfo, *objIDToDelete); err != nil {
n.log.Error("couldn't delete cors object", zap.Error(err),
zap.String("cnrID", p.BktInfo.CID.EncodeToString()),
zap.String("bucket name", p.BktInfo.Name),
zap.String("objID", ids[i].EncodeToString()))
}
if err = n.treeService.DeleteBucketCORS(ctx, &p.BktInfo.CID, nodeIds[i]); err != nil {
return err
zap.String("objID", objIDToDelete.EncodeToString()))
}
}
@ -91,16 +84,12 @@ func (n *layer) GetBucketCORS(ctx context.Context, bktInfo *data.BucketInfo) (*d
}
func (n *layer) DeleteBucketCORS(ctx context.Context, bktInfo *data.BucketInfo) error {
ids, nodeIds, err := n.treeService.GetBucketCORS(ctx, &bktInfo.CID, false)
if err != nil && !errorsStd.Is(err, ErrNodeNotFound) {
objID, err := n.treeService.DeleteBucketCORS(ctx, &bktInfo.CID)
if err != nil {
return err
}
for i := 0; i < len(ids); i++ {
if err = n.objectDelete(ctx, bktInfo, *ids[i]); err != nil {
return err
}
if err = n.treeService.DeleteBucketCORS(ctx, &bktInfo.CID, nodeIds[i]); err != nil {
if objID != nil {
if err = n.objectDelete(ctx, bktInfo, *objID); err != nil {
return err
}
}