Added Client V1 API to allow speed tests
This commit is contained in:
@ -27,6 +27,7 @@ var (
|
||||
requiredFunc = map[string]struct{}{
|
||||
"getMapping": struct{}{},
|
||||
"getNodes": struct{}{},
|
||||
"getSuffix": struct{}{},
|
||||
}
|
||||
parsedFunc *starlark.StringDict
|
||||
parseThread = &starlark.Thread{
|
||||
@ -152,3 +153,42 @@ func GetMapping(ip string) string {
|
||||
log.Println("Script returned unexpected result:", ret.String())
|
||||
return ""
|
||||
}
|
||||
|
||||
func GetNodes() (res []string) {
|
||||
thread := pool.Get()
|
||||
ret, err := starlark.Call(thread, (*parsedFunc)["getNodes"], nil, nil)
|
||||
if err != nil {
|
||||
log.Println("Starlark execute error:", err.Error())
|
||||
return nil
|
||||
}
|
||||
if r, ok := ret.(*starlark.List); ok {
|
||||
res = make([]string, r.Len())
|
||||
for i := 0; i < r.Len(); i++ {
|
||||
v := r.Index(i)
|
||||
if s, ok := v.(starlark.String); ok {
|
||||
res[i] = string(s)
|
||||
} else {
|
||||
log.Println("Script returned unexpected result:",
|
||||
ret.String())
|
||||
}
|
||||
}
|
||||
} else {
|
||||
log.Println("Script returned unexpected result:", ret.String())
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func GetSuffix(ip string) string {
|
||||
thread := pool.Get()
|
||||
ret, err := starlark.Call(thread, (*parsedFunc)["getSuffix"],
|
||||
starlark.Tuple{starlark.String(ip)}, nil)
|
||||
if err != nil {
|
||||
log.Println("Starlark execute error:", err.Error())
|
||||
return ""
|
||||
}
|
||||
if r, ok := ret.(starlark.String); ok {
|
||||
return string(r)
|
||||
}
|
||||
log.Println("Script returned unexpected result:", ret.String())
|
||||
return ""
|
||||
}
|
||||
|
Reference in New Issue
Block a user