本文整理汇总了Golang中github.com/cloudfoundry/loggregatorlib/logmessage.ParseMessage函数的典型用法代码示例。如果您正苦于以下问题:Golang ParseMessage函数的具体用法?Golang ParseMessage怎么用?Golang ParseMessage使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ParseMessage函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: TestAddingForAnotherApp
func TestAddingForAnotherApp(t *testing.T) {
store := NewMessageStore(2)
appId := "myApp"
message, err := logmessage.ParseMessage(testhelpers.MarshalledLogMessage(t, "Message", appId))
assert.NoError(t, err)
store.Add(message, appId)
anotherAppId := "anotherApp"
anotherAppMessage, err := logmessage.ParseMessage(testhelpers.MarshalledLogMessage(t, "AnotherAppMessage", anotherAppId))
assert.NoError(t, err)
store.Add(anotherAppMessage, anotherAppId)
messages, err := testhelpers.ParseDumpedMessages(store.DumpFor(appId))
assert.NoError(t, err)
assert.Equal(t, len(messages), 1)
assert.Equal(t, message.GetRawMessage(), messages[0])
messages, err = testhelpers.ParseDumpedMessages(store.DumpFor(anotherAppId))
assert.NoError(t, err)
assert.Equal(t, len(messages), 1)
assert.Equal(t, anotherAppMessage.GetRawMessage(), messages[0])
}
示例2: logMessageWithTime
func logMessageWithTime(t *testing.T, messageString string, timestamp int64) *logmessage.Message {
data, err := proto.Marshal(generateMessage(messageString, timestamp))
assert.NoError(t, err)
message, err := logmessage.ParseMessage(data)
assert.NoError(t, err)
return message
}
示例3: logMessageWithTime
func logMessageWithTime(messageString string, timestamp int) *logmessage.Message {
data, err := proto.Marshal(generateMessage(messageString, int64(timestamp)))
Expect(err).NotTo(HaveOccurred())
message, err := logmessage.ParseMessage(data)
Expect(err).NotTo(HaveOccurred())
return message
}
示例4: TestThatItWorksLikeAChannel
func TestThatItWorksLikeAChannel(t *testing.T) {
inMessageChan := make(chan *logmessage.Message)
outMessageChan := make(chan *logmessage.Message, 2)
go OverwritingMessageChannel(inMessageChan, outMessageChan, nil)
logMessage1, err := logmessage.ParseMessage(testhelpers.MarshalledLogMessage(t, "message 1", "appId"))
assert.NoError(t, err)
inMessageChan <- logMessage1
readMessage := <-outMessageChan
assert.Contains(t, string(readMessage.GetRawMessage()), "message 1")
logMessage2, err := logmessage.ParseMessage(testhelpers.MarshalledLogMessage(t, "message 2", "appId"))
assert.NoError(t, err)
inMessageChan <- logMessage2
readMessage2 := <-outMessageChan
assert.Contains(t, string(readMessage2.GetRawMessage()), "message 2")
}
示例5: TestRecentLogsFor
func TestRecentLogsFor(t *testing.T) {
// out of order messages we will send
messagesSent := [][]byte{
marshalledLogMessageWithTime(t, "My message", int64(3000)),
}
websocketEndpoint := func(conn *websocket.Conn) {
request := conn.Request()
assert.Equal(t, request.URL.Path, "/dump/")
assert.Equal(t, request.URL.RawQuery, "app=my-app-guid")
assert.Equal(t, request.Method, "GET")
assert.Contains(t, request.Header.Get("Authorization"), "BEARER my_access_token")
for _, msg := range messagesSent {
conn.Write(msg)
}
time.Sleep(time.Duration(2) * time.Second)
conn.Close()
}
websocketServer := httptest.NewTLSServer(websocket.Handler(websocketEndpoint))
defer websocketServer.Close()
expectedMessage, err := logmessage.ParseMessage(messagesSent[0])
assert.NoError(t, err)
app := cf.Application{Name: "my-app", Guid: "my-app-guid"}
config := &configuration.Configuration{AccessToken: "BEARER my_access_token", Target: "https://localhost"}
endpointRepo := &testapi.FakeEndpointRepo{GetEndpointEndpoints: map[cf.EndpointType]string{
cf.LoggregatorEndpointKey: strings.Replace(websocketServer.URL, "https", "wss", 1),
}}
logsRepo := NewLoggregatorLogsRepository(config, endpointRepo)
connected := false
onConnect := func() {
connected = true
}
logChan := make(chan *logmessage.Message, 1000)
err = logsRepo.RecentLogsFor(app, onConnect, logChan)
// ordered messages we expect to receive
dumpedMessages := []*logmessage.Message{}
for msg := range logChan {
dumpedMessages = append(dumpedMessages, msg)
}
assert.NoError(t, err)
assert.Equal(t, len(dumpedMessages), 1)
assert.Equal(t, dumpedMessages[0].GetShortSourceTypeName(), expectedMessage.GetShortSourceTypeName())
assert.Equal(t, dumpedMessages[0].GetLogMessage().GetMessage(), expectedMessage.GetLogMessage().GetMessage())
assert.Equal(t, dumpedMessages[0].GetLogMessage().GetMessageType(), expectedMessage.GetLogMessage().GetMessageType())
}
示例6: parseMessages
func (sinkServer *sinkServer) parseMessages(incomingProtobufChan <-chan []byte) {
for {
data := <-incomingProtobufChan
message, err := logmessage.ParseMessage(data)
if err != nil {
sinkServer.logger.Error(fmt.Sprintf("Log message could not be unmarshaled. Dropping it... Error: %v. Data: %v", err, data))
continue
}
sinkServer.parsedMessageChan <- message
}
}
示例7: createMessage
func createMessage(t *testing.T, protoMsg *logmessage.LogMessage, sourceName *string, msgType *logmessage.LogMessage_MessageType) (msg *logmessage.Message) {
protoMsg.SourceName = sourceName
protoMsg.MessageType = msgType
data, err := proto.Marshal(protoMsg)
assert.NoError(t, err)
msg, err = logmessage.ParseMessage(data)
assert.NoError(t, err)
return
}
示例8: createMessage
func createMessage(protoMsg *logmessage.LogMessage, sourceName *string, msgType *logmessage.LogMessage_MessageType) (msg *logmessage.Message) {
protoMsg.SourceName = sourceName
protoMsg.MessageType = msgType
data, err := proto.Marshal(protoMsg)
Expect(err).NotTo(HaveOccurred())
msg, err = logmessage.ParseMessage(data)
Expect(err).NotTo(HaveOccurred())
return
}
示例9: TestThatItSendsStdErrAsErr
func TestThatItSendsStdErrAsErr(t *testing.T) {
sink, err := NewSyslogSink("appId", "syslog://localhost:24631", testhelpers.Logger())
assert.NoError(t, err)
closeChan := make(chan Sink)
go sink.Run(closeChan)
logMessage, err := logmessage.ParseMessage(testhelpers.MarshalledErrorLogMessage(t, "err", "appId"))
assert.NoError(t, err)
sink.Channel() <- logMessage
data := <-dataReadChannel
assert.Contains(t, string(data), "<3>")
assert.Contains(t, string(data), "appId")
assert.Contains(t, string(data), "err")
}
示例10: TestOnlyDumpsMessagesThatHaveALength
// This test exists because the ring buffer will dump messages
// that actually exist.
func TestOnlyDumpsMessagesThatHaveALength(t *testing.T) {
store := NewMessageStore(2)
target := "appId"
message, err := logmessage.ParseMessage(testhelpers.MarshalledLogMessage(t, "Hello world", target))
assert.NoError(t, err)
store.Add(message, target)
messages, err := testhelpers.ParseDumpedMessages(store.DumpFor(target))
assert.NoError(t, err)
assert.Equal(t, len(messages), 1)
assert.Equal(t, messages[0], message.GetRawMessage())
}
示例11: NewLogMessage
func NewLogMessage(msgText, appGuid, sourceName string, timestamp time.Time) (msg *logmessage.Message) {
messageType := logmessage.LogMessage_ERR
logMsg := logmessage.LogMessage{
Message: []byte(msgText),
AppId: proto.String(appGuid),
MessageType: &messageType,
SourceName: proto.String(sourceName),
Timestamp: proto.Int64(timestamp.UnixNano()),
}
data, _ := proto.Marshal(&logMsg)
msg, _ = logmessage.ParseMessage(data)
return
}
示例12: listenForMessages
func (repo LoggregatorLogsRepository) listenForMessages(ws *websocket.Conn, msgChan chan<- *logmessage.Message) {
for {
var data []byte
err := websocket.Message.Receive(ws, &data)
if err != nil {
break
}
msg, msgErr := logmessage.ParseMessage(data)
if msgErr != nil {
continue
}
msgChan <- msg
}
}
示例13: TestThatItSendsStdErrAsErr
func TestThatItSendsStdErrAsErr(t *testing.T) {
sysLogger := NewSyslogWriter("syslog", "localhost:24632", "appId", false)
sink := NewSyslogSink("appId", "syslog://localhost:24632", loggertesthelper.Logger(), sysLogger, make(chan *logmessage.Message))
go sink.Run()
defer close(sink.Channel())
logMessage, err := logmessage.ParseMessage(messagetesthelpers.MarshalledErrorLogMessage(t, "err", "appId"))
assert.NoError(t, err)
sink.Channel() <- logMessage
data := <-fakeSyslogServer2.dataReadChannel
assert.Contains(t, string(data), "<11>1")
assert.Contains(t, string(data), "appId")
assert.Contains(t, string(data), "err")
}
示例14: logsFor
func (l *FakeLogsRepository) logsFor(app cf.Application, logMessages []logmessage.LogMessage, onConnect func(), logChan chan *logmessage.Message, stopLoggingChan chan bool) {
l.AppLogged = app
onConnect()
for _, logMsg := range logMessages {
data, _ := proto.Marshal(&logMsg)
msg, _ := logmessage.ParseMessage(data)
logChan <- msg
}
close(logChan)
go func() {
l.TailLogStopCalled = <-stopLoggingChan
}()
return
}
示例15: TestRegisterAndFor
func TestRegisterAndFor(t *testing.T) {
store := NewMessageStore(2)
appId := "myApp"
appMessageString := "AppMessage"
appMessage := testhelpers.MarshalledLogMessage(t, appMessageString, "myApp")
message, err := logmessage.ParseMessage(appMessage)
store.Add(message, appId)
messages, err := testhelpers.ParseDumpedMessages(store.DumpFor(appId))
assert.NoError(t, err)
assert.Equal(t, len(messages), 1)
testhelpers.AssertProtoBufferMessageEquals(t, appMessageString, messages[0])
}