From c1d9386698d0e8d7947b0d2f6c36a0841fdda94e Mon Sep 17 00:00:00 2001 From: Martin Geno Date: Mon, 29 May 2017 22:28:24 +0200 Subject: [PATCH] [TASK] use yanic client from package --- cmd/freifunkmanager/main.go | 4 +- yanic/dial.go | 89 ------------------------------------- yanic/dial_test.go | 18 -------- 3 files changed, 2 insertions(+), 109 deletions(-) delete mode 100644 yanic/dial.go delete mode 100644 yanic/dial_test.go diff --git a/cmd/freifunkmanager/main.go b/cmd/freifunkmanager/main.go index 3d66899..a32a6c6 100644 --- a/cmd/freifunkmanager/main.go +++ b/cmd/freifunkmanager/main.go @@ -18,7 +18,7 @@ import ( "github.com/FreifunkBremen/freifunkmanager/runtime" "github.com/FreifunkBremen/freifunkmanager/ssh" "github.com/FreifunkBremen/freifunkmanager/websocket" - "github.com/FreifunkBremen/freifunkmanager/yanic" + yanic "github.com/FreifunkBremen/yanic/database/socket/client" ) var ( @@ -54,7 +54,7 @@ func main() { stats = data websocket.NotifyStats(data) } - yanicDialer.Start() + go yanicDialer.Start() } // Startwebserver diff --git a/yanic/dial.go b/yanic/dial.go deleted file mode 100644 index 87b16eb..0000000 --- a/yanic/dial.go +++ /dev/null @@ -1,89 +0,0 @@ -package yanic - -import ( - "encoding/json" - "net" - - yanicSocket "github.com/FreifunkBremen/yanic/database/socket" - yanic "github.com/FreifunkBremen/yanic/runtime" - - "github.com/FreifunkBremen/freifunkmanager/lib/log" -) - -type Dialer struct { - conn net.Conn - queue chan yanicSocket.EventMessage - quit chan struct{} - NodeHandler func(*yanic.Node) - GlobalsHandler func(*yanic.GlobalStats) - PruneNodesHandler func() -} - -func Dial(ctype, addr string) *Dialer { - conn, err := net.Dial(ctype, addr) - if err != nil { - log.Log.Panicf("yanic dial to %s:%s failed", ctype, addr) - } - dialer := &Dialer{ - conn: conn, - queue: make(chan yanicSocket.EventMessage), - quit: make(chan struct{}), - } - - return dialer -} - -func (d *Dialer) Start() { - go d.reciever() - go d.parser() -} -func (d *Dialer) Close() { - if d != nil { - d.conn.Close() - close(d.queue) - close(d.quit) - } -} - -func (d *Dialer) reciever() { - decoder := json.NewDecoder(d.conn) - var msg yanicSocket.EventMessage - - for { - select { - case <-d.quit: - return - default: - decoder.Decode(&msg) - d.queue <- msg - } - } -} - -func (d *Dialer) parser() { - for msg := range d.queue { - switch msg.Event { - case "insert_node": - if d.NodeHandler != nil { - var node yanic.Node - - obj, _ := json.Marshal(msg.Body) - json.Unmarshal(obj, &node) - d.NodeHandler(&node) - } - case "insert_globals": - if d.GlobalsHandler != nil { - var globals yanic.GlobalStats - - obj, _ := json.Marshal(msg.Body) - json.Unmarshal(obj, &globals) - - d.GlobalsHandler(&globals) - } - case "prune_nodes": - if d.PruneNodesHandler != nil { - d.PruneNodesHandler() - } - } - } -} diff --git a/yanic/dial_test.go b/yanic/dial_test.go deleted file mode 100644 index 66da933..0000000 --- a/yanic/dial_test.go +++ /dev/null @@ -1,18 +0,0 @@ -package yanic - -import ( - "testing" - "time" - - "github.com/stretchr/testify/assert" -) - -func TestLog(t *testing.T) { - assert := assert.New(t) - - d := Dial("unix", "/tmp/yanic-database.socket") - assert.NotNil(d) - d.Start() - time.Sleep(time.Duration(3) * time.Minute) - d.Close() -}