Search in sources :

Example 6 with RuleId

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

the class RuleController method suspendRuleById.

@PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')")
@RequestMapping(value = "/rule/{ruleId}/suspend", method = RequestMethod.POST)
@ResponseStatus(value = HttpStatus.OK)
public void suspendRuleById(@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.suspendRuleById(ruleId);
        actorService.onRuleStateChange(rule.getTenantId(), rule.getId(), ComponentLifecycleEvent.SUSPENDED);
        logEntityAction(rule.getId(), rule, null, ActionType.SUSPENDED, null, strRuleId);
    } catch (Exception e) {
        logEntityAction(emptyId(EntityType.RULE), null, null, ActionType.SUSPENDED, 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 7 with RuleId

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

the class TenantActor method onComponentLifecycleMsg.

private void onComponentLifecycleMsg(ComponentLifecycleMsg msg) {
    Optional<PluginId> pluginId = msg.getPluginId();
    Optional<RuleId> ruleId = msg.getRuleId();
    if (pluginId.isPresent()) {
        ActorRef pluginActor = pluginManager.getOrCreatePluginActor(this.context(), pluginId.get());
        pluginActor.tell(msg, ActorRef.noSender());
    } else if (ruleId.isPresent()) {
        ActorRef target;
        Optional<ActorRef> ref = ruleManager.update(this.context(), ruleId.get(), msg.getEvent());
        if (ref.isPresent()) {
            target = ref.get();
        } else {
            logger.debug("Failed to find actor for rule: [{}]", ruleId);
            return;
        }
        target.tell(msg, ActorRef.noSender());
    } else {
        logger.debug("[{}] Invalid component lifecycle msg.", tenantId);
    }
}
Also used : Optional(java.util.Optional) ActorRef(akka.actor.ActorRef) RuleId(org.thingsboard.server.common.data.id.RuleId) PluginId(org.thingsboard.server.common.data.id.PluginId)

Example 8 with RuleId

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

the class TelemetryRuleMsgHandler method handleTelemetryUploadRequest.

@Override
public void handleTelemetryUploadRequest(PluginContext ctx, TenantId tenantId, RuleId ruleId, TelemetryUploadRequestRuleToPluginMsg msg) {
    TelemetryUploadRequest request = msg.getPayload();
    List<TsKvEntry> tsKvEntries = new ArrayList<>();
    for (Map.Entry<Long, List<KvEntry>> entry : request.getData().entrySet()) {
        for (KvEntry kv : entry.getValue()) {
            tsKvEntries.add(new BasicTsKvEntry(entry.getKey(), kv));
        }
    }
    ctx.saveTsData(msg.getDeviceId(), tsKvEntries, msg.getTtl(), new PluginCallback<Void>() {

        @Override
        public void onSuccess(PluginContext ctx, Void data) {
            ctx.reply(new ResponsePluginToRuleMsg(msg.getUid(), tenantId, ruleId, BasicStatusCodeResponse.onSuccess(request.getMsgType(), request.getRequestId())));
            subscriptionManager.onLocalSubscriptionUpdate(ctx, msg.getDeviceId(), SubscriptionType.TIMESERIES, s -> prepareSubscriptionUpdate(request, s));
        }

        @Override
        public void onFailure(PluginContext ctx, Exception e) {
            log.error("Failed to process telemetry upload request", e);
            ctx.reply(new ResponsePluginToRuleMsg(msg.getUid(), tenantId, ruleId, BasicStatusCodeResponse.onError(request.getMsgType(), request.getRequestId(), e)));
        }
    });
}
Also used : DeviceId(org.thingsboard.server.common.data.id.DeviceId) RuleId(org.thingsboard.server.common.data.id.RuleId) java.util(java.util) DataConstants(org.thingsboard.server.common.data.DataConstants) org.thingsboard.server.common.msg.core(org.thingsboard.server.common.msg.core) UpdateAttributesRequestRuleToPluginMsg(org.thingsboard.server.extensions.api.plugins.msg.UpdateAttributesRequestRuleToPluginMsg) SubscriptionManager(org.thingsboard.server.extensions.core.plugin.telemetry.SubscriptionManager) ResponsePluginToRuleMsg(org.thingsboard.server.extensions.api.plugins.msg.ResponsePluginToRuleMsg) BasicAttributeKVMsg(org.thingsboard.server.common.msg.kv.BasicAttributeKVMsg) Collectors(java.util.stream.Collectors) TenantId(org.thingsboard.server.common.data.id.TenantId) SubscriptionType(org.thingsboard.server.extensions.core.plugin.telemetry.sub.SubscriptionType) BasicTsKvEntry(org.thingsboard.server.common.data.kv.BasicTsKvEntry) AttributeKvEntry(org.thingsboard.server.common.data.kv.AttributeKvEntry) TsKvEntry(org.thingsboard.server.common.data.kv.TsKvEntry) Slf4j(lombok.extern.slf4j.Slf4j) GetAttributesRequestRuleToPluginMsg(org.thingsboard.server.extensions.api.plugins.msg.GetAttributesRequestRuleToPluginMsg) PluginContext(org.thingsboard.server.extensions.api.plugins.PluginContext) DefaultRuleMsgHandler(org.thingsboard.server.extensions.api.plugins.handlers.DefaultRuleMsgHandler) KvEntry(org.thingsboard.server.common.data.kv.KvEntry) PluginCallback(org.thingsboard.server.extensions.api.plugins.PluginCallback) TelemetryUploadRequestRuleToPluginMsg(org.thingsboard.server.extensions.api.plugins.msg.TelemetryUploadRequestRuleToPluginMsg) Subscription(org.thingsboard.server.extensions.core.plugin.telemetry.sub.Subscription) BasicTsKvEntry(org.thingsboard.server.common.data.kv.BasicTsKvEntry) TsKvEntry(org.thingsboard.server.common.data.kv.TsKvEntry) PluginContext(org.thingsboard.server.extensions.api.plugins.PluginContext) BasicTsKvEntry(org.thingsboard.server.common.data.kv.BasicTsKvEntry) BasicTsKvEntry(org.thingsboard.server.common.data.kv.BasicTsKvEntry) AttributeKvEntry(org.thingsboard.server.common.data.kv.AttributeKvEntry) TsKvEntry(org.thingsboard.server.common.data.kv.TsKvEntry) KvEntry(org.thingsboard.server.common.data.kv.KvEntry) ResponsePluginToRuleMsg(org.thingsboard.server.extensions.api.plugins.msg.ResponsePluginToRuleMsg)

Example 9 with RuleId

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

the class RuleMetaDataEntity method toData.

@Override
public RuleMetaData toData() {
    RuleMetaData rule = new RuleMetaData(new RuleId(id));
    rule.setTenantId(new TenantId(tenantId));
    rule.setName(name);
    rule.setState(state);
    rule.setWeight(weight);
    rule.setCreatedTime(UUIDs.unixTimestamp(id));
    rule.setPluginToken(pluginToken);
    rule.setFilters(filters);
    rule.setProcessor(processor);
    rule.setAction(action);
    rule.setAdditionalInfo(additionalInfo);
    return rule;
}
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 10 with RuleId

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

the class RuleMetaDataEntity method toData.

@Override
public RuleMetaData toData() {
    RuleMetaData rule = new RuleMetaData(new RuleId(getId()));
    rule.setTenantId(new TenantId(toUUID(tenantId)));
    rule.setName(name);
    rule.setState(state);
    rule.setWeight(weight);
    rule.setCreatedTime(UUIDs.unixTimestamp(getId()));
    rule.setPluginToken(pluginToken);
    rule.setFilters(filters);
    rule.setProcessor(processor);
    rule.setAction(action);
    rule.setAdditionalInfo(additionalInfo);
    return rule;
}
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)

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