fixed pool search
This commit is contained in:
parent
0dead7e423
commit
4c7e511a72
3 changed files with 26 additions and 5 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
cmd
|
||||
28
pool.go
28
pool.go
|
|
@ -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
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue