tbMsg.getCallback().onFailure(newRuleNodeException("Message is processed by more then "+maxRuleNodeExecutionsPerMessage+" rule nodes!",ruleChainName,ruleNode));
tbMsg.getCallback().onFailure(newRuleNodeException("Message is processed by more then "+maxRuleNodeExecutionsPerMessage+" rule nodes!",ruleChainName,ruleNode));
}
}
}
@ -160,4 +179,23 @@ public class RuleNodeActorMessageProcessor extends ComponentMsgProcessor<RuleNod
protectedRuleNodeExceptiongetInactiveException(){
returnnewRuleNodeException("Rule Node is not active! Failed to initialize.",ruleChainName,ruleNode);
@ -85,9 +90,15 @@ public class AlarmController extends BaseController {
privatestaticfinalStringALARM_SECURITY_CHECK="If the user has the authority of 'Tenant Administrator', the server checks that the originator of alarm is owned by the same tenant. "+
"If the user has the authority of 'Customer User', the server checks that the originator of alarm belongs to the customer. ";
privatestaticfinalStringALARM_QUERY_SEARCH_STATUS_DESCRIPTION="A string value representing one of the AlarmSearchStatus enumeration value";
privatestaticfinalStringALARM_QUERY_SEARCH_STATUS_ARRAY_DESCRIPTION="A list of string values separated by comma ',' representing one of the AlarmSearchStatus enumeration value";
privatestaticfinalStringALARM_QUERY_SEVERITY_ARRAY_DESCRIPTION="A list of string values separated by comma ',' representing one of the AlarmSeverity enumeration value";
privatestaticfinalStringALARM_QUERY_TYPE_ARRAY_DESCRIPTION="A list of string values separated by comma ',' representing alarm types";
privatestaticfinalStringALARM_QUERY_ASSIGNEE_DESCRIPTION="A string value representing the assignee user id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'";
privatestaticfinalStringALARM_QUERY_TEXT_SEARCH_DESCRIPTION="The case insensitive 'substring' filter based on of next alarm fields: type, severity or status";
privatestaticfinalStringALARM_QUERY_START_TIME_DESCRIPTION="The start timestamp in milliseconds of the search time range over the Alarm class field: 'createdTime'.";
@ -331,6 +342,132 @@ public class AlarmController extends BaseController {
}
}
@ApiOperation(value="Get Alarms (getAlarmsV2)",
notes="Returns a page of alarms for the selected entity. "+
notes="Search the alarms by originator ('entityType' and entityId') and optional 'status' or 'searchStatus' filters and returns the highest AlarmSeverity(CRITICAL, MAJOR, MINOR, WARNING or INDETERMINATE). "+
"Specifying both parameters 'searchStatus' and 'status' at the same time will cause an error."+TENANT_OR_CUSTOMER_AUTHORITY_PARAGRAPH
return(int)(trigger.getLimit()*triggerConfig.getThreshold())==trigger.getCurrentCount();// strict comparing not to send notification on each new entity
other:# In this section you can specify custom parameters for Kafka consumer/producer and expose the env variables to configure outside
- key:"request.timeout.ms"# refer to https://docs.confluent.io/platform/current/installation/configuration/producer-configs.html#producerconfigs_request.timeout.ms
- key:"session.timeout.ms"# refer to https://docs.confluent.io/platform/current/installation/configuration/consumer-configs.html#consumerconfigs_session.timeout.ms
other-inline:"${TB_QUEUE_KAFKA_OTHER_PROPERTIES:}"# In this section you can specify custom parameters (semicolon separated) for Kafka consumer/producer/admin # Example "metrics.recording.level:INFO;metrics.sample.window.ms:30000"
other:# DEPRECATED. In this section you can specify custom parameters for Kafka consumer/producer and expose the env variables to configure outside
# - key: "request.timeout.ms" # refer to https://docs.confluent.io/platform/current/installation/configuration/producer-configs.html#producerconfigs_request.timeout.ms
@ -36,15 +36,17 @@ public class ComponentDescriptor extends SearchTextBased<ComponentDescriptorId>
@Getter@SetterprivateComponentTypetype;
@ApiModelProperty(position=4,value="Scope of the Rule Node. Always set to 'TENANT', since no rule chains on the 'SYSTEM' level yet.",accessMode=ApiModelProperty.AccessMode.READ_ONLY,allowableValues="TENANT",example="TENANT")
@Getter@SetterprivateComponentScopescope;
@ApiModelProperty(position=5,value="Clustering mode of the RuleNode. This mode represents the ability to start Rule Node in multiple microservices.",accessMode=ApiModelProperty.AccessMode.READ_ONLY,allowableValues="USER_PREFERENCE, ENABLED, SINGLETON",example="ENABLED")
@ApiModelProperty(position=5,value="Name of the Rule Node. Taken from the @RuleNode annotation.",accessMode=ApiModelProperty.AccessMode.READ_ONLY,example="Custom Rule Node")
@ApiModelProperty(position=6,value="Name of the Rule Node. Taken from the @RuleNode annotation.",accessMode=ApiModelProperty.AccessMode.READ_ONLY,example="Custom Rule Node")
@Getter@SetterprivateStringname;
@ApiModelProperty(position=6,value="Full name of the Java class that implements the Rule Engine Node interface.",accessMode=ApiModelProperty.AccessMode.READ_ONLY,example="com.mycompany.CustomRuleNode")
@ApiModelProperty(position=7,value="Full name of the Java class that implements the Rule Engine Node interface.",accessMode=ApiModelProperty.AccessMode.READ_ONLY,example="com.mycompany.CustomRuleNode")
@Getter@SetterprivateStringclazz;
@ApiModelProperty(position=7,value="Complex JSON object that represents the Rule Node configuration.",accessMode=ApiModelProperty.AccessMode.READ_ONLY)
@ApiModelProperty(position=8,value="Complex JSON object that represents the Rule Node configuration.",accessMode=ApiModelProperty.AccessMode.READ_ONLY)
@ApiModelProperty(position=7,value="JSON with the rule node configuration. Structure depends on the rule node implementation.",dataType="com.fasterxml.jackson.databind.JsonNode")
@ApiModelProperty(position=8,value="JSON with the rule node configuration. Structure depends on the rule node implementation.",dataType="com.fasterxml.jackson.databind.JsonNode")
privatetransientJsonNodeconfiguration;
@JsonIgnore
privatebyte[]configurationBytes;
@ -69,6 +71,7 @@ public class RuleNode extends SearchTextBasedWithAdditionalInfo<RuleNodeId> impl