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 ""
|
||||
}
|
||||
|
@ -8,7 +8,10 @@ import (
|
||||
var (
|
||||
defaultServer = flag.String("fallback-node",
|
||||
"xe-mci1-us.edge.eve.network",
|
||||
"Default CDN node in case of any error when executing script")
|
||||
"Default CDN node in case of any script error")
|
||||
defaultSuffix = flag.String("fallback-suffix",
|
||||
".edge.eve.network",
|
||||
"Default CDN suffix in case of any script error")
|
||||
)
|
||||
|
||||
func Initialize() {
|
||||
@ -22,3 +25,15 @@ func Get(ip string) string {
|
||||
}
|
||||
return ret
|
||||
}
|
||||
|
||||
func GetSuffix(ip string) string {
|
||||
ret := elf.GetSuffix(ip)
|
||||
if ret == "" {
|
||||
return *defaultSuffix
|
||||
}
|
||||
return ret
|
||||
}
|
||||
|
||||
func GetNodes() []string {
|
||||
return elf.GetNodes()
|
||||
}
|
||||
|
Reference in New Issue
Block a user