begin implementing rpc
This commit is contained in:
parent
2119403892
commit
76d49d57b8
2 changed files with 59 additions and 0 deletions
17
rpc/lux_rpc.go
Normal file
17
rpc/lux_rpc.go
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
package rpc
|
||||||
|
|
||||||
|
import "encoding/xml"
|
||||||
|
|
||||||
|
type LuxRpcRequest struct {
|
||||||
|
XMLName xml.Name `xml:"request"`
|
||||||
|
RequestID int `xml:"id,attr"`
|
||||||
|
Controller string `xml:"controller,attr"`
|
||||||
|
Command string `xml:"command,attr"`
|
||||||
|
|
||||||
|
// Commands specific fields
|
||||||
|
Hosts []struct {
|
||||||
|
XMLName xml.Name `xml:"host"`
|
||||||
|
HostID string `xml:"id,attr"`
|
||||||
|
Hostname string `xml:"hostname,attr"`
|
||||||
|
} `xml:"host"`
|
||||||
|
}
|
||||||
42
tests/lux_rpc_test.go
Normal file
42
tests/lux_rpc_test.go
Normal file
|
|
@ -0,0 +1,42 @@
|
||||||
|
package tests
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/xml"
|
||||||
|
"lux/rpc"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestRequestDecoding(t *testing.T) {
|
||||||
|
var request rpc.LuxRpcRequest
|
||||||
|
|
||||||
|
err := xml.Unmarshal([]byte(`<request id="1" controller="keystore" command="new-host" />`), &request)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
t.Log(request)
|
||||||
|
|
||||||
|
err = xml.Unmarshal([]byte(`<request id="2" controller="router" command="show-routes" />`), &request)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
t.Log(request)
|
||||||
|
|
||||||
|
err = xml.Unmarshal([]byte(`
|
||||||
|
<request id="3" controller="node" command="query">
|
||||||
|
<host hostname="test-host" />
|
||||||
|
<host id="0002" />
|
||||||
|
</request>`), &request)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
t.Log(request)
|
||||||
|
|
||||||
|
err = xml.Unmarshal([]byte(`
|
||||||
|
<request id="4" controller="node" command="resolve-wan">
|
||||||
|
<host hostname="test-host" />
|
||||||
|
</request>`), &request)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
t.Log(request)
|
||||||
|
}
|
||||||
Loading…
Add table
Reference in a new issue