Search in sources :

Example 21 with PageData

use of org.thingsboard.server.common.data.page.PageData in project thingsboard by thingsboard.

the class BaseEdgeTest method verifyEdgeConnectionAndInitialData.

private void verifyEdgeConnectionAndInitialData() throws Exception {
    Assert.assertTrue(edgeImitator.waitForMessages());
    EdgeConfiguration configuration = edgeImitator.getConfiguration();
    Assert.assertNotNull(configuration);
    testAutoGeneratedCodeByProtobuf(configuration);
    Optional<DeviceUpdateMsg> deviceUpdateMsgOpt = edgeImitator.findMessageByType(DeviceUpdateMsg.class);
    Assert.assertTrue(deviceUpdateMsgOpt.isPresent());
    DeviceUpdateMsg deviceUpdateMsg = deviceUpdateMsgOpt.get();
    Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, deviceUpdateMsg.getMsgType());
    UUID deviceUUID = new UUID(deviceUpdateMsg.getIdMSB(), deviceUpdateMsg.getIdLSB());
    Device device = doGet("/api/device/" + deviceUUID.toString(), Device.class);
    Assert.assertNotNull(device);
    List<Device> edgeDevices = doGetTypedWithPageLink("/api/edge/" + edge.getUuidId() + "/devices?", new TypeReference<PageData<Device>>() {
    }, new PageLink(100)).getData();
    Assert.assertTrue(edgeDevices.contains(device));
    List<DeviceProfileUpdateMsg> deviceProfileUpdateMsgList = edgeImitator.findAllMessagesByType(DeviceProfileUpdateMsg.class);
    Assert.assertEquals(3, deviceProfileUpdateMsgList.size());
    Optional<DeviceProfileUpdateMsg> deviceProfileUpdateMsgOpt = deviceProfileUpdateMsgList.stream().filter(dfum -> CUSTOM_DEVICE_PROFILE_NAME.equals(dfum.getName())).findAny();
    Assert.assertTrue(deviceProfileUpdateMsgOpt.isPresent());
    DeviceProfileUpdateMsg deviceProfileUpdateMsg = deviceProfileUpdateMsgOpt.get();
    Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, deviceProfileUpdateMsg.getMsgType());
    UUID deviceProfileUUID = new UUID(deviceProfileUpdateMsg.getIdMSB(), deviceProfileUpdateMsg.getIdLSB());
    DeviceProfile deviceProfile = doGet("/api/deviceProfile/" + deviceProfileUUID.toString(), DeviceProfile.class);
    Assert.assertNotNull(deviceProfile);
    Assert.assertNotNull(deviceProfile.getProfileData());
    Assert.assertNotNull(deviceProfile.getProfileData().getAlarms());
    Assert.assertNotNull(deviceProfile.getProfileData().getAlarms().get(0).getClearRule());
    testAutoGeneratedCodeByProtobuf(deviceProfileUpdateMsg);
    Optional<AssetUpdateMsg> assetUpdateMsgOpt = edgeImitator.findMessageByType(AssetUpdateMsg.class);
    Assert.assertTrue(assetUpdateMsgOpt.isPresent());
    AssetUpdateMsg assetUpdateMsg = assetUpdateMsgOpt.get();
    Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, assetUpdateMsg.getMsgType());
    UUID assetUUID = new UUID(assetUpdateMsg.getIdMSB(), assetUpdateMsg.getIdLSB());
    Asset asset = doGet("/api/asset/" + assetUUID.toString(), Asset.class);
    Assert.assertNotNull(asset);
    List<Asset> edgeAssets = doGetTypedWithPageLink("/api/edge/" + edge.getUuidId() + "/assets?", new TypeReference<PageData<Asset>>() {
    }, new PageLink(100)).getData();
    Assert.assertTrue(edgeAssets.contains(asset));
    testAutoGeneratedCodeByProtobuf(assetUpdateMsg);
    Optional<RuleChainUpdateMsg> ruleChainUpdateMsgOpt = edgeImitator.findMessageByType(RuleChainUpdateMsg.class);
    Assert.assertTrue(ruleChainUpdateMsgOpt.isPresent());
    RuleChainUpdateMsg ruleChainUpdateMsg = ruleChainUpdateMsgOpt.get();
    Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, ruleChainUpdateMsg.getMsgType());
    UUID ruleChainUUID = new UUID(ruleChainUpdateMsg.getIdMSB(), ruleChainUpdateMsg.getIdLSB());
    RuleChain ruleChain = doGet("/api/ruleChain/" + ruleChainUUID.toString(), RuleChain.class);
    Assert.assertNotNull(ruleChain);
    List<RuleChain> edgeRuleChains = doGetTypedWithPageLink("/api/edge/" + edge.getUuidId() + "/ruleChains?", new TypeReference<PageData<RuleChain>>() {
    }, new PageLink(100)).getData();
    Assert.assertTrue(edgeRuleChains.contains(ruleChain));
    testAutoGeneratedCodeByProtobuf(ruleChainUpdateMsg);
    validateAdminSettings();
}
Also used : AbstractControllerTest(org.thingsboard.server.controller.AbstractControllerTest) Edge(org.thingsboard.server.common.data.edge.Edge) AlarmRule(org.thingsboard.server.common.data.device.profile.AlarmRule) AlarmConditionKeyType(org.thingsboard.server.common.data.device.profile.AlarmConditionKeyType) Autowired(org.springframework.beans.factory.annotation.Autowired) TenantId(org.thingsboard.server.common.data.id.TenantId) EntityRelation(org.thingsboard.server.common.data.relation.EntityRelation) UplinkResponseMsg(org.thingsboard.server.gen.edge.v1.UplinkResponseMsg) Map(java.util.Map) JsonConverter(org.thingsboard.server.common.transport.adaptor.JsonConverter) JsonNode(com.fasterxml.jackson.databind.JsonNode) AlarmStatus(org.thingsboard.server.common.data.alarm.AlarmStatus) EntityViewUpdateMsg(org.thingsboard.server.gen.edge.v1.EntityViewUpdateMsg) InvalidProtocolBufferException(com.google.protobuf.InvalidProtocolBufferException) DeviceProfile(org.thingsboard.server.common.data.DeviceProfile) DeviceUpdateMsg(org.thingsboard.server.gen.edge.v1.DeviceUpdateMsg) PageLink(org.thingsboard.server.common.data.page.PageLink) Authority(org.thingsboard.server.common.data.security.Authority) Alarm(org.thingsboard.server.common.data.alarm.Alarm) EdgeEventActionType(org.thingsboard.server.common.data.edge.EdgeEventActionType) EntityView(org.thingsboard.server.common.data.EntityView) AdminSettingsUpdateMsg(org.thingsboard.server.gen.edge.v1.AdminSettingsUpdateMsg) TransportProtos(org.thingsboard.server.gen.transport.TransportProtos) RuleChainId(org.thingsboard.server.common.data.id.RuleChainId) UserCredentialsUpdateMsg(org.thingsboard.server.gen.edge.v1.UserCredentialsUpdateMsg) Awaitility(org.awaitility.Awaitility) EntityKeyValueType(org.thingsboard.server.common.data.query.EntityKeyValueType) DeviceCredentialsUpdateMsg(org.thingsboard.server.gen.edge.v1.DeviceCredentialsUpdateMsg) AlarmSeverity(org.thingsboard.server.common.data.alarm.AlarmSeverity) WidgetType(org.thingsboard.server.common.data.widget.WidgetType) Device(org.thingsboard.server.common.data.Device) AlarmUpdateMsg(org.thingsboard.server.gen.edge.v1.AlarmUpdateMsg) NumericFilterPredicate(org.thingsboard.server.common.data.query.NumericFilterPredicate) ArrayList(java.util.ArrayList) User(org.thingsboard.server.common.data.User) EntityIdFactory(org.thingsboard.server.common.data.id.EntityIdFactory) MockMvcResultMatchers.status(org.springframework.test.web.servlet.result.MockMvcResultMatchers.status) AlarmConditionFilterKey(org.thingsboard.server.common.data.device.profile.AlarmConditionFilterKey) WidgetsBundleUpdateMsg(org.thingsboard.server.gen.edge.v1.WidgetsBundleUpdateMsg) DashboardUpdateMsg(org.thingsboard.server.gen.edge.v1.DashboardUpdateMsg) Before(org.junit.Before) RpcResponseMsg(org.thingsboard.server.gen.edge.v1.RpcResponseMsg) DataConstants(org.thingsboard.server.common.data.DataConstants) FilterPredicateValue(org.thingsboard.server.common.data.query.FilterPredicateValue) RuleChainType(org.thingsboard.server.common.data.rule.RuleChainType) RuleNode(org.thingsboard.server.common.data.rule.RuleNode) RuleChainMetadataRequestMsg(org.thingsboard.server.gen.edge.v1.RuleChainMetadataRequestMsg) UserCredentialsRequestMsg(org.thingsboard.server.gen.edge.v1.UserCredentialsRequestMsg) DeviceCredentials(org.thingsboard.server.common.data.security.DeviceCredentials) AttributesRequestMsg(org.thingsboard.server.gen.edge.v1.AttributesRequestMsg) Test(org.junit.Test) EntityDataProto(org.thingsboard.server.gen.edge.v1.EntityDataProto) DeviceProfileData(org.thingsboard.server.common.data.device.profile.DeviceProfileData) RelationUpdateMsg(org.thingsboard.server.gen.edge.v1.RelationUpdateMsg) TreeMap(java.util.TreeMap) PageData(org.thingsboard.server.common.data.page.PageData) DeviceCredentialsRequestMsg(org.thingsboard.server.gen.edge.v1.DeviceCredentialsRequestMsg) EdgeEvent(org.thingsboard.server.common.data.edge.EdgeEvent) RuleChain(org.thingsboard.server.common.data.rule.RuleChain) AlarmConditionFilter(org.thingsboard.server.common.data.device.profile.AlarmConditionFilter) RelationTypeGroup(org.thingsboard.server.common.data.relation.RelationTypeGroup) Assert(org.junit.Assert) JsonObject(com.google.gson.JsonObject) DeviceProfileUpdateMsg(org.thingsboard.server.gen.edge.v1.DeviceProfileUpdateMsg) EdgeImitator(org.thingsboard.server.edge.imitator.EdgeImitator) DeviceRpcCallMsg(org.thingsboard.server.gen.edge.v1.DeviceRpcCallMsg) Customer(org.thingsboard.server.common.data.Customer) RuleChainMetaData(org.thingsboard.server.common.data.rule.RuleChainMetaData) AssetUpdateMsg(org.thingsboard.server.gen.edge.v1.AssetUpdateMsg) Random(java.util.Random) DefaultTenantProfileConfiguration(org.thingsboard.server.common.data.tenant.profile.DefaultTenantProfileConfiguration) WidgetsBundle(org.thingsboard.server.common.data.widget.WidgetsBundle) Uuids(com.datastax.oss.driver.api.core.uuid.Uuids) WidgetTypeUpdateMsg(org.thingsboard.server.gen.edge.v1.WidgetTypeUpdateMsg) After(org.junit.After) AttributeDeleteMsg(org.thingsboard.server.gen.edge.v1.AttributeDeleteMsg) EntityType(org.thingsboard.server.common.data.EntityType) TypeReference(com.fasterxml.jackson.core.type.TypeReference) EdgeId(org.thingsboard.server.common.data.id.EdgeId) Dashboard(org.thingsboard.server.common.data.Dashboard) EdgeEventService(org.thingsboard.server.dao.edge.EdgeEventService) AlarmCondition(org.thingsboard.server.common.data.device.profile.AlarmCondition) UUID(java.util.UUID) AllowCreateNewDevicesDeviceProfileProvisionConfiguration(org.thingsboard.server.common.data.device.profile.AllowCreateNewDevicesDeviceProfileProvisionConfiguration) UserUpdateMsg(org.thingsboard.server.gen.edge.v1.UserUpdateMsg) RuleChainUpdateMsg(org.thingsboard.server.gen.edge.v1.RuleChainUpdateMsg) List(java.util.List) TbClusterService(org.thingsboard.server.cluster.TbClusterService) Optional(java.util.Optional) RandomStringUtils(org.apache.commons.lang3.RandomStringUtils) UpdateMsgType(org.thingsboard.server.gen.edge.v1.UpdateMsgType) EntityViewsRequestMsg(org.thingsboard.server.gen.edge.v1.EntityViewsRequestMsg) RelationRequestMsg(org.thingsboard.server.gen.edge.v1.RelationRequestMsg) JacksonUtil(org.thingsboard.common.util.JacksonUtil) Tenant(org.thingsboard.server.common.data.Tenant) RuleChainMetadataUpdateMsg(org.thingsboard.server.gen.edge.v1.RuleChainMetadataUpdateMsg) ObjectNode(com.fasterxml.jackson.databind.node.ObjectNode) TenantProfile(org.thingsboard.server.common.data.TenantProfile) DeviceProfileAlarm(org.thingsboard.server.common.data.device.profile.DeviceProfileAlarm) SimpleAlarmConditionSpec(org.thingsboard.server.common.data.device.profile.SimpleAlarmConditionSpec) EntityId(org.thingsboard.server.common.data.id.EntityId) CustomerUpdateMsg(org.thingsboard.server.gen.edge.v1.CustomerUpdateMsg) AlarmInfo(org.thingsboard.server.common.data.alarm.AlarmInfo) AbstractMessage(com.google.protobuf.AbstractMessage) DeviceCredentialsType(org.thingsboard.server.common.data.security.DeviceCredentialsType) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) JsonProcessingException(com.fasterxml.jackson.core.JsonProcessingException) EdgeConfiguration(org.thingsboard.server.gen.edge.v1.EdgeConfiguration) TimeUnit(java.util.concurrent.TimeUnit) MessageLite(com.google.protobuf.MessageLite) UplinkMsg(org.thingsboard.server.gen.edge.v1.UplinkMsg) EdgeEventType(org.thingsboard.server.common.data.edge.EdgeEventType) Asset(org.thingsboard.server.common.data.asset.Asset) DeviceProfileUpdateMsg(org.thingsboard.server.gen.edge.v1.DeviceProfileUpdateMsg) Device(org.thingsboard.server.common.data.Device) EdgeConfiguration(org.thingsboard.server.gen.edge.v1.EdgeConfiguration) DeviceProfile(org.thingsboard.server.common.data.DeviceProfile) RuleChain(org.thingsboard.server.common.data.rule.RuleChain) AssetUpdateMsg(org.thingsboard.server.gen.edge.v1.AssetUpdateMsg) PageLink(org.thingsboard.server.common.data.page.PageLink) Asset(org.thingsboard.server.common.data.asset.Asset) DeviceUpdateMsg(org.thingsboard.server.gen.edge.v1.DeviceUpdateMsg) TypeReference(com.fasterxml.jackson.core.type.TypeReference) UUID(java.util.UUID) RuleChainUpdateMsg(org.thingsboard.server.gen.edge.v1.RuleChainUpdateMsg)

Example 22 with PageData

use of org.thingsboard.server.common.data.page.PageData in project thingsboard by thingsboard.

the class BaseEdgeTest method testSendAlarmToCloud.

@Test
public void testSendAlarmToCloud() throws Exception {
    Device device = saveDeviceOnCloudAndVerifyDeliveryToEdge();
    UplinkMsg.Builder uplinkMsgBuilder = UplinkMsg.newBuilder();
    AlarmUpdateMsg.Builder alarmUpdateMgBuilder = AlarmUpdateMsg.newBuilder();
    alarmUpdateMgBuilder.setName("alarm from edge");
    alarmUpdateMgBuilder.setStatus(AlarmStatus.ACTIVE_UNACK.name());
    alarmUpdateMgBuilder.setSeverity(AlarmSeverity.CRITICAL.name());
    alarmUpdateMgBuilder.setOriginatorName(device.getName());
    alarmUpdateMgBuilder.setOriginatorType(EntityType.DEVICE.name());
    testAutoGeneratedCodeByProtobuf(alarmUpdateMgBuilder);
    uplinkMsgBuilder.addAlarmUpdateMsg(alarmUpdateMgBuilder.build());
    testAutoGeneratedCodeByProtobuf(uplinkMsgBuilder);
    edgeImitator.expectResponsesAmount(1);
    edgeImitator.sendUplinkMsg(uplinkMsgBuilder.build());
    Assert.assertTrue(edgeImitator.waitForResponses());
    List<AlarmInfo> alarms = doGetTypedWithPageLink("/api/alarm/{entityType}/{entityId}?", new TypeReference<PageData<AlarmInfo>>() {
    }, new PageLink(100), device.getId().getEntityType().name(), device.getUuidId()).getData();
    Optional<AlarmInfo> foundAlarm = alarms.stream().filter(alarm -> alarm.getType().equals("alarm from edge")).findAny();
    Assert.assertTrue(foundAlarm.isPresent());
    AlarmInfo alarmInfo = foundAlarm.get();
    Assert.assertEquals(device.getId(), alarmInfo.getOriginator());
    Assert.assertEquals(AlarmStatus.ACTIVE_UNACK, alarmInfo.getStatus());
    Assert.assertEquals(AlarmSeverity.CRITICAL, alarmInfo.getSeverity());
}
Also used : AbstractControllerTest(org.thingsboard.server.controller.AbstractControllerTest) Edge(org.thingsboard.server.common.data.edge.Edge) AlarmRule(org.thingsboard.server.common.data.device.profile.AlarmRule) AlarmConditionKeyType(org.thingsboard.server.common.data.device.profile.AlarmConditionKeyType) Autowired(org.springframework.beans.factory.annotation.Autowired) TenantId(org.thingsboard.server.common.data.id.TenantId) EntityRelation(org.thingsboard.server.common.data.relation.EntityRelation) UplinkResponseMsg(org.thingsboard.server.gen.edge.v1.UplinkResponseMsg) Map(java.util.Map) JsonConverter(org.thingsboard.server.common.transport.adaptor.JsonConverter) JsonNode(com.fasterxml.jackson.databind.JsonNode) AlarmStatus(org.thingsboard.server.common.data.alarm.AlarmStatus) EntityViewUpdateMsg(org.thingsboard.server.gen.edge.v1.EntityViewUpdateMsg) InvalidProtocolBufferException(com.google.protobuf.InvalidProtocolBufferException) DeviceProfile(org.thingsboard.server.common.data.DeviceProfile) DeviceUpdateMsg(org.thingsboard.server.gen.edge.v1.DeviceUpdateMsg) PageLink(org.thingsboard.server.common.data.page.PageLink) Authority(org.thingsboard.server.common.data.security.Authority) Alarm(org.thingsboard.server.common.data.alarm.Alarm) EdgeEventActionType(org.thingsboard.server.common.data.edge.EdgeEventActionType) EntityView(org.thingsboard.server.common.data.EntityView) AdminSettingsUpdateMsg(org.thingsboard.server.gen.edge.v1.AdminSettingsUpdateMsg) TransportProtos(org.thingsboard.server.gen.transport.TransportProtos) RuleChainId(org.thingsboard.server.common.data.id.RuleChainId) UserCredentialsUpdateMsg(org.thingsboard.server.gen.edge.v1.UserCredentialsUpdateMsg) Awaitility(org.awaitility.Awaitility) EntityKeyValueType(org.thingsboard.server.common.data.query.EntityKeyValueType) DeviceCredentialsUpdateMsg(org.thingsboard.server.gen.edge.v1.DeviceCredentialsUpdateMsg) AlarmSeverity(org.thingsboard.server.common.data.alarm.AlarmSeverity) WidgetType(org.thingsboard.server.common.data.widget.WidgetType) Device(org.thingsboard.server.common.data.Device) AlarmUpdateMsg(org.thingsboard.server.gen.edge.v1.AlarmUpdateMsg) NumericFilterPredicate(org.thingsboard.server.common.data.query.NumericFilterPredicate) ArrayList(java.util.ArrayList) User(org.thingsboard.server.common.data.User) EntityIdFactory(org.thingsboard.server.common.data.id.EntityIdFactory) MockMvcResultMatchers.status(org.springframework.test.web.servlet.result.MockMvcResultMatchers.status) AlarmConditionFilterKey(org.thingsboard.server.common.data.device.profile.AlarmConditionFilterKey) WidgetsBundleUpdateMsg(org.thingsboard.server.gen.edge.v1.WidgetsBundleUpdateMsg) DashboardUpdateMsg(org.thingsboard.server.gen.edge.v1.DashboardUpdateMsg) Before(org.junit.Before) RpcResponseMsg(org.thingsboard.server.gen.edge.v1.RpcResponseMsg) DataConstants(org.thingsboard.server.common.data.DataConstants) FilterPredicateValue(org.thingsboard.server.common.data.query.FilterPredicateValue) RuleChainType(org.thingsboard.server.common.data.rule.RuleChainType) RuleNode(org.thingsboard.server.common.data.rule.RuleNode) RuleChainMetadataRequestMsg(org.thingsboard.server.gen.edge.v1.RuleChainMetadataRequestMsg) UserCredentialsRequestMsg(org.thingsboard.server.gen.edge.v1.UserCredentialsRequestMsg) DeviceCredentials(org.thingsboard.server.common.data.security.DeviceCredentials) AttributesRequestMsg(org.thingsboard.server.gen.edge.v1.AttributesRequestMsg) Test(org.junit.Test) EntityDataProto(org.thingsboard.server.gen.edge.v1.EntityDataProto) DeviceProfileData(org.thingsboard.server.common.data.device.profile.DeviceProfileData) RelationUpdateMsg(org.thingsboard.server.gen.edge.v1.RelationUpdateMsg) TreeMap(java.util.TreeMap) PageData(org.thingsboard.server.common.data.page.PageData) DeviceCredentialsRequestMsg(org.thingsboard.server.gen.edge.v1.DeviceCredentialsRequestMsg) EdgeEvent(org.thingsboard.server.common.data.edge.EdgeEvent) RuleChain(org.thingsboard.server.common.data.rule.RuleChain) AlarmConditionFilter(org.thingsboard.server.common.data.device.profile.AlarmConditionFilter) RelationTypeGroup(org.thingsboard.server.common.data.relation.RelationTypeGroup) Assert(org.junit.Assert) JsonObject(com.google.gson.JsonObject) DeviceProfileUpdateMsg(org.thingsboard.server.gen.edge.v1.DeviceProfileUpdateMsg) EdgeImitator(org.thingsboard.server.edge.imitator.EdgeImitator) DeviceRpcCallMsg(org.thingsboard.server.gen.edge.v1.DeviceRpcCallMsg) Customer(org.thingsboard.server.common.data.Customer) RuleChainMetaData(org.thingsboard.server.common.data.rule.RuleChainMetaData) AssetUpdateMsg(org.thingsboard.server.gen.edge.v1.AssetUpdateMsg) Random(java.util.Random) DefaultTenantProfileConfiguration(org.thingsboard.server.common.data.tenant.profile.DefaultTenantProfileConfiguration) WidgetsBundle(org.thingsboard.server.common.data.widget.WidgetsBundle) Uuids(com.datastax.oss.driver.api.core.uuid.Uuids) WidgetTypeUpdateMsg(org.thingsboard.server.gen.edge.v1.WidgetTypeUpdateMsg) After(org.junit.After) AttributeDeleteMsg(org.thingsboard.server.gen.edge.v1.AttributeDeleteMsg) EntityType(org.thingsboard.server.common.data.EntityType) TypeReference(com.fasterxml.jackson.core.type.TypeReference) EdgeId(org.thingsboard.server.common.data.id.EdgeId) Dashboard(org.thingsboard.server.common.data.Dashboard) EdgeEventService(org.thingsboard.server.dao.edge.EdgeEventService) AlarmCondition(org.thingsboard.server.common.data.device.profile.AlarmCondition) UUID(java.util.UUID) AllowCreateNewDevicesDeviceProfileProvisionConfiguration(org.thingsboard.server.common.data.device.profile.AllowCreateNewDevicesDeviceProfileProvisionConfiguration) UserUpdateMsg(org.thingsboard.server.gen.edge.v1.UserUpdateMsg) RuleChainUpdateMsg(org.thingsboard.server.gen.edge.v1.RuleChainUpdateMsg) List(java.util.List) TbClusterService(org.thingsboard.server.cluster.TbClusterService) Optional(java.util.Optional) RandomStringUtils(org.apache.commons.lang3.RandomStringUtils) UpdateMsgType(org.thingsboard.server.gen.edge.v1.UpdateMsgType) EntityViewsRequestMsg(org.thingsboard.server.gen.edge.v1.EntityViewsRequestMsg) RelationRequestMsg(org.thingsboard.server.gen.edge.v1.RelationRequestMsg) JacksonUtil(org.thingsboard.common.util.JacksonUtil) Tenant(org.thingsboard.server.common.data.Tenant) RuleChainMetadataUpdateMsg(org.thingsboard.server.gen.edge.v1.RuleChainMetadataUpdateMsg) ObjectNode(com.fasterxml.jackson.databind.node.ObjectNode) TenantProfile(org.thingsboard.server.common.data.TenantProfile) DeviceProfileAlarm(org.thingsboard.server.common.data.device.profile.DeviceProfileAlarm) SimpleAlarmConditionSpec(org.thingsboard.server.common.data.device.profile.SimpleAlarmConditionSpec) EntityId(org.thingsboard.server.common.data.id.EntityId) CustomerUpdateMsg(org.thingsboard.server.gen.edge.v1.CustomerUpdateMsg) AlarmInfo(org.thingsboard.server.common.data.alarm.AlarmInfo) AbstractMessage(com.google.protobuf.AbstractMessage) DeviceCredentialsType(org.thingsboard.server.common.data.security.DeviceCredentialsType) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) JsonProcessingException(com.fasterxml.jackson.core.JsonProcessingException) EdgeConfiguration(org.thingsboard.server.gen.edge.v1.EdgeConfiguration) TimeUnit(java.util.concurrent.TimeUnit) MessageLite(com.google.protobuf.MessageLite) UplinkMsg(org.thingsboard.server.gen.edge.v1.UplinkMsg) EdgeEventType(org.thingsboard.server.common.data.edge.EdgeEventType) Asset(org.thingsboard.server.common.data.asset.Asset) AlarmUpdateMsg(org.thingsboard.server.gen.edge.v1.AlarmUpdateMsg) Device(org.thingsboard.server.common.data.Device) UplinkMsg(org.thingsboard.server.gen.edge.v1.UplinkMsg) PageLink(org.thingsboard.server.common.data.page.PageLink) AlarmInfo(org.thingsboard.server.common.data.alarm.AlarmInfo) TypeReference(com.fasterxml.jackson.core.type.TypeReference) AbstractControllerTest(org.thingsboard.server.controller.AbstractControllerTest) Test(org.junit.Test)

Example 23 with PageData

use of org.thingsboard.server.common.data.page.PageData in project thingsboard by thingsboard.

the class TbAlarmDataSubCtx method doFetchAlarms.

private void doFetchAlarms() {
    AlarmDataUpdate update;
    if (!entitiesMap.isEmpty()) {
        long start = System.currentTimeMillis();
        PageData<AlarmData> alarms = alarmService.findAlarmDataByQueryForEntities(getTenantId(), query, getOrderedEntityIds());
        long end = System.currentTimeMillis();
        stats.getAlarmQueryInvocationCnt().incrementAndGet();
        stats.getAlarmQueryTimeSpent().addAndGet(end - start);
        alarms = setAndMergeAlarmsData(alarms);
        update = new AlarmDataUpdate(cmdId, alarms, null, maxEntitiesPerAlarmSubscription, data.getTotalElements());
    } else {
        update = new AlarmDataUpdate(cmdId, new PageData<>(), null, maxEntitiesPerAlarmSubscription, data.getTotalElements());
    }
    wsService.sendWsMsg(getSessionId(), update);
}
Also used : PageData(org.thingsboard.server.common.data.page.PageData) AlarmDataUpdate(org.thingsboard.server.service.telemetry.cmd.v2.AlarmDataUpdate) AlarmData(org.thingsboard.server.common.data.query.AlarmData)

Example 24 with PageData

use of org.thingsboard.server.common.data.page.PageData in project thingsboard by thingsboard.

the class DefaultEntityQueryService method findAlarmDataByQuery.

@Override
public PageData<AlarmData> findAlarmDataByQuery(SecurityUser securityUser, AlarmDataQuery query) {
    EntityDataQuery entityDataQuery = this.buildEntityDataQuery(query);
    PageData<EntityData> entities = entityService.findEntityDataByQuery(securityUser.getTenantId(), securityUser.getCustomerId(), entityDataQuery);
    if (entities.getTotalElements() > 0) {
        LinkedHashMap<EntityId, EntityData> entitiesMap = new LinkedHashMap<>();
        for (EntityData entityData : entities.getData()) {
            entitiesMap.put(entityData.getEntityId(), entityData);
        }
        PageData<AlarmData> alarms = alarmService.findAlarmDataByQueryForEntities(securityUser.getTenantId(), query, entitiesMap.keySet());
        for (AlarmData alarmData : alarms.getData()) {
            EntityId entityId = alarmData.getEntityId();
            if (entityId != null) {
                EntityData entityData = entitiesMap.get(entityId);
                if (entityData != null) {
                    alarmData.getLatest().putAll(entityData.getLatest());
                }
            }
        }
        return alarms;
    } else {
        return new PageData<>();
    }
}
Also used : EntityId(org.thingsboard.server.common.data.id.EntityId) EntityDataQuery(org.thingsboard.server.common.data.query.EntityDataQuery) PageData(org.thingsboard.server.common.data.page.PageData) EntityData(org.thingsboard.server.common.data.query.EntityData) LinkedHashMap(java.util.LinkedHashMap) AlarmData(org.thingsboard.server.common.data.query.AlarmData)

Example 25 with PageData

use of org.thingsboard.server.common.data.page.PageData in project thingsboard by thingsboard.

the class BaseDeviceControllerTest method testAssignDeviceToEdge.

@Test
public void testAssignDeviceToEdge() throws Exception {
    Edge edge = constructEdge("My edge", "default");
    Edge savedEdge = doPost("/api/edge", edge, Edge.class);
    Device device = new Device();
    device.setName("My device");
    device.setType("default");
    Device savedDevice = doPost("/api/device", device, Device.class);
    doPost("/api/edge/" + savedEdge.getId().getId().toString() + "/device/" + savedDevice.getId().getId().toString(), Device.class);
    PageData<Device> pageData = doGetTypedWithPageLink("/api/edge/" + savedEdge.getId().getId().toString() + "/devices?", new TypeReference<PageData<Device>>() {
    }, new PageLink(100));
    Assert.assertEquals(1, pageData.getData().size());
    doDelete("/api/edge/" + savedEdge.getId().getId().toString() + "/device/" + savedDevice.getId().getId().toString(), Device.class);
    pageData = doGetTypedWithPageLink("/api/edge/" + savedEdge.getId().getId().toString() + "/devices?", new TypeReference<PageData<Device>>() {
    }, new PageLink(100));
    Assert.assertEquals(0, pageData.getData().size());
}
Also used : PageData(org.thingsboard.server.common.data.page.PageData) Device(org.thingsboard.server.common.data.Device) PageLink(org.thingsboard.server.common.data.page.PageLink) TypeReference(com.fasterxml.jackson.core.type.TypeReference) Edge(org.thingsboard.server.common.data.edge.Edge) Test(org.junit.Test)

Aggregations

PageData (org.thingsboard.server.common.data.page.PageData)43 Test (org.junit.Test)31 ArrayList (java.util.ArrayList)28 List (java.util.List)28 Tenant (org.thingsboard.server.common.data.Tenant)26 PageLink (org.thingsboard.server.common.data.page.PageLink)25 Collectors (java.util.stream.Collectors)24 Edge (org.thingsboard.server.common.data.edge.Edge)23 TenantId (org.thingsboard.server.common.data.id.TenantId)23 After (org.junit.After)21 Assert (org.junit.Assert)21 Device (org.thingsboard.server.common.data.Device)21 EntityType (org.thingsboard.server.common.data.EntityType)21 Collections (java.util.Collections)20 EdgeId (org.thingsboard.server.common.data.id.EdgeId)20 Before (org.junit.Before)19 Autowired (org.springframework.beans.factory.annotation.Autowired)19 DataConstants (org.thingsboard.server.common.data.DataConstants)19 EntityId (org.thingsboard.server.common.data.id.EntityId)19 Slf4j (lombok.extern.slf4j.Slf4j)18