From 0dbb30fb4a3449a65b84ffe12dcd3e12d8a2cb0c Mon Sep 17 00:00:00 2001 From: Chris Hung Date: Mon, 13 Feb 2023 16:13:42 +0800 Subject: [PATCH] feat(data): update validateEvent topic check event topic from device service will be: //// corresponding to edgexfoundry/device-sdk-go#1261 Signed-off-by: Chris Hung --- internal/core/data/controller/messaging/subscriber.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/internal/core/data/controller/messaging/subscriber.go b/internal/core/data/controller/messaging/subscriber.go index 4d6323e3fb..aa3cc8c1bd 100644 --- a/internal/core/data/controller/messaging/subscriber.go +++ b/internal/core/data/controller/messaging/subscriber.go @@ -1,5 +1,5 @@ // -// Copyright (C) 2021-2022 IOTech Ltd +// Copyright (C) 2021-2023 IOTech Ltd // // SPDX-License-Identifier: Apache-2.0 @@ -12,7 +12,7 @@ import ( "strings" "github.com/edgexfoundry/go-mod-bootstrap/v3/config" - cbor "github.com/fxamacker/cbor/v2" + "github.com/fxamacker/cbor/v2" "github.com/edgexfoundry/edgex-go/internal/core/data/application" dataContainer "github.com/edgexfoundry/edgex-go/internal/core/data/container" @@ -68,7 +68,7 @@ func SubscribeEvents(ctx context.Context, dic *di.Container) errors.EdgeX { case e := <-messageErrors: lc.Error(e.Error()) case msgEnvelope := <-messages: - lc.Debugf("Event received from MessageBus. Topic: %s, Correlation-id: %s ", subscribeTopic, msgEnvelope.CorrelationID) + lc.Debugf("Event received from MessageBus. Topic: %s, Correlation-id: %s", msgEnvelope.ReceivedTopic, msgEnvelope.CorrelationID) event := &requests.AddEventRequest{} // decoding the large payload may cause memory issues so checking before decoding maxEventSize := dataContainer.ConfigurationFrom(dic.Get).MaxEventSize @@ -114,11 +114,11 @@ func unmarshalPayload(envelope types.MessageEnvelope, target interface{}) error } func validateEvent(messageTopic string, e dtos.Event) errors.EdgeX { - // Parse messageTopic by the pattern `edgex/events///` + // Parse messageTopic by the pattern `edgex/events/device////` fields := strings.Split(messageTopic, "/") // assumes a non-empty base topic with /profileName/deviceName/sourceName appended by publisher - if len(fields) < 4 { + if len(fields) < 5 { return errors.NewCommonEdgeX(errors.KindContractInvalid, fmt.Sprintf("invalid message topic %s", messageTopic), nil) }