diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DeviceProfileMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DeviceProfileMsgConstructor.java index 7943ec0595..3920e567f9 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DeviceProfileMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/DeviceProfileMsgConstructor.java @@ -48,9 +48,10 @@ public class DeviceProfileMsgConstructor { // builder.setDefaultRuleChainIdMSB(deviceProfile.getDefaultRuleChainId().getId().getMostSignificantBits()) // .setDefaultRuleChainIdLSB(deviceProfile.getDefaultRuleChainId().getId().getLeastSignificantBits()); // } -// if (deviceProfile.getDefaultQueueName() != null) { -// builder.setDefaultQueueName(deviceProfile.getDefaultQueueName()); -// } + if (deviceProfile.getDefaultQueueId() != null) { + builder.setDefaultQueueIdMSB(deviceProfile.getDefaultQueueId().getId().getMostSignificantBits()) + .setDefaultQueueIdLSB(deviceProfile.getDefaultQueueId().getId().getLeastSignificantBits()); + } if (deviceProfile.getDescription() != null) { builder.setDescription(deviceProfile.getDescription()); } diff --git a/application/src/test/java/org/thingsboard/server/controller/AbstractWebTest.java b/application/src/test/java/org/thingsboard/server/controller/AbstractWebTest.java index 1939c75673..329bad55a5 100644 --- a/application/src/test/java/org/thingsboard/server/controller/AbstractWebTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/AbstractWebTest.java @@ -69,6 +69,7 @@ import org.thingsboard.server.common.data.device.profile.TransportPayloadTypeCon import org.thingsboard.server.common.data.edge.Edge; import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.common.data.id.HasId; +import org.thingsboard.server.common.data.id.QueueId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.id.UUIDBased; import org.thingsboard.server.common.data.id.UserId; @@ -421,6 +422,12 @@ public abstract class AbstractWebTest extends AbstractInMemoryStorageTest { } protected DeviceProfile createDeviceProfile(String name, DeviceProfileTransportConfiguration deviceProfileTransportConfiguration) { + return createDeviceProfile(name, deviceProfileTransportConfiguration, null); + } + + protected DeviceProfile createDeviceProfile(String name, + DeviceProfileTransportConfiguration deviceProfileTransportConfiguration, + QueueId defaultQueueId) { DeviceProfile deviceProfile = new DeviceProfile(); deviceProfile.setName(name); deviceProfile.setType(DeviceProfileType.DEFAULT); @@ -438,6 +445,7 @@ public abstract class AbstractWebTest extends AbstractInMemoryStorageTest { deviceProfile.setProfileData(deviceProfileData); deviceProfile.setDefault(false); deviceProfile.setDefaultRuleChainId(null); + deviceProfile.setDefaultQueueId(defaultQueueId); return deviceProfile; } diff --git a/application/src/test/java/org/thingsboard/server/edge/BaseEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/BaseEdgeTest.java index 4e18034ede..c0276df82f 100644 --- a/application/src/test/java/org/thingsboard/server/edge/BaseEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/BaseEdgeTest.java @@ -74,6 +74,7 @@ import org.thingsboard.server.common.data.edge.EdgeEventType; import org.thingsboard.server.common.data.id.EdgeId; import org.thingsboard.server.common.data.id.EntityId; import org.thingsboard.server.common.data.id.EntityIdFactory; +import org.thingsboard.server.common.data.id.QueueId; import org.thingsboard.server.common.data.id.RuleChainId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.ota.ChecksumAlgorithm; @@ -162,6 +163,7 @@ abstract public class BaseEdgeTest extends AbstractControllerTest { private Tenant savedTenant; private TenantId tenantId; private User tenantAdmin; + private QueueId defaultQueueId; private DeviceProfile thermostatDeviceProfile; @@ -184,6 +186,8 @@ abstract public class BaseEdgeTest extends AbstractControllerTest { tenantId = savedTenant.getId(); Assert.assertNotNull(savedTenant); + defaultQueueId = getRandomQueueId(); + tenantAdmin = new User(); tenantAdmin.setAuthority(Authority.TENANT_ADMIN); tenantAdmin.setTenantId(savedTenant.getId()); @@ -206,6 +210,13 @@ abstract public class BaseEdgeTest extends AbstractControllerTest { verifyEdgeConnectionAndInitialData(); } + private QueueId getRandomQueueId() throws Exception { + List ruleEngineQueues = doGetTypedWithPageLink("/api/queues?serviceType={serviceType}&", + new TypeReference>() {}, new PageLink(100), ServiceType.TB_RULE_ENGINE.name()) + .getData(); + return ruleEngineQueues.get(0).getId(); + } + @After public void afterTest() throws Exception { try { @@ -367,7 +378,7 @@ abstract public class BaseEdgeTest extends AbstractControllerTest { @Test public void testDeviceProfiles() throws Exception { // 1 - DeviceProfile deviceProfile = this.createDeviceProfile("ONE_MORE_DEVICE_PROFILE", null); + DeviceProfile deviceProfile = this.createDeviceProfile("ONE_MORE_DEVICE_PROFILE", null, defaultQueueId); extendDeviceProfileData(deviceProfile); edgeImitator.expectMessageAmount(1); deviceProfile = doPost("/api/deviceProfile", deviceProfile, DeviceProfile.class); @@ -378,6 +389,8 @@ abstract public class BaseEdgeTest extends AbstractControllerTest { Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, deviceProfileUpdateMsg.getMsgType()); Assert.assertEquals(deviceProfileUpdateMsg.getIdMSB(), deviceProfile.getUuidId().getMostSignificantBits()); Assert.assertEquals(deviceProfileUpdateMsg.getIdLSB(), deviceProfile.getUuidId().getLeastSignificantBits()); + Assert.assertEquals(defaultQueueId.getId().getMostSignificantBits(), deviceProfileUpdateMsg.getDefaultQueueIdMSB()); + Assert.assertEquals(defaultQueueId.getId().getLeastSignificantBits(), deviceProfileUpdateMsg.getDefaultQueueIdLSB()); // 2 edgeImitator.expectMessageAmount(1); diff --git a/common/edge-api/src/main/proto/edge.proto b/common/edge-api/src/main/proto/edge.proto index 90f4b824ef..1d59083d25 100644 --- a/common/edge-api/src/main/proto/edge.proto +++ b/common/edge-api/src/main/proto/edge.proto @@ -215,6 +215,8 @@ message DeviceProfileUpdateMsg { bytes profileDataBytes = 13; optional string provisionDeviceKey = 14; optional bytes image = 15; + int64 defaultQueueIdMSB = 16; + int64 defaultQueueIdLSB = 17; } message DeviceCredentialsUpdateMsg {