11package ipc
22
33import (
4+ "fmt"
45 "time"
56
67 log "github.com/Sirupsen/logrus"
@@ -10,7 +11,9 @@ import (
1011 //"github.com/go-mangos/mangos/transport/ipc"
1112 "github.com/go-mangos/mangos/transport/tcp"
1213
13- "github.com/docker-slim/docker-slim/pkg/messages"
14+ "github.com/docker-slim/docker-slim/pkg/ipc/channel"
15+ "github.com/docker-slim/docker-slim/pkg/ipc/command"
16+ "github.com/docker-slim/docker-slim/pkg/ipc/event"
1417)
1518
1619// InitChannels initializes the communication channels with the master
@@ -36,11 +39,11 @@ func ShutdownChannels() {
3639}
3740
3841// RunCmdServer starts the command server
39- func RunCmdServer (done <- chan struct {}) (<- chan messages .Message , error ) {
42+ func RunCmdServer (done <- chan struct {}) (<- chan command .Message , error ) {
4043 return runCmdServer (cmdChannel , done )
4144}
4245
43- var cmdChannelAddr = "tcp://0.0.0.0:65501"
46+ var cmdChannelAddr = fmt . Sprintf ( "tcp://0.0.0.0:%d" , channel . CmdPort )
4447
4548//var cmdChannelAddr = "ipc:///tmp/docker-slim-sensor.cmds.ipc"
4649//var cmdChannelAddr = "ipc:///opt/dockerslim/ipc/docker-slim-sensor.cmds.ipc"
@@ -68,8 +71,8 @@ func newCmdServer(addr string) (mangos.Socket, error) {
6871 return socket , nil
6972}
7073
71- func runCmdServer (channel mangos.Socket , done <- chan struct {}) (<- chan messages .Message , error ) {
72- cmdChan := make (chan messages .Message )
74+ func runCmdServer (channel mangos.Socket , done <- chan struct {}) (<- chan command .Message , error ) {
75+ cmdChan := make (chan command .Message )
7376 go func () {
7477 for {
7578 // Could also use sock.RecvMsg to get header
@@ -89,7 +92,7 @@ func runCmdServer(channel mangos.Socket, done <-chan struct{}) (<-chan messages.
8992 } else {
9093 log .Debug ("sensor: cmd server - got a command => " , string (rawCmd ))
9194
92- if cmd , err := messages .Decode (rawCmd ); err != nil {
95+ if cmd , err := command .Decode (rawCmd ); err != nil {
9396 log .Println (err )
9497 } else {
9598 cmdChan <- cmd
@@ -99,10 +102,10 @@ func runCmdServer(channel mangos.Socket, done <-chan struct{}) (<-chan messages.
99102 //NOTE:
100103 //must reply before receiving the next message
101104 //otherwise nanomsg/mangos will be confused :-)
102- monitorFinishReply := "ok"
103- err = channel .Send ([]byte (monitorFinishReply ))
105+ cmdStatusReply := "ok"
106+ err = channel .Send ([]byte (cmdStatusReply ))
104107 if err != nil {
105- log .Warnln ("sensor: cmd server - fail to send monitor.finish reply =>" , err )
108+ log .Warnln ("sensor: cmd server - fail to send command status reply =>" , err )
106109 }
107110 }
108111 }
@@ -119,7 +122,7 @@ func shutdownCmdChannel() {
119122 }
120123}
121124
122- var evtChannelAddr = "tcp://0.0.0.0:65502"
125+ var evtChannelAddr = fmt . Sprintf ( "tcp://0.0.0.0:%d" , channel . EvtPort )
123126
124127//var evtChannelAddr = "ipc:///tmp/docker-slim-sensor.events.ipc"
125128//var evtChannelAddr = "ipc:///opt/dockerslim/ipc/docker-slim-sensor.events.ipc"
@@ -147,20 +150,23 @@ func newEvtPublisher(addr string) (mangos.Socket, error) {
147150 return socket , nil
148151}
149152
150- func publishEvt (channel mangos.Socket , evt string ) error {
151- if err := channel .Send ([]byte (evt )); err != nil {
152- log .Debugf ("fail to publish '%v' event:%v" , evt , err )
153+ func publishEvt (channel mangos.Socket , event event.Name ) error {
154+ log .Debugf ("publishEvt(%v)" , event )
155+ if err := channel .Send ([]byte (event )); err != nil {
156+ log .Debugf ("fail to publish '%v' event:%v" , event , err )
153157 return err
154158 }
155159
156160 return nil
157161}
158162
159163// TryPublishEvt attempts to publish an event to the master
160- func TryPublishEvt (ptry uint , event string ) {
164+ func TryPublishEvt (ptry uint , event event.Name ) {
165+ log .Debugf ("TryPublishEvt(%v,%v)" , ptry , event )
166+
161167 for ptry := 0 ; ptry < 3 ; ptry ++ {
162168 log .Debugf ("sensor: trying to publish '%v' event (attempt %v)" , event , ptry + 1 )
163- err := publishEvt (evtChannel , "monitor.finish.completed" )
169+ err := publishEvt (evtChannel , event )
164170 if err == nil {
165171 log .Infof ("sensor: published '%v'" , event )
166172 break
0 commit comments