added better id handling

This commit is contained in:
ston1th 2021-12-10 20:33:20 +01:00
commit 78b40626e6
4 changed files with 77 additions and 33 deletions

View file

@ -13,14 +13,25 @@ import (
const (
PVEScheme = "pve"
PVESchemeURL = PVEScheme + "://"
MinID = 100
InvalidID = 0
)
var (
ErrInvalidPVEURL = errors.New("invalid pve url scheme")
ErrNoID = errors.New("missing id in url")
ErrInvalidID = errors.New("invalid id")
ErrParsingID = errors.New("error parsing id in url")
)
func ValidateID(id int) error {
if id < MinID {
return ErrInvalidID
}
return nil
}
func ParseURL(s string) (pool, node string, id int, err error) {
u, err := url.Parse(s)
if err != nil {
@ -43,7 +54,7 @@ func ParseURL(s string) (pool, node string, id int, err error) {
if err != nil {
err = ErrParsingID
}
return u.Host, a[1], id, nil
return u.Host, a[1], id, ValidateID(id)
}
func ServerRefFromURL(s string) (ref *ServerRef, err error) {