Search in sources :

Example 1 with RuleId

use of org.thingsboard.server.common.data.id.RuleId in project thingsboard by thingsboard.

the class JpaBaseRuleDaoTest method createRule.

private void createRule(UUID tenantId, String namePrefix, String pluginToken, int i) {
    RuleMetaData ruleMetaData = new RuleMetaData();
    ruleMetaData.setId(new RuleId(UUIDs.timeBased()));
    ruleMetaData.setTenantId(new TenantId(tenantId));
    ruleMetaData.setName(namePrefix + i);
    ruleMetaData.setPluginToken(pluginToken);
    ruleDao.save(ruleMetaData);
}
Also used : TenantId(org.thingsboard.server.common.data.id.TenantId) RuleId(org.thingsboard.server.common.data.id.RuleId) RuleMetaData(org.thingsboard.server.common.data.rule.RuleMetaData)

Example 2 with RuleId

use of org.thingsboard.server.common.data.id.RuleId in project thingsboard by thingsboard.

the class BaseEventServiceTest method findEventsByTypeAndTimeDescOrder.

@Test
public void findEventsByTypeAndTimeDescOrder() throws Exception {
    long timeBeforeStartTime = LocalDateTime.of(2016, Month.NOVEMBER, 1, 11, 30).toEpochSecond(ZoneOffset.UTC);
    long startTime = LocalDateTime.of(2016, Month.NOVEMBER, 1, 12, 0).toEpochSecond(ZoneOffset.UTC);
    long eventTime = LocalDateTime.of(2016, Month.NOVEMBER, 1, 12, 30).toEpochSecond(ZoneOffset.UTC);
    long endTime = LocalDateTime.of(2016, Month.NOVEMBER, 1, 13, 0).toEpochSecond(ZoneOffset.UTC);
    long timeAfterEndTime = LocalDateTime.of(2016, Month.NOVEMBER, 1, 13, 30).toEpochSecond(ZoneOffset.UTC);
    RuleId ruleId = new RuleId(UUIDs.timeBased());
    TenantId tenantId = new TenantId(UUIDs.timeBased());
    saveEventWithProvidedTime(timeBeforeStartTime, ruleId, tenantId);
    Event savedEvent = saveEventWithProvidedTime(eventTime, ruleId, tenantId);
    Event savedEvent2 = saveEventWithProvidedTime(eventTime + 1, ruleId, tenantId);
    Event savedEvent3 = saveEventWithProvidedTime(eventTime + 2, ruleId, tenantId);
    saveEventWithProvidedTime(timeAfterEndTime, ruleId, tenantId);
    TimePageData<Event> events = eventService.findEvents(tenantId, ruleId, DataConstants.STATS, new TimePageLink(2, startTime, endTime, false));
    Assert.assertNotNull(events.getData());
    Assert.assertTrue(events.getData().size() == 2);
    Assert.assertTrue(events.getData().get(0).getUuidId().equals(savedEvent3.getUuidId()));
    Assert.assertTrue(events.getData().get(1).getUuidId().equals(savedEvent2.getUuidId()));
    Assert.assertTrue(events.hasNext());
    Assert.assertNotNull(events.getNextPageLink());
    events = eventService.findEvents(tenantId, ruleId, DataConstants.STATS, events.getNextPageLink());
    Assert.assertNotNull(events.getData());
    Assert.assertTrue(events.getData().size() == 1);
    Assert.assertTrue(events.getData().get(0).getUuidId().equals(savedEvent.getUuidId()));
    Assert.assertFalse(events.hasNext());
    Assert.assertNull(events.getNextPageLink());
}
Also used : TenantId(org.thingsboard.server.common.data.id.TenantId) RuleId(org.thingsboard.server.common.data.id.RuleId) Event(org.thingsboard.server.common.data.Event) TimePageLink(org.thingsboard.server.common.data.page.TimePageLink) Test(org.junit.Test) AbstractServiceTest(org.thingsboard.server.dao.service.AbstractServiceTest)

Example 3 with RuleId

use of org.thingsboard.server.common.data.id.RuleId in project thingsboard by thingsboard.

the class RuleController method activateRuleById.

@PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')")
@RequestMapping(value = "/rule/{ruleId}/activate", method = RequestMethod.POST)
@ResponseStatus(value = HttpStatus.OK)
public void activateRuleById(@PathVariable(RULE_ID) String strRuleId) throws ThingsboardException {
    checkParameter(RULE_ID, strRuleId);
    try {
        RuleId ruleId = new RuleId(toUUID(strRuleId));
        RuleMetaData rule = checkRule(ruleService.findRuleById(ruleId));
        ruleService.activateRuleById(ruleId);
        actorService.onRuleStateChange(rule.getTenantId(), rule.getId(), ComponentLifecycleEvent.ACTIVATED);
        logEntityAction(rule.getId(), rule, null, ActionType.ACTIVATED, null, strRuleId);
    } catch (Exception e) {
        logEntityAction(emptyId(EntityType.RULE), null, null, ActionType.ACTIVATED, e, strRuleId);
        throw handleException(e);
    }
}
Also used : RuleId(org.thingsboard.server.common.data.id.RuleId) RuleMetaData(org.thingsboard.server.common.data.rule.RuleMetaData) ThingsboardException(org.thingsboard.server.exception.ThingsboardException) PreAuthorize(org.springframework.security.access.prepost.PreAuthorize)

Example 4 with RuleId

use of org.thingsboard.server.common.data.id.RuleId in project thingsboard by thingsboard.

the class RuleController method deleteRule.

@PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')")
@RequestMapping(value = "/rule/{ruleId}", method = RequestMethod.DELETE)
@ResponseStatus(value = HttpStatus.OK)
public void deleteRule(@PathVariable(RULE_ID) String strRuleId) throws ThingsboardException {
    checkParameter(RULE_ID, strRuleId);
    try {
        RuleId ruleId = new RuleId(toUUID(strRuleId));
        RuleMetaData rule = checkRule(ruleService.findRuleById(ruleId));
        ruleService.deleteRuleById(ruleId);
        actorService.onRuleStateChange(rule.getTenantId(), rule.getId(), ComponentLifecycleEvent.DELETED);
        logEntityAction(ruleId, rule, null, ActionType.DELETED, null, strRuleId);
    } catch (Exception e) {
        logEntityAction(emptyId(EntityType.RULE), null, null, ActionType.DELETED, e, strRuleId);
        throw handleException(e);
    }
}
Also used : RuleId(org.thingsboard.server.common.data.id.RuleId) RuleMetaData(org.thingsboard.server.common.data.rule.RuleMetaData) ThingsboardException(org.thingsboard.server.exception.ThingsboardException) PreAuthorize(org.springframework.security.access.prepost.PreAuthorize)

Example 5 with RuleId

use of org.thingsboard.server.common.data.id.RuleId in project thingsboard by thingsboard.

the class RuleManager method update.

public Optional<ActorRef> update(ActorContext context, RuleId ruleId, ComponentLifecycleEvent event) {
    if (ruleMap == null) {
        doInit(context);
    }
    RuleMetaData rule;
    if (event != ComponentLifecycleEvent.DELETED) {
        rule = systemContext.getRuleService().findRuleById(ruleId);
    } else {
        rule = ruleMap.keySet().stream().filter(r -> r.getId().equals(ruleId)).peek(r -> r.setState(ComponentLifecycleState.SUSPENDED)).findFirst().orElse(null);
        if (rule != null) {
            ruleMap.remove(rule);
            ruleActors.remove(ruleId);
        }
    }
    if (rule != null) {
        RuleActorMetaData actorMd = ruleMap.get(rule);
        if (actorMd == null) {
            ActorRef ref = getOrCreateRuleActor(context, rule.getId());
            actorMd = RuleActorMetaData.systemRule(rule.getId(), rule.getWeight(), ref);
            ruleMap.put(rule, actorMd);
        }
        refreshRuleChain();
        return Optional.of(actorMd.getActorRef());
    } else {
        log.warn("[{}] Can't process unknown rule!", ruleId);
        return Optional.empty();
    }
}
Also used : RuleId(org.thingsboard.server.common.data.id.RuleId) RuleService(org.thingsboard.server.dao.rule.RuleService) java.util(java.util) ActorContext(akka.actor.ActorContext) SimpleRuleActorChain(org.thingsboard.server.actors.rule.SimpleRuleActorChain) ContextAwareActor(org.thingsboard.server.actors.service.ContextAwareActor) FetchFunction(org.thingsboard.server.common.data.page.PageDataIterable.FetchFunction) TenantId(org.thingsboard.server.common.data.id.TenantId) ComponentLifecycleEvent(org.thingsboard.server.common.data.plugin.ComponentLifecycleEvent) Slf4j(lombok.extern.slf4j.Slf4j) RuleActor(org.thingsboard.server.actors.rule.RuleActor) RuleActorChain(org.thingsboard.server.actors.rule.RuleActorChain) PageDataIterable(org.thingsboard.server.common.data.page.PageDataIterable) ComponentLifecycleState(org.thingsboard.server.common.data.plugin.ComponentLifecycleState) RuleMetaData(org.thingsboard.server.common.data.rule.RuleMetaData) ActorRef(akka.actor.ActorRef) ActorSystemContext(org.thingsboard.server.actors.ActorSystemContext) Props(akka.actor.Props) RuleActorMetaData(org.thingsboard.server.actors.rule.RuleActorMetaData) RuleActorMetaData(org.thingsboard.server.actors.rule.RuleActorMetaData) ActorRef(akka.actor.ActorRef) RuleMetaData(org.thingsboard.server.common.data.rule.RuleMetaData)

Aggregations

RuleId (org.thingsboard.server.common.data.id.RuleId)12 TenantId (org.thingsboard.server.common.data.id.TenantId)8 RuleMetaData (org.thingsboard.server.common.data.rule.RuleMetaData)8 PreAuthorize (org.springframework.security.access.prepost.PreAuthorize)3 ThingsboardException (org.thingsboard.server.exception.ThingsboardException)3 ActorRef (akka.actor.ActorRef)2 java.util (java.util)2 Slf4j (lombok.extern.slf4j.Slf4j)2 Test (org.junit.Test)2 Event (org.thingsboard.server.common.data.Event)2 TimePageLink (org.thingsboard.server.common.data.page.TimePageLink)2 AbstractServiceTest (org.thingsboard.server.dao.service.AbstractServiceTest)2 ActorContext (akka.actor.ActorContext)1 Props (akka.actor.Props)1 Optional (java.util.Optional)1 Collectors (java.util.stream.Collectors)1 ActorSystemContext (org.thingsboard.server.actors.ActorSystemContext)1 RuleActor (org.thingsboard.server.actors.rule.RuleActor)1 RuleActorChain (org.thingsboard.server.actors.rule.RuleActorChain)1 RuleActorMetaData (org.thingsboard.server.actors.rule.RuleActorMetaData)1