You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
514 B
Go
27 lines
514 B
Go
3 years ago
|
package remote
|
||
|
|
||
|
import (
|
||
|
"net/url"
|
||
|
|
||
|
"github.com/pkg/errors"
|
||
|
)
|
||
|
|
||
|
var schemes = map[string]struct{}{
|
||
|
"tcp": {},
|
||
|
"unix": {},
|
||
|
"ssh": {},
|
||
|
"docker-container": {},
|
||
|
"kube-pod": {},
|
||
|
}
|
||
|
|
||
|
func IsValidEndpoint(ep string) error {
|
||
|
endpoint, err := url.Parse(ep)
|
||
|
if err != nil {
|
||
|
return errors.Wrapf(err, "failed to parse endpoint %s", ep)
|
||
|
}
|
||
|
if _, ok := schemes[endpoint.Scheme]; !ok {
|
||
|
return errors.Errorf("unrecognized url scheme %s", endpoint.Scheme)
|
||
|
}
|
||
|
return nil
|
||
|
}
|