open-consul/lib/uuid.go
Ronald 71fb0a723e
Copyright headers for missing files/folders (#16708)
* copyright headers for agent folder
2023-03-28 18:48:58 -04:00

32 lines
565 B
Go

// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0
package lib
import (
"github.com/hashicorp/go-uuid"
)
// UUIDCheckFunc should determine whether the given UUID is actually
// unique and allowed to be used
type UUIDCheckFunc func(string) (bool, error)
func GenerateUUID(checkFn UUIDCheckFunc) (string, error) {
for {
id, err := uuid.GenerateUUID()
if err != nil {
return "", err
}
if checkFn == nil {
return id, nil
}
if ok, err := checkFn(id); err != nil {
return "", err
} else if ok {
return id, nil
}
}
}