123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- package kube
- import (
- "fmt"
- "strconv"
- "strings"
- "google.golang.org/grpc/resolver"
- )
- const (
- colon = ":"
- defaultNamespace = "default"
- )
- var emptyService Service
- type Service struct {
- Namespace string
- Name string
- Port int
- }
- func ParseTarget(target resolver.Target) (Service, error) {
- var service Service
- service.Namespace = target.Authority
- if len(service.Namespace) == 0 {
- service.Namespace = defaultNamespace
- }
- segs := strings.SplitN(target.Endpoint, colon, 2)
- if len(segs) < 2 {
- return emptyService, fmt.Errorf("bad endpoint: %s", target.Endpoint)
- }
- service.Name = segs[0]
- port, err := strconv.Atoi(segs[1])
- if err != nil {
- return emptyService, err
- }
- service.Port = port
- return service, nil
- }
|