89 lines
1.8 KiB
Go
89 lines
1.8 KiB
Go
![]() |
package tunnelbroker
|
||
|
|
||
|
import (
|
||
|
`encoding/json`
|
||
|
`fmt`
|
||
|
`os`
|
||
|
`strconv`
|
||
|
"testing"
|
||
|
|
||
|
`r00t2.io/gobroke/conf`
|
||
|
`r00t2.io/gobroke/tplCmd`
|
||
|
`r00t2.io/gobroke/version`
|
||
|
`r00t2.io/sysutils/envs`
|
||
|
)
|
||
|
|
||
|
func TestUpdate(t *testing.T) {
|
||
|
var err error
|
||
|
var s string
|
||
|
var b []byte
|
||
|
var tun *Tunnel
|
||
|
var u64 uint64
|
||
|
var updated bool
|
||
|
var tuncfg *conf.Tunnel = &conf.Tunnel{
|
||
|
TunnelID: 0,
|
||
|
ExplicitAddr: nil,
|
||
|
MTU: 1480,
|
||
|
Username: nil,
|
||
|
UpdateKey: "",
|
||
|
TemplateConfigs: nil,
|
||
|
Cmds: []tplCmd.TemplateCmd{
|
||
|
tplCmd.TemplateCmd{
|
||
|
Cmd: &tplCmd.Cmd{
|
||
|
Program: "echo",
|
||
|
Args: []string{
|
||
|
"updated {{ .TunnelID }}",
|
||
|
},
|
||
|
IsolateEnv: false,
|
||
|
EnvVars: nil,
|
||
|
OnChanges: nil,
|
||
|
},
|
||
|
IsTemplate: false,
|
||
|
},
|
||
|
},
|
||
|
}
|
||
|
|
||
|
if version.Ver, err = version.Version(); err != nil {
|
||
|
t.Fatal(err)
|
||
|
}
|
||
|
|
||
|
if !envs.HasEnv("GOBROKE_TUNID") {
|
||
|
t.Fatal("GOBROKE_TUNID not set")
|
||
|
} else {
|
||
|
s = os.Getenv("GOBROKE_TUNID")
|
||
|
if u64, err = strconv.ParseUint(s, 10, 64); err != nil {
|
||
|
t.Fatal(err)
|
||
|
}
|
||
|
tuncfg.TunnelID = uint(u64)
|
||
|
}
|
||
|
if !envs.HasEnv("GOBROKE_USERNAME") {
|
||
|
t.Fatal("GOBROKE_USERNAME not set")
|
||
|
} else {
|
||
|
tuncfg.Username = new(string)
|
||
|
*tuncfg.Username = os.Getenv("GOBROKE_USERNAME")
|
||
|
}
|
||
|
if !envs.HasEnv("GOBROKE_KEY") {
|
||
|
t.Fatal("GOBROKE_KEY not set")
|
||
|
} else {
|
||
|
tuncfg.UpdateKey = os.Getenv("GOBROKE_KEY")
|
||
|
}
|
||
|
|
||
|
if tun, err = GetTunnel(tuncfg, true); err != nil {
|
||
|
t.Fatal(err)
|
||
|
}
|
||
|
|
||
|
if b, err = json.MarshalIndent(tun, "", " "); err != nil {
|
||
|
t.Fatal(err)
|
||
|
}
|
||
|
fmt.Printf("BEFORE UPDATE:\n%s\n", string(b))
|
||
|
if updated, err = tun.Update(); err != nil {
|
||
|
t.Fatal(err)
|
||
|
}
|
||
|
fmt.Printf("Updated:\t%v\n", updated)
|
||
|
if b, err = json.MarshalIndent(tun, "", " "); err != nil {
|
||
|
t.Fatal(err)
|
||
|
}
|
||
|
// spew.Dump(tun)
|
||
|
fmt.Printf("AFTER UPDATE:\n%s\n", string(b))
|
||
|
}
|