Removed device profiles devices request
This commit is contained in:
parent
0b8abd579f
commit
35d6716b70
@ -27,6 +27,7 @@ import org.thingsboard.server.dao.attributes.AttributesService;
|
||||
import org.thingsboard.server.dao.customer.CustomerService;
|
||||
import org.thingsboard.server.dao.dashboard.DashboardService;
|
||||
import org.thingsboard.server.dao.device.DeviceProfileService;
|
||||
import org.thingsboard.server.dao.device.DeviceService;
|
||||
import org.thingsboard.server.dao.edge.EdgeEventService;
|
||||
import org.thingsboard.server.dao.edge.EdgeService;
|
||||
import org.thingsboard.server.dao.ota.OtaPackageService;
|
||||
@ -81,6 +82,9 @@ public class EdgeContextComponent {
|
||||
@Autowired
|
||||
private Configuration freemarkerConfig;
|
||||
|
||||
@Autowired
|
||||
private DeviceService deviceService;
|
||||
|
||||
@Autowired
|
||||
private AssetService assetService;
|
||||
|
||||
|
||||
@ -42,7 +42,6 @@ import org.thingsboard.server.gen.edge.v1.ConnectResponseCode;
|
||||
import org.thingsboard.server.gen.edge.v1.ConnectResponseMsg;
|
||||
import org.thingsboard.server.gen.edge.v1.DeviceCredentialsRequestMsg;
|
||||
import org.thingsboard.server.gen.edge.v1.DeviceCredentialsUpdateMsg;
|
||||
import org.thingsboard.server.gen.edge.v1.DeviceProfileDevicesRequestMsg;
|
||||
import org.thingsboard.server.gen.edge.v1.DeviceRpcCallMsg;
|
||||
import org.thingsboard.server.gen.edge.v1.DeviceUpdateMsg;
|
||||
import org.thingsboard.server.gen.edge.v1.DownlinkMsg;
|
||||
@ -598,11 +597,6 @@ public final class EdgeGrpcSession implements Closeable {
|
||||
result.add(ctx.getDeviceProcessor().processDeviceRpcCallResponseFromEdge(edge.getTenantId(), deviceRpcCallMsg));
|
||||
}
|
||||
}
|
||||
if (uplinkMsg.getDeviceProfileDevicesRequestMsgCount() > 0) {
|
||||
for (DeviceProfileDevicesRequestMsg deviceProfileDevicesRequestMsg : uplinkMsg.getDeviceProfileDevicesRequestMsgList()) {
|
||||
result.add(ctx.getEdgeRequestsService().processDeviceProfileDevicesRequestMsg(edge.getTenantId(), edge, deviceProfileDevicesRequestMsg));
|
||||
}
|
||||
}
|
||||
if (uplinkMsg.getWidgetBundleTypesRequestMsgCount() > 0) {
|
||||
for (WidgetBundleTypesRequestMsg widgetBundleTypesRequestMsg : uplinkMsg.getWidgetBundleTypesRequestMsgList()) {
|
||||
result.add(ctx.getEdgeRequestsService().processWidgetBundleTypesRequestMsg(edge.getTenantId(), edge, widgetBundleTypesRequestMsg));
|
||||
|
||||
@ -22,6 +22,7 @@ import org.thingsboard.server.service.edge.rpc.fetch.AssetsEdgeEventFetcher;
|
||||
import org.thingsboard.server.service.edge.rpc.fetch.CustomerEdgeEventFetcher;
|
||||
import org.thingsboard.server.service.edge.rpc.fetch.DashboardsEdgeEventFetcher;
|
||||
import org.thingsboard.server.service.edge.rpc.fetch.DeviceProfilesEdgeEventFetcher;
|
||||
import org.thingsboard.server.service.edge.rpc.fetch.DevicesEdgeEventFetcher;
|
||||
import org.thingsboard.server.service.edge.rpc.fetch.EdgeEventFetcher;
|
||||
import org.thingsboard.server.service.edge.rpc.fetch.OtaPackagesEdgeEventFetcher;
|
||||
import org.thingsboard.server.service.edge.rpc.fetch.QueuesEdgeEventFetcher;
|
||||
@ -48,6 +49,7 @@ public class EdgeSyncCursor {
|
||||
fetchers.add(new AssetProfilesEdgeEventFetcher(ctx.getAssetProfileService()));
|
||||
fetchers.add(new CustomerEdgeEventFetcher(ctx.getCustomerService()));
|
||||
fetchers.add(new UsersEdgeEventFetcher(ctx.getUserService()));
|
||||
fetchers.add(new DevicesEdgeEventFetcher(ctx.getDeviceService()));
|
||||
fetchers.add(new AssetsEdgeEventFetcher(ctx.getAssetService()));
|
||||
fetchers.add(new SystemWidgetsBundlesEdgeEventFetcher(ctx.getWidgetsBundleService()));
|
||||
fetchers.add(new TenantWidgetsBundlesEdgeEventFetcher(ctx.getWidgetsBundleService()));
|
||||
|
||||
@ -0,0 +1,47 @@
|
||||
/**
|
||||
* Copyright © 2016-2022 The Thingsboard Authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.thingsboard.server.service.edge.rpc.fetch;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.thingsboard.server.common.data.Device;
|
||||
import org.thingsboard.server.common.data.EdgeUtils;
|
||||
import org.thingsboard.server.common.data.edge.Edge;
|
||||
import org.thingsboard.server.common.data.edge.EdgeEvent;
|
||||
import org.thingsboard.server.common.data.edge.EdgeEventActionType;
|
||||
import org.thingsboard.server.common.data.edge.EdgeEventType;
|
||||
import org.thingsboard.server.common.data.id.TenantId;
|
||||
import org.thingsboard.server.common.data.page.PageData;
|
||||
import org.thingsboard.server.common.data.page.PageLink;
|
||||
import org.thingsboard.server.dao.device.DeviceService;
|
||||
|
||||
@AllArgsConstructor
|
||||
@Slf4j
|
||||
public class DevicesEdgeEventFetcher extends BasePageableEdgeEventFetcher<Device> {
|
||||
|
||||
private final DeviceService deviceService;
|
||||
|
||||
@Override
|
||||
PageData<Device> fetchPageData(TenantId tenantId, Edge edge, PageLink pageLink) {
|
||||
return deviceService.findDevicesByTenantIdAndEdgeId(tenantId, edge.getId(), pageLink);
|
||||
}
|
||||
|
||||
@Override
|
||||
EdgeEvent constructEdgeEvent(TenantId tenantId, Edge edge, Device device) {
|
||||
return EdgeUtils.constructEdgeEvent(tenantId, edge.getId(), EdgeEventType.DEVICE,
|
||||
EdgeEventActionType.ADDED, device.getId(), null);
|
||||
}
|
||||
}
|
||||
@ -28,8 +28,6 @@ import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.thingsboard.common.util.JacksonUtil;
|
||||
import org.thingsboard.server.cluster.TbClusterService;
|
||||
import org.thingsboard.server.common.data.Device;
|
||||
import org.thingsboard.server.common.data.DeviceProfile;
|
||||
import org.thingsboard.server.common.data.EdgeUtils;
|
||||
import org.thingsboard.server.common.data.EntityType;
|
||||
import org.thingsboard.server.common.data.EntityView;
|
||||
@ -38,7 +36,6 @@ import org.thingsboard.server.common.data.edge.EdgeEvent;
|
||||
import org.thingsboard.server.common.data.edge.EdgeEventActionType;
|
||||
import org.thingsboard.server.common.data.edge.EdgeEventType;
|
||||
import org.thingsboard.server.common.data.id.DeviceId;
|
||||
import org.thingsboard.server.common.data.id.DeviceProfileId;
|
||||
import org.thingsboard.server.common.data.id.EdgeId;
|
||||
import org.thingsboard.server.common.data.id.EntityId;
|
||||
import org.thingsboard.server.common.data.id.EntityIdFactory;
|
||||
@ -48,8 +45,6 @@ import org.thingsboard.server.common.data.id.UserId;
|
||||
import org.thingsboard.server.common.data.id.WidgetsBundleId;
|
||||
import org.thingsboard.server.common.data.kv.AttributeKvEntry;
|
||||
import org.thingsboard.server.common.data.kv.DataType;
|
||||
import org.thingsboard.server.common.data.page.PageData;
|
||||
import org.thingsboard.server.common.data.page.PageLink;
|
||||
import org.thingsboard.server.common.data.relation.EntityRelation;
|
||||
import org.thingsboard.server.common.data.relation.EntityRelationsQuery;
|
||||
import org.thingsboard.server.common.data.relation.EntitySearchDirection;
|
||||
@ -68,7 +63,6 @@ import org.thingsboard.server.dao.widget.WidgetTypeService;
|
||||
import org.thingsboard.server.dao.widget.WidgetsBundleService;
|
||||
import org.thingsboard.server.gen.edge.v1.AttributesRequestMsg;
|
||||
import org.thingsboard.server.gen.edge.v1.DeviceCredentialsRequestMsg;
|
||||
import org.thingsboard.server.gen.edge.v1.DeviceProfileDevicesRequestMsg;
|
||||
import org.thingsboard.server.gen.edge.v1.EntityViewsRequestMsg;
|
||||
import org.thingsboard.server.gen.edge.v1.RelationRequestMsg;
|
||||
import org.thingsboard.server.gen.edge.v1.RuleChainMetadataRequestMsg;
|
||||
@ -319,44 +313,6 @@ public class DefaultEdgeRequestsService implements EdgeRequestsService {
|
||||
EdgeEventActionType.CREDENTIALS_UPDATED, userId, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ListenableFuture<Void> processDeviceProfileDevicesRequestMsg(TenantId tenantId, Edge edge, DeviceProfileDevicesRequestMsg deviceProfileDevicesRequestMsg) {
|
||||
log.trace("[{}] processDeviceProfileDevicesRequestMsg [{}][{}]", tenantId, edge.getName(), deviceProfileDevicesRequestMsg);
|
||||
if (deviceProfileDevicesRequestMsg.getDeviceProfileIdMSB() == 0 || deviceProfileDevicesRequestMsg.getDeviceProfileIdLSB() == 0) {
|
||||
return Futures.immediateFuture(null);
|
||||
}
|
||||
DeviceProfileId deviceProfileId = new DeviceProfileId(new UUID(deviceProfileDevicesRequestMsg.getDeviceProfileIdMSB(), deviceProfileDevicesRequestMsg.getDeviceProfileIdLSB()));
|
||||
DeviceProfile deviceProfileById = deviceProfileService.findDeviceProfileById(tenantId, deviceProfileId);
|
||||
if (deviceProfileById == null) {
|
||||
return Futures.immediateFuture(null);
|
||||
}
|
||||
return syncDevices(tenantId, edge, deviceProfileById.getName());
|
||||
}
|
||||
|
||||
private ListenableFuture<Void> syncDevices(TenantId tenantId, Edge edge, String deviceType) {
|
||||
log.trace("[{}] syncDevices [{}][{}]", tenantId, edge.getName(), deviceType);
|
||||
List<ListenableFuture<Void>> futures = new ArrayList<>();
|
||||
try {
|
||||
PageLink pageLink = new PageLink(DEFAULT_PAGE_SIZE);
|
||||
PageData<Device> pageData;
|
||||
do {
|
||||
pageData = deviceService.findDevicesByTenantIdAndEdgeIdAndType(tenantId, edge.getId(), deviceType, pageLink);
|
||||
if (pageData != null && pageData.getData() != null && !pageData.getData().isEmpty()) {
|
||||
log.trace("[{}] [{}] device(s) are going to be pushed to edge.", edge.getId(), pageData.getData().size());
|
||||
for (Device device : pageData.getData()) {
|
||||
futures.add(saveEdgeEvent(tenantId, edge.getId(), EdgeEventType.DEVICE, EdgeEventActionType.ADDED, device.getId(), null));
|
||||
}
|
||||
if (pageData.hasNext()) {
|
||||
pageLink = pageLink.nextPageLink();
|
||||
}
|
||||
}
|
||||
} while (pageData != null && pageData.hasNext());
|
||||
} catch (Exception e) {
|
||||
log.error("Exception during loading edge device(s) on sync!", e);
|
||||
}
|
||||
return Futures.transform(Futures.allAsList(futures), voids -> null, dbCallbackExecutorService);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ListenableFuture<Void> processWidgetBundleTypesRequestMsg(TenantId tenantId, Edge edge,
|
||||
WidgetBundleTypesRequestMsg widgetBundleTypesRequestMsg) {
|
||||
|
||||
@ -20,7 +20,6 @@ import org.thingsboard.server.common.data.edge.Edge;
|
||||
import org.thingsboard.server.common.data.id.TenantId;
|
||||
import org.thingsboard.server.gen.edge.v1.AttributesRequestMsg;
|
||||
import org.thingsboard.server.gen.edge.v1.DeviceCredentialsRequestMsg;
|
||||
import org.thingsboard.server.gen.edge.v1.DeviceProfileDevicesRequestMsg;
|
||||
import org.thingsboard.server.gen.edge.v1.EntityViewsRequestMsg;
|
||||
import org.thingsboard.server.gen.edge.v1.RelationRequestMsg;
|
||||
import org.thingsboard.server.gen.edge.v1.RuleChainMetadataRequestMsg;
|
||||
@ -39,8 +38,6 @@ public interface EdgeRequestsService {
|
||||
|
||||
ListenableFuture<Void> processUserCredentialsRequestMsg(TenantId tenantId, Edge edge, UserCredentialsRequestMsg userCredentialsRequestMsg);
|
||||
|
||||
ListenableFuture<Void> processDeviceProfileDevicesRequestMsg(TenantId tenantId, Edge edge, DeviceProfileDevicesRequestMsg deviceProfileDevicesRequestMsg);
|
||||
|
||||
ListenableFuture<Void> processWidgetBundleTypesRequestMsg(TenantId tenantId, Edge edge, WidgetBundleTypesRequestMsg widgetBundleTypesRequestMsg);
|
||||
|
||||
ListenableFuture<Void> processEntityViewsRequestMsg(TenantId tenantId, Edge edge, EntityViewsRequestMsg entityViewsRequestMsg);
|
||||
|
||||
@ -146,7 +146,7 @@ abstract public class AbstractEdgeTest extends AbstractControllerTest {
|
||||
installation();
|
||||
|
||||
edgeImitator = new EdgeImitator("localhost", 7070, edge.getRoutingKey(), edge.getSecret());
|
||||
edgeImitator.expectMessageAmount(16);
|
||||
edgeImitator.expectMessageAmount(21);
|
||||
edgeImitator.connect();
|
||||
|
||||
requestEdgeRuleChainMetadata();
|
||||
@ -240,10 +240,14 @@ abstract public class AbstractEdgeTest extends AbstractControllerTest {
|
||||
|
||||
validateEdgeConfiguration();
|
||||
|
||||
// 3 messages - 2 from device profile fetcher (default and thermostat), 1 from device profile controller (thermostat)
|
||||
// 5 messages
|
||||
// - 2 from device profile fetcher (default and thermostat)
|
||||
// - 1 from device fetcher
|
||||
// - 1 from device profile controller (thermostat)
|
||||
// - 1 from device controller (thermostat)
|
||||
validateDeviceProfiles();
|
||||
|
||||
// 1 message from device controller
|
||||
// 2 messages - 1 from device fetcher and 1 from device controller
|
||||
validateDevices();
|
||||
|
||||
// 2 messages - 1 from asset fetcher and 1 from asset controller
|
||||
@ -258,7 +262,10 @@ abstract public class AbstractEdgeTest extends AbstractControllerTest {
|
||||
// 4 messages - 4 messages from fetcher - 2 from system level ('mail', 'mailTemplates') and 2 from admin level ('mail', 'mailTemplates')
|
||||
validateAdminSettings();
|
||||
|
||||
// 1 message from asset profile fetcher
|
||||
// 3 messages
|
||||
// - 1 message from asset profile fetcher
|
||||
// - 1 message from asset fetcher
|
||||
// - 1 message from asset controller
|
||||
validateAssetProfiles();
|
||||
|
||||
// 1 message from queue fetcher
|
||||
@ -278,8 +285,10 @@ abstract public class AbstractEdgeTest extends AbstractControllerTest {
|
||||
List<DeviceProfileUpdateMsg> deviceProfileUpdateMsgList = edgeImitator.findAllMessagesByType(DeviceProfileUpdateMsg.class);
|
||||
// default msg
|
||||
// thermostat msg from fetcher
|
||||
// thermostat msg from contoller
|
||||
Assert.assertEquals(3, deviceProfileUpdateMsgList.size());
|
||||
// thermostat msg from device fetcher
|
||||
// thermostat msg from controller
|
||||
// thermostat msg from creation of device
|
||||
Assert.assertEquals(5, deviceProfileUpdateMsgList.size());
|
||||
Optional<DeviceProfileUpdateMsg> thermostatProfileUpdateMsgOpt =
|
||||
deviceProfileUpdateMsgList.stream().filter(dfum -> THERMOSTAT_DEVICE_PROFILE_NAME.equals(dfum.getName())).findAny();
|
||||
Assert.assertTrue(thermostatProfileUpdateMsgOpt.isPresent());
|
||||
@ -296,9 +305,13 @@ abstract public class AbstractEdgeTest extends AbstractControllerTest {
|
||||
}
|
||||
|
||||
private void validateDevices() throws Exception {
|
||||
Optional<DeviceUpdateMsg> deviceUpdateMsgOpt = edgeImitator.findMessageByType(DeviceUpdateMsg.class);
|
||||
Assert.assertTrue(deviceUpdateMsgOpt.isPresent());
|
||||
DeviceUpdateMsg deviceUpdateMsg = deviceUpdateMsgOpt.get();
|
||||
List<DeviceUpdateMsg> deviceUpdateMsgs = edgeImitator.findAllMessagesByType(DeviceUpdateMsg.class);
|
||||
Assert.assertEquals(2, deviceUpdateMsgs.size());
|
||||
validateDevice(deviceUpdateMsgs.get(0));
|
||||
validateDevice(deviceUpdateMsgs.get(1));
|
||||
}
|
||||
|
||||
private void validateDevice(DeviceUpdateMsg deviceUpdateMsg) throws Exception {
|
||||
Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, deviceUpdateMsg.getMsgType());
|
||||
UUID deviceUUID = new UUID(deviceUpdateMsg.getIdMSB(), deviceUpdateMsg.getIdLSB());
|
||||
Device device = doGet("/api/device/" + deviceUUID, Device.class);
|
||||
@ -306,6 +319,8 @@ abstract public class AbstractEdgeTest extends AbstractControllerTest {
|
||||
List<Device> edgeDevices = doGetTypedWithPageLink("/api/edge/" + edge.getUuidId() + "/devices?",
|
||||
new TypeReference<PageData<Device>>() {}, new PageLink(100)).getData();
|
||||
Assert.assertTrue(edgeDevices.contains(device));
|
||||
|
||||
testAutoGeneratedCodeByProtobuf(deviceUpdateMsg);
|
||||
}
|
||||
|
||||
private void validateAssets() throws Exception {
|
||||
@ -392,9 +407,9 @@ abstract public class AbstractEdgeTest extends AbstractControllerTest {
|
||||
}
|
||||
|
||||
private void validateAssetProfiles() throws Exception {
|
||||
Optional<AssetProfileUpdateMsg> assetProfileUpdateMsgOpt = edgeImitator.findMessageByType(AssetProfileUpdateMsg.class);
|
||||
Assert.assertTrue(assetProfileUpdateMsgOpt.isPresent());
|
||||
AssetProfileUpdateMsg assetProfileUpdateMsg = assetProfileUpdateMsgOpt.get();
|
||||
List<AssetProfileUpdateMsg> assetProfileUpdateMsgs = edgeImitator.findAllMessagesByType(AssetProfileUpdateMsg.class);
|
||||
Assert.assertEquals(3, assetProfileUpdateMsgs.size());
|
||||
AssetProfileUpdateMsg assetProfileUpdateMsg = assetProfileUpdateMsgs.get(0);
|
||||
Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, assetProfileUpdateMsg.getMsgType());
|
||||
UUID assetProfileUUID = new UUID(assetProfileUpdateMsg.getIdMSB(), assetProfileUpdateMsg.getIdLSB());
|
||||
AssetProfile assetProfile = doGet("/api/assetProfile/" + assetProfileUUID, AssetProfile.class);
|
||||
@ -439,17 +454,24 @@ abstract public class AbstractEdgeTest extends AbstractControllerTest {
|
||||
|
||||
// create device and assign to edge
|
||||
Device savedDevice = saveDevice(StringUtils.randomAlphanumeric(15), thermostatDeviceProfile.getName());
|
||||
edgeImitator.expectMessageAmount(1);
|
||||
edgeImitator.expectMessageAmount(2); // device and device profile messages
|
||||
doPost("/api/edge/" + edge.getUuidId()
|
||||
+ "/device/" + savedDevice.getUuidId(), Device.class);
|
||||
Assert.assertTrue(edgeImitator.waitForMessages());
|
||||
AbstractMessage latestMessage = edgeImitator.getLatestMessage();
|
||||
Assert.assertTrue(latestMessage instanceof DeviceUpdateMsg);
|
||||
DeviceUpdateMsg deviceUpdateMsg = (DeviceUpdateMsg) latestMessage;
|
||||
Optional<DeviceUpdateMsg> deviceUpdateMsgOpt = edgeImitator.findMessageByType(DeviceUpdateMsg.class);
|
||||
Assert.assertTrue(deviceUpdateMsgOpt.isPresent());
|
||||
DeviceUpdateMsg deviceUpdateMsg = deviceUpdateMsgOpt.get();
|
||||
Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, deviceUpdateMsg.getMsgType());
|
||||
Assert.assertEquals(savedDevice.getUuidId().getMostSignificantBits(), deviceUpdateMsg.getIdMSB());
|
||||
Assert.assertEquals(savedDevice.getUuidId().getLeastSignificantBits(), deviceUpdateMsg.getIdLSB());
|
||||
|
||||
Optional<DeviceProfileUpdateMsg> deviceProfileUpdateMsgOpt = edgeImitator.findMessageByType(DeviceProfileUpdateMsg.class);
|
||||
Assert.assertTrue(deviceProfileUpdateMsgOpt.isPresent());
|
||||
DeviceProfileUpdateMsg deviceProfileUpdateMsg = deviceProfileUpdateMsgOpt.get();
|
||||
Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, deviceProfileUpdateMsg.getMsgType());
|
||||
Assert.assertEquals(thermostatDeviceProfile.getUuidId().getMostSignificantBits(), deviceProfileUpdateMsg.getIdMSB());
|
||||
Assert.assertEquals(thermostatDeviceProfile.getUuidId().getLeastSignificantBits(), deviceProfileUpdateMsg.getIdLSB());
|
||||
|
||||
// update device
|
||||
edgeImitator.expectMessageAmount(1);
|
||||
savedDevice.setFirmwareId(firmwareOtaPackageInfo.getId());
|
||||
@ -463,7 +485,7 @@ abstract public class AbstractEdgeTest extends AbstractControllerTest {
|
||||
|
||||
savedDevice = doPost("/api/device", savedDevice, Device.class);
|
||||
Assert.assertTrue(edgeImitator.waitForMessages());
|
||||
latestMessage = edgeImitator.getLatestMessage();
|
||||
AbstractMessage latestMessage = edgeImitator.getLatestMessage();
|
||||
Assert.assertTrue(latestMessage instanceof DeviceUpdateMsg);
|
||||
deviceUpdateMsg = (DeviceUpdateMsg) latestMessage;
|
||||
Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, deviceUpdateMsg.getMsgType());
|
||||
|
||||
@ -44,6 +44,7 @@ import org.thingsboard.server.common.transport.adaptor.JsonConverter;
|
||||
import org.thingsboard.server.gen.edge.v1.AttributesRequestMsg;
|
||||
import org.thingsboard.server.gen.edge.v1.DeviceCredentialsRequestMsg;
|
||||
import org.thingsboard.server.gen.edge.v1.DeviceCredentialsUpdateMsg;
|
||||
import org.thingsboard.server.gen.edge.v1.DeviceProfileUpdateMsg;
|
||||
import org.thingsboard.server.gen.edge.v1.DeviceRpcCallMsg;
|
||||
import org.thingsboard.server.gen.edge.v1.DeviceUpdateMsg;
|
||||
import org.thingsboard.server.gen.edge.v1.EntityDataProto;
|
||||
@ -88,20 +89,27 @@ abstract public class BaseDeviceEdgeTest extends AbstractEdgeTest {
|
||||
Assert.assertFalse(edgeImitator.waitForMessages(1));
|
||||
|
||||
// create device #2 and assign to edge
|
||||
edgeImitator.expectMessageAmount(1);
|
||||
edgeImitator.expectMessageAmount(2);
|
||||
savedDevice = saveDevice("Edge Device 3", "Default");
|
||||
doPost("/api/edge/" + edge.getUuidId()
|
||||
+ "/device/" + savedDevice.getUuidId(), Device.class);
|
||||
Assert.assertTrue(edgeImitator.waitForMessages());
|
||||
latestMessage = edgeImitator.getLatestMessage();
|
||||
Assert.assertTrue(latestMessage instanceof DeviceUpdateMsg);
|
||||
deviceUpdateMsg = (DeviceUpdateMsg) latestMessage;
|
||||
Optional<DeviceUpdateMsg> deviceUpdateMsgOpt = edgeImitator.findMessageByType(DeviceUpdateMsg.class);
|
||||
Assert.assertTrue(deviceUpdateMsgOpt.isPresent());
|
||||
deviceUpdateMsg = deviceUpdateMsgOpt.get();
|
||||
Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, deviceUpdateMsg.getMsgType());
|
||||
Assert.assertEquals(savedDevice.getUuidId().getMostSignificantBits(), deviceUpdateMsg.getIdMSB());
|
||||
Assert.assertEquals(savedDevice.getUuidId().getLeastSignificantBits(), deviceUpdateMsg.getIdLSB());
|
||||
Assert.assertEquals(savedDevice.getName(), deviceUpdateMsg.getName());
|
||||
Assert.assertEquals(savedDevice.getType(), deviceUpdateMsg.getType());
|
||||
|
||||
Optional<DeviceProfileUpdateMsg> deviceProfileUpdateMsgOpt = edgeImitator.findMessageByType(DeviceProfileUpdateMsg.class);
|
||||
Assert.assertTrue(deviceProfileUpdateMsgOpt.isPresent());
|
||||
DeviceProfileUpdateMsg deviceProfileUpdateMsg = deviceProfileUpdateMsgOpt.get();
|
||||
Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, deviceProfileUpdateMsg.getMsgType());
|
||||
Assert.assertEquals(savedDevice.getDeviceProfileId().getId().getMostSignificantBits(), deviceProfileUpdateMsg.getIdMSB());
|
||||
Assert.assertEquals(savedDevice.getDeviceProfileId().getId().getLeastSignificantBits(), deviceProfileUpdateMsg.getIdLSB());
|
||||
|
||||
// assign device #2 to customer
|
||||
edgeImitator.expectMessageAmount(1);
|
||||
Customer customer = new Customer();
|
||||
|
||||
@ -400,6 +400,7 @@ message DeviceCredentialsRequestMsg {
|
||||
int64 deviceIdLSB = 2;
|
||||
}
|
||||
|
||||
// deprecated
|
||||
message DeviceProfileDevicesRequestMsg {
|
||||
int64 deviceProfileIdMSB = 1;
|
||||
int64 deviceProfileIdLSB = 2;
|
||||
@ -509,7 +510,7 @@ message UplinkMsg {
|
||||
repeated UserCredentialsRequestMsg userCredentialsRequestMsg = 10;
|
||||
repeated DeviceCredentialsRequestMsg deviceCredentialsRequestMsg = 11;
|
||||
repeated DeviceRpcCallMsg deviceRpcCallMsg = 12;
|
||||
repeated DeviceProfileDevicesRequestMsg deviceProfileDevicesRequestMsg = 13;
|
||||
repeated DeviceProfileDevicesRequestMsg deviceProfileDevicesRequestMsg = 13; // deprecated
|
||||
repeated WidgetBundleTypesRequestMsg widgetBundleTypesRequestMsg = 14;
|
||||
repeated EntityViewsRequestMsg entityViewsRequestMsg = 15;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user