validate service type of target in replication/ilm transition config (#10928)

This commit is contained in:
Poorna Krishnamoorthy
2020-11-19 10:38:50 -08:00
committed by Harshavardhana
parent f60b6eb82e
commit 0fa430c1da
3 changed files with 16 additions and 0 deletions

View File

@@ -125,8 +125,10 @@ func (sys *BucketTargetSys) SetTarget(ctx context.Context, bucket string, tgt *m
tgts := sys.targetsMap[bucket]
newtgts := make([]madmin.BucketTarget, len(tgts))
labels := make(map[string]struct{})
found := false
for idx, t := range tgts {
labels[t.Label] = struct{}{}
if t.Type == tgt.Type {
if t.Arn == tgt.Arn {
return BucketRemoteAlreadyExists{Bucket: t.TargetBucket}
@@ -140,6 +142,9 @@ func (sys *BucketTargetSys) SetTarget(ctx context.Context, bucket string, tgt *m
}
newtgts[idx] = t
}
if _, ok := labels[tgt.Label]; ok {
return BucketRemoteLabelInUse{Bucket: tgt.TargetBucket}
}
if !found {
newtgts = append(newtgts, *tgt)
}