Search in sources :

Example 41 with Edge

use of org.thingsboard.server.common.data.edge.Edge in project thingsboard by thingsboard.

the class BaseEdgeServiceTest method testFindEdgesByTenantIdCustomerIdAndName.

@Test
public void testFindEdgesByTenantIdCustomerIdAndName() {
    Customer customer = new Customer();
    customer.setTitle("Test customer");
    customer.setTenantId(tenantId);
    customer = customerService.saveCustomer(customer);
    CustomerId customerId = customer.getId();
    String title1 = "Edge title 1";
    List<Edge> edgesTitle1 = new ArrayList<>();
    for (int i = 0; i < 175; i++) {
        String suffix = RandomStringUtils.randomAlphanumeric(15);
        String name = title1 + suffix;
        name = i % 2 == 0 ? name.toLowerCase() : name.toUpperCase();
        Edge edge = constructEdge(name, "default");
        edge = edgeService.saveEdge(edge);
        edgesTitle1.add(edgeService.assignEdgeToCustomer(tenantId, edge.getId(), customerId));
    }
    String title2 = "Edge title 2";
    List<Edge> edgesTitle2 = new ArrayList<>();
    for (int i = 0; i < 143; i++) {
        String suffix = RandomStringUtils.randomAlphanumeric(15);
        String name = title2 + suffix;
        name = i % 2 == 0 ? name.toLowerCase() : name.toUpperCase();
        Edge edge = constructEdge(name, "default");
        edge = edgeService.saveEdge(edge);
        edgesTitle2.add(edgeService.assignEdgeToCustomer(tenantId, edge.getId(), customerId));
    }
    List<Edge> loadedEdgesTitle1 = new ArrayList<>();
    PageLink pageLink = new PageLink(15, 0, title1);
    PageData<Edge> pageData = null;
    do {
        pageData = edgeService.findEdgesByTenantIdAndCustomerId(tenantId, customerId, pageLink);
        loadedEdgesTitle1.addAll(pageData.getData());
        if (pageData.hasNext()) {
            pageLink = pageLink.nextPageLink();
        }
    } while (pageData.hasNext());
    Collections.sort(edgesTitle1, idComparator);
    Collections.sort(loadedEdgesTitle1, idComparator);
    Assert.assertEquals(edgesTitle1, loadedEdgesTitle1);
    List<Edge> loadedEdgesTitle2 = new ArrayList<>();
    pageLink = new PageLink(4, 0, title2);
    do {
        pageData = edgeService.findEdgesByTenantIdAndCustomerId(tenantId, customerId, pageLink);
        loadedEdgesTitle2.addAll(pageData.getData());
        if (pageData.hasNext()) {
            pageLink = pageLink.nextPageLink();
        }
    } while (pageData.hasNext());
    Collections.sort(edgesTitle2, idComparator);
    Collections.sort(loadedEdgesTitle2, idComparator);
    Assert.assertEquals(edgesTitle2, loadedEdgesTitle2);
    for (Edge edge : loadedEdgesTitle1) {
        edgeService.deleteEdge(tenantId, edge.getId());
    }
    pageLink = new PageLink(4, 0, title1);
    pageData = edgeService.findEdgesByTenantIdAndCustomerId(tenantId, customerId, pageLink);
    Assert.assertFalse(pageData.hasNext());
    Assert.assertEquals(0, pageData.getData().size());
    for (Edge edge : loadedEdgesTitle2) {
        edgeService.deleteEdge(tenantId, edge.getId());
    }
    pageLink = new PageLink(4, 0, title2);
    pageData = edgeService.findEdgesByTenantIdAndCustomerId(tenantId, customerId, pageLink);
    Assert.assertFalse(pageData.hasNext());
    Assert.assertEquals(0, pageData.getData().size());
    customerService.deleteCustomer(tenantId, customerId);
}
Also used : Customer(org.thingsboard.server.common.data.Customer) ArrayList(java.util.ArrayList) PageLink(org.thingsboard.server.common.data.page.PageLink) CustomerId(org.thingsboard.server.common.data.id.CustomerId) Edge(org.thingsboard.server.common.data.edge.Edge) Test(org.junit.Test)

Example 42 with Edge

use of org.thingsboard.server.common.data.edge.Edge in project thingsboard by thingsboard.

the class AccessValidator method validateEdge.

private void validateEdge(final SecurityUser currentUser, Operation operation, EntityId entityId, FutureCallback<ValidationResult> callback) {
    if (currentUser.isSystemAdmin()) {
        callback.onSuccess(ValidationResult.accessDenied(SYSTEM_ADMINISTRATOR_IS_NOT_ALLOWED_TO_PERFORM_THIS_OPERATION));
    } else {
        ListenableFuture<Edge> edgeFuture = edgeService.findEdgeByIdAsync(currentUser.getTenantId(), new EdgeId(entityId.getId()));
        Futures.addCallback(edgeFuture, getCallback(callback, edge -> {
            if (edge == null) {
                return ValidationResult.entityNotFound(EDGE_WITH_REQUESTED_ID_NOT_FOUND);
            } else {
                try {
                    accessControlService.checkPermission(currentUser, Resource.EDGE, operation, entityId, edge);
                } catch (ThingsboardException e) {
                    return ValidationResult.accessDenied(e.getMessage());
                }
                return ValidationResult.ok(edge);
            }
        }), executor);
    }
}
Also used : Edge(org.thingsboard.server.common.data.edge.Edge) HttpValidationCallback(org.thingsboard.server.controller.HttpValidationCallback) Customer(org.thingsboard.server.common.data.Customer) Autowired(org.springframework.beans.factory.annotation.Autowired) DeviceProfileId(org.thingsboard.server.common.data.id.DeviceProfileId) RuleNodeId(org.thingsboard.server.common.data.id.RuleNodeId) TenantId(org.thingsboard.server.common.data.id.TenantId) ToErrorResponseEntity(org.thingsboard.server.service.telemetry.exception.ToErrorResponseEntity) PreDestroy(javax.annotation.PreDestroy) TenantService(org.thingsboard.server.dao.tenant.TenantService) Rpc(org.thingsboard.server.common.data.rpc.Rpc) ResourceService(org.thingsboard.server.dao.resource.ResourceService) RpcService(org.thingsboard.server.dao.rpc.RpcService) ApiUsageStateService(org.thingsboard.server.dao.usagerecord.ApiUsageStateService) EntityViewService(org.thingsboard.server.dao.entityview.EntityViewService) IncorrectParameterException(org.thingsboard.server.dao.exception.IncorrectParameterException) EdgeId(org.thingsboard.server.common.data.id.EdgeId) AssetService(org.thingsboard.server.dao.asset.AssetService) DeviceId(org.thingsboard.server.common.data.id.DeviceId) Function(com.google.common.base.Function) DeviceProfile(org.thingsboard.server.common.data.DeviceProfile) EdgeService(org.thingsboard.server.dao.edge.EdgeService) SecurityUser(org.thingsboard.server.service.security.model.SecurityUser) ThingsBoardThreadFactory(org.thingsboard.common.util.ThingsBoardThreadFactory) ApiUsageStateId(org.thingsboard.server.common.data.id.ApiUsageStateId) OtaPackageId(org.thingsboard.server.common.data.id.OtaPackageId) Executors(java.util.concurrent.Executors) EntityView(org.thingsboard.server.common.data.EntityView) PostConstruct(javax.annotation.PostConstruct) RuleChainId(org.thingsboard.server.common.data.id.RuleChainId) Operation(org.thingsboard.server.service.security.permission.Operation) EntityViewId(org.thingsboard.server.common.data.id.EntityViewId) CustomerId(org.thingsboard.server.common.data.id.CustomerId) OtaPackageService(org.thingsboard.server.dao.ota.OtaPackageService) UserService(org.thingsboard.server.dao.user.UserService) OtaPackageInfo(org.thingsboard.server.common.data.OtaPackageInfo) ListenableFuture(com.google.common.util.concurrent.ListenableFuture) Device(org.thingsboard.server.common.data.Device) DeferredResult(org.springframework.web.context.request.async.DeferredResult) AssetId(org.thingsboard.server.common.data.id.AssetId) Tenant(org.thingsboard.server.common.data.Tenant) RuleChainService(org.thingsboard.server.dao.rule.RuleChainService) User(org.thingsboard.server.common.data.User) EntityIdFactory(org.thingsboard.server.common.data.id.EntityIdFactory) DeviceService(org.thingsboard.server.dao.device.DeviceService) AlarmService(org.thingsboard.server.dao.alarm.AlarmService) EntityId(org.thingsboard.server.common.data.id.EntityId) BiConsumer(java.util.function.BiConsumer) CustomerService(org.thingsboard.server.dao.customer.CustomerService) Nullable(javax.annotation.Nullable) ExecutorService(java.util.concurrent.ExecutorService) RpcId(org.thingsboard.server.common.data.id.RpcId) RuleNode(org.thingsboard.server.common.data.rule.RuleNode) ThingsboardException(org.thingsboard.server.common.data.exception.ThingsboardException) TbResourceId(org.thingsboard.server.common.data.id.TbResourceId) FutureCallback(com.google.common.util.concurrent.FutureCallback) ApiUsageState(org.thingsboard.server.common.data.ApiUsageState) DeviceProfileService(org.thingsboard.server.dao.device.DeviceProfileService) HttpStatus(org.springframework.http.HttpStatus) Futures(com.google.common.util.concurrent.Futures) Component(org.springframework.stereotype.Component) UserId(org.thingsboard.server.common.data.id.UserId) TbResourceInfo(org.thingsboard.server.common.data.TbResourceInfo) RuleChain(org.thingsboard.server.common.data.rule.RuleChain) Resource(org.thingsboard.server.service.security.permission.Resource) ResponseEntity(org.springframework.http.ResponseEntity) Asset(org.thingsboard.server.common.data.asset.Asset) AccessControlService(org.thingsboard.server.service.security.permission.AccessControlService) EdgeId(org.thingsboard.server.common.data.id.EdgeId) ThingsboardException(org.thingsboard.server.common.data.exception.ThingsboardException) Edge(org.thingsboard.server.common.data.edge.Edge)

Example 43 with Edge

use of org.thingsboard.server.common.data.edge.Edge in project thingsboard by thingsboard.

the class EdgeProcessor method processEdgeNotification.

public void processEdgeNotification(TenantId tenantId, TransportProtos.EdgeNotificationMsgProto edgeNotificationMsg) {
    try {
        EdgeEventActionType actionType = EdgeEventActionType.valueOf(edgeNotificationMsg.getAction());
        EdgeId edgeId = new EdgeId(new UUID(edgeNotificationMsg.getEntityIdMSB(), edgeNotificationMsg.getEntityIdLSB()));
        ListenableFuture<Edge> edgeFuture;
        switch(actionType) {
            case ASSIGNED_TO_CUSTOMER:
                CustomerId customerId = mapper.readValue(edgeNotificationMsg.getBody(), CustomerId.class);
                edgeFuture = edgeService.findEdgeByIdAsync(tenantId, edgeId);
                Futures.addCallback(edgeFuture, new FutureCallback<Edge>() {

                    @Override
                    public void onSuccess(@Nullable Edge edge) {
                        if (edge != null && !customerId.isNullUid()) {
                            saveEdgeEvent(edge.getTenantId(), edge.getId(), EdgeEventType.CUSTOMER, EdgeEventActionType.ADDED, customerId, null);
                            PageLink pageLink = new PageLink(DEFAULT_PAGE_SIZE);
                            PageData<User> pageData;
                            do {
                                pageData = userService.findCustomerUsers(tenantId, customerId, pageLink);
                                if (pageData != null && pageData.getData() != null && !pageData.getData().isEmpty()) {
                                    log.trace("[{}] [{}] user(s) are going to be added to edge.", edge.getId(), pageData.getData().size());
                                    for (User user : pageData.getData()) {
                                        saveEdgeEvent(edge.getTenantId(), edge.getId(), EdgeEventType.USER, EdgeEventActionType.ADDED, user.getId(), null);
                                    }
                                    if (pageData.hasNext()) {
                                        pageLink = pageLink.nextPageLink();
                                    }
                                }
                            } while (pageData != null && pageData.hasNext());
                        }
                    }

                    @Override
                    public void onFailure(Throwable t) {
                        log.error("Can't find edge by id [{}]", edgeNotificationMsg, t);
                    }
                }, dbCallbackExecutorService);
                break;
            case UNASSIGNED_FROM_CUSTOMER:
                CustomerId customerIdToDelete = mapper.readValue(edgeNotificationMsg.getBody(), CustomerId.class);
                edgeFuture = edgeService.findEdgeByIdAsync(tenantId, edgeId);
                Futures.addCallback(edgeFuture, new FutureCallback<Edge>() {

                    @Override
                    public void onSuccess(@Nullable Edge edge) {
                        if (edge != null && !customerIdToDelete.isNullUid()) {
                            saveEdgeEvent(edge.getTenantId(), edge.getId(), EdgeEventType.CUSTOMER, EdgeEventActionType.DELETED, customerIdToDelete, null);
                        }
                    }

                    @Override
                    public void onFailure(Throwable t) {
                        log.error("Can't find edge by id [{}]", edgeNotificationMsg, t);
                    }
                }, dbCallbackExecutorService);
                break;
        }
    } catch (Exception e) {
        log.error("Exception during processing edge event", e);
    }
}
Also used : User(org.thingsboard.server.common.data.User) EdgeEventActionType(org.thingsboard.server.common.data.edge.EdgeEventActionType) CustomerId(org.thingsboard.server.common.data.id.CustomerId) PageData(org.thingsboard.server.common.data.page.PageData) EdgeId(org.thingsboard.server.common.data.id.EdgeId) PageLink(org.thingsboard.server.common.data.page.PageLink) UUID(java.util.UUID) Edge(org.thingsboard.server.common.data.edge.Edge)

Example 44 with Edge

use of org.thingsboard.server.common.data.edge.Edge in project thingsboard by thingsboard.

the class EntityEdgeProcessor method processEntityNotification.

public void processEntityNotification(TenantId tenantId, TransportProtos.EdgeNotificationMsgProto edgeNotificationMsg) {
    EdgeEventActionType actionType = EdgeEventActionType.valueOf(edgeNotificationMsg.getAction());
    EdgeEventType type = EdgeEventType.valueOf(edgeNotificationMsg.getType());
    EntityId entityId = EntityIdFactory.getByEdgeEventTypeAndUuid(type, new UUID(edgeNotificationMsg.getEntityIdMSB(), edgeNotificationMsg.getEntityIdLSB()));
    EdgeId edgeId = null;
    if (edgeNotificationMsg.getEdgeIdMSB() != 0 && edgeNotificationMsg.getEdgeIdLSB() != 0) {
        edgeId = new EdgeId(new UUID(edgeNotificationMsg.getEdgeIdMSB(), edgeNotificationMsg.getEdgeIdLSB()));
    }
    switch(actionType) {
        // used only for USER entity
        case ADDED:
        case UPDATED:
        case CREDENTIALS_UPDATED:
            pushNotificationToAllRelatedEdges(tenantId, entityId, type, actionType);
            break;
        case ASSIGNED_TO_CUSTOMER:
        case UNASSIGNED_FROM_CUSTOMER:
            PageLink pageLink = new PageLink(DEFAULT_PAGE_SIZE);
            PageData<EdgeId> pageData;
            do {
                pageData = edgeService.findRelatedEdgeIdsByEntityId(tenantId, entityId, pageLink);
                if (pageData != null && pageData.getData() != null && !pageData.getData().isEmpty()) {
                    for (EdgeId relatedEdgeId : pageData.getData()) {
                        try {
                            CustomerId customerId = mapper.readValue(edgeNotificationMsg.getBody(), CustomerId.class);
                            ListenableFuture<Edge> future = edgeService.findEdgeByIdAsync(tenantId, relatedEdgeId);
                            Futures.addCallback(future, new FutureCallback<>() {

                                @Override
                                public void onSuccess(@Nullable Edge edge) {
                                    if (edge != null && edge.getCustomerId() != null && !edge.getCustomerId().isNullUid() && edge.getCustomerId().equals(customerId)) {
                                        saveEdgeEvent(tenantId, relatedEdgeId, type, actionType, entityId, null);
                                    }
                                }

                                @Override
                                public void onFailure(Throwable t) {
                                    log.error("Failed to find edge by id [{}] {}", edgeNotificationMsg, t);
                                }
                            }, dbCallbackExecutorService);
                        } catch (Exception e) {
                            log.error("Can't parse customer id from entity body [{}]", edgeNotificationMsg, e);
                        }
                    }
                    if (pageData.hasNext()) {
                        pageLink = pageLink.nextPageLink();
                    }
                }
            } while (pageData != null && pageData.hasNext());
            break;
        case DELETED:
            if (edgeId != null) {
                saveEdgeEvent(tenantId, edgeId, type, actionType, entityId, null);
            } else {
                pushNotificationToAllRelatedEdges(tenantId, entityId, type, actionType);
            }
            break;
        case ASSIGNED_TO_EDGE:
        case UNASSIGNED_FROM_EDGE:
            saveEdgeEvent(tenantId, edgeId, type, actionType, entityId, null);
            if (type.equals(EdgeEventType.RULE_CHAIN)) {
                updateDependentRuleChains(tenantId, new RuleChainId(entityId.getId()), edgeId);
            }
            break;
    }
}
Also used : RuleChainId(org.thingsboard.server.common.data.id.RuleChainId) EdgeEventActionType(org.thingsboard.server.common.data.edge.EdgeEventActionType) CustomerId(org.thingsboard.server.common.data.id.CustomerId) EntityId(org.thingsboard.server.common.data.id.EntityId) EdgeEventType(org.thingsboard.server.common.data.edge.EdgeEventType) EdgeId(org.thingsboard.server.common.data.id.EdgeId) PageLink(org.thingsboard.server.common.data.page.PageLink) UUID(java.util.UUID) Edge(org.thingsboard.server.common.data.edge.Edge)

Example 45 with Edge

use of org.thingsboard.server.common.data.edge.Edge 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)

Aggregations

Edge (org.thingsboard.server.common.data.edge.Edge)98 Test (org.junit.Test)46 EdgeId (org.thingsboard.server.common.data.id.EdgeId)32 PageLink (org.thingsboard.server.common.data.page.PageLink)31 ArrayList (java.util.ArrayList)25 ThingsboardException (org.thingsboard.server.common.data.exception.ThingsboardException)25 ApiOperation (io.swagger.annotations.ApiOperation)23 PreAuthorize (org.springframework.security.access.prepost.PreAuthorize)23 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)23 ResponseBody (org.springframework.web.bind.annotation.ResponseBody)22 DataValidationException (org.thingsboard.server.dao.exception.DataValidationException)22 CustomerId (org.thingsboard.server.common.data.id.CustomerId)21 Customer (org.thingsboard.server.common.data.Customer)20 IncorrectParameterException (org.thingsboard.server.dao.exception.IncorrectParameterException)20 EntityRelation (org.thingsboard.server.common.data.relation.EntityRelation)16 TypeReference (com.fasterxml.jackson.core.type.TypeReference)15 TenantId (org.thingsboard.server.common.data.id.TenantId)14 Device (org.thingsboard.server.common.data.Device)13 Asset (org.thingsboard.server.common.data.asset.Asset)13 PageData (org.thingsboard.server.common.data.page.PageData)13