MCPcopy
hub / github.com/baetyl/baetyl / OnMessage

Method OnMessage

engine/msg_handler.go:38–112  ·  view source on GitHub ↗
(msg interface{})

Source from the content-addressed store, hash-verified

36}
37
38func (h *handlerDownside) OnMessage(msg interface{}) error {
39 m := msg.(*v1.Message)
40 h.log.Debug("engine downside msg", log.Any("msg", m))
41
42 // Todo : improve, only the core module supports remote debugging
43 if os.Getenv(context.KeySvcName) != v1.BaetylCore {
44 return nil
45 }
46
47 key := fmt.Sprintf("%s_%s_%s_%s", m.Metadata["namespace"], m.Metadata["name"], m.Metadata["container"], m.Metadata["token"])
48 downside := fmt.Sprintf("%s_%s", key, "down")
49 h.log.Debug("engine pub downside topic", log.Any("topic", downside))
50
51 switch m.Kind {
52 case v1.MessageCMD:
53 switch m.Metadata["cmd"] {
54 case v1.MessageCommandConnect:
55 err := h.connect(key, m)
56 if err != nil {
57 return errors.Trace(err)
58 }
59 case v1.MessageCommandLogs:
60 err := h.viewLogs(key, m)
61 if err != nil {
62 return errors.Trace(err)
63 }
64 case v1.MessageCommandDisconnect:
65 err := h.disconnect(key, m)
66 if err != nil {
67 return errors.Trace(err)
68 }
69 case v1.MessageCommandNodeLabel:
70 err := h.nodeLabel(key, m)
71 if err != nil {
72 return errors.Trace(err)
73 }
74 case v1.MessageCommandMultiNodeLabels:
75 err := h.labelMultiNodes(key, m)
76 if err != nil {
77 return err
78 }
79 case v1.MessageRPC:
80 err := h.rpc(key, m)
81 if err != nil {
82 return errors.Trace(err)
83 }
84 case v1.MessageAgent:
85 err := h.agentControl(key, m)
86 if err != nil {
87 return errors.Trace(err)
88 }
89 case v1.MessageRPCMqtt:
90 err := h.rpcMqtt(key, m)
91 if err != nil {
92 return errors.Trace(err)
93 }
94 default:
95 h.log.Debug("unknown command", log.Any("cmd", m.Metadata["cmd"]))

Callers 5

TestHandlerDownsideFunction · 0.95
TestHandlerDownsideRPCFunction · 0.95
TestHandlerDownsideAgentFunction · 0.95
TestHandlerDownsideMqttFunction · 0.95

Calls 11

connectMethod · 0.95
viewLogsMethod · 0.95
disconnectMethod · 0.95
nodeLabelMethod · 0.95
labelMultiNodesMethod · 0.95
rpcMethod · 0.95
agentControlMethod · 0.95
rpcMqttMethod · 0.95
publishFailedMsgMethod · 0.95
DebugMethod · 0.65
PublishMethod · 0.45

Tested by 5

TestHandlerDownsideFunction · 0.76
TestHandlerDownsideRPCFunction · 0.76
TestHandlerDownsideAgentFunction · 0.76
TestHandlerDownsideMqttFunction · 0.76