forked from TrueCloudLab/frostfs-s3-gw
[#536] Add rule ID generation
Signed-off-by: Marina Biryukova <m.biryukova@yadro.com>
This commit is contained in:
parent
0792fcf456
commit
7ab902d8d2
2 changed files with 41 additions and 1 deletions
|
@ -17,6 +17,7 @@ import (
|
|||
"git.frostfs.info/TrueCloudLab/frostfs-s3-gw/api/middleware"
|
||||
"git.frostfs.info/TrueCloudLab/frostfs-s3-gw/internal/frostfs/util"
|
||||
"git.frostfs.info/TrueCloudLab/frostfs-sdk-go/netmap"
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
const (
|
||||
|
@ -145,7 +146,16 @@ func checkLifecycleConfiguration(ctx context.Context, cfg *data.LifecycleConfigu
|
|||
|
||||
ids := make(map[string]struct{}, len(cfg.Rules))
|
||||
for i, rule := range cfg.Rules {
|
||||
if _, ok := ids[rule.ID]; ok && rule.ID != "" {
|
||||
if rule.ID == "" {
|
||||
id, err := uuid.NewRandom()
|
||||
if err != nil {
|
||||
return fmt.Errorf("generate uuid: %w", err)
|
||||
}
|
||||
cfg.Rules[i].ID = id.String()
|
||||
rule.ID = id.String()
|
||||
}
|
||||
|
||||
if _, ok := ids[rule.ID]; ok {
|
||||
return fmt.Errorf("%w: duplicate 'ID': %s", apierr.GetAPIError(apierr.ErrInvalidArgument), rule.ID)
|
||||
}
|
||||
ids[rule.ID] = struct{}{}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue