fixed pool search

This commit is contained in:
ston1th 2020-06-04 22:40:38 +02:00
commit 4c7e511a72
3 changed files with 26 additions and 5 deletions

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
cmd

28
pool.go
View file

@ -7,6 +7,7 @@ import (
"errors"
"fmt"
"net/http"
"strconv"
)
var (
@ -75,7 +76,7 @@ func (c *PoolClient) Delete(ctx context.Context, name string) (err error) {
}
type pools struct {
poolid string `json:"poolid"`
PoolID string `json:"poolid"`
}
func (c *PoolClient) ListPools(ctx context.Context) (list []string, err error) {
@ -89,13 +90,32 @@ func (c *PoolClient) ListPools(ctx context.Context) (list []string, err error) {
return
}
for _, p := range ps {
list = append(list, p.poolid)
list = append(list, p.PoolID)
}
return
}
type poolMember struct {
ID int `json:"vmid"`
Name string `json:"name"`
Node string `json:"node"`
}
type poolMembers []poolMember
func (pms poolMembers) ServerList() (sl ServerList) {
for _, pm := range pms {
sl = append(sl, &Server{
ID: strconv.Itoa(pm.ID),
Name: pm.Name,
Node: pm.Node,
})
}
return
}
type pool struct {
members ServerList `json:"members"`
Members poolMembers `json:"members"`
}
func (c *PoolClient) ListMembers(ctx context.Context, name string) (sl ServerList, err error) {
@ -109,7 +129,7 @@ func (c *PoolClient) ListMembers(ctx context.Context, name string) (sl ServerLis
return
}
_, err = c.client.Do(req, &p)
sl = p.members
sl = p.Members.ServerList()
return
}

View file

@ -192,7 +192,7 @@ func (c *ServerClient) GetByURL(ctx context.Context, url string) (s *Server, err
var srv *Server
if node == "" && pool != "" {
srv, err = c.client.Pool.FindServerByID(ctx, pool, id)
if err == ErrServerNotFound {
if err != nil {
return
}
node = srv.Node