extended URL scheme
This commit is contained in:
parent
249d7c6844
commit
0994baf5b0
4 changed files with 39 additions and 18 deletions
21
server.go
21
server.go
|
|
@ -184,26 +184,25 @@ func (c *ServerClient) getServer(ctx context.Context, node, id string) (s *Serve
|
|||
}
|
||||
|
||||
func (c *ServerClient) GetByURL(ctx context.Context, url string) (s *Server, err error) {
|
||||
pool, id, err := ParseURL(url)
|
||||
pool, node, id, err := ParseURL(url)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
var srv *Server
|
||||
if pool != "" {
|
||||
if node == "" && pool != "" {
|
||||
srv, err = c.client.Pool.FindServerByID(ctx, pool, id)
|
||||
if err == ErrServerNotFound {
|
||||
return
|
||||
}
|
||||
node = srv.Node
|
||||
} else if node == "" && pool == "" {
|
||||
srv, err = c.client.Node.FindServerByID(ctx, id)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
node = srv.Node
|
||||
}
|
||||
srv, err = c.client.Node.FindServerByID(ctx, id)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
if srv == nil {
|
||||
err = ErrServerNotFound
|
||||
return
|
||||
}
|
||||
s, cfg, err := c.getServer(ctx, srv.Node, srv.ID)
|
||||
s, cfg, err := c.getServer(ctx, node, id)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue