Dell EMC OnAlertCreated

Dell EMC OnAlertCreated

Certified
Enterprise Edition

Trigger on new Dell EMC PowerStore alert

Polls GET /api/rest/alert at the configured interval, filtered server-side to unacknowledged alerts only, so poll cost scales with the appliance's (typically small) open-alert backlog rather than its full alert history. Each poll emits at most one execution: when one or more new, unacknowledged alerts at or above minSeverity are discovered, the execution's output describes the newest one (alertId, description, severity, raisedTimestamp) and lists every new alert detected in that poll cycle in alerts, so a burst of several new alerts between two polls is never silently reduced to just the newest — newAlertCount reports how many were found. The trigger tracks the raisedTimestamp of the newest-seen matching alert in namespace KV to avoid re-firing on alerts already processed; tracking by timestamp (rather than by ID) ensures the baseline survives an alert being acknowledged between polls. Because two alerts can be raised in the very same millisecond, the baseline also records the IDs of every alert sharing that exact newest timestamp, so same-instant alerts are fired exactly once and never replayed. On the first poll, existing matching alerts are recorded but do not trigger executions, preventing a flood on initial activation. If the array is unreachable, the trigger logs a warning and waits for the next interval.

yaml
type: io.kestra.plugin.ee.dellemc.powerstore.arrays.OnAlertCreated

Trigger a flow whenever a new critical alert is raised on a PowerStore appliance.

yaml
id: powerstore_on_alert_created
namespace: company.team

tasks:
  - id: log_alert
    type: io.kestra.plugin.core.log.Log
    message: "{{ trigger.severity }} — {{ trigger.description }}"

triggers:
  - id: on_alert
    type: io.kestra.plugin.ee.dellemc.powerstore.arrays.OnAlertCreated
    host: "{{ secret('POWERSTORE_HOST') }}"
    username: "{{ secret('POWERSTORE_USERNAME') }}"
    password: "{{ secret('POWERSTORE_PASSWORD') }}"
    minSeverity: CRITICAL
    interval: PT5M
Properties

PowerStore management address

Hostname or IP address of the PowerStore appliance management interface, optionally including a port if non-default (for example: powerstore.example.com or 192.168.1.20: 8443). The REST API is reached at https://{host}/api/rest.

PowerStore password

Password for username. Store this value as a Kestra secret and reference it via {{ secret('POWERSTORE_PASSWORD') }}.

PowerStore username

Username of a PowerStore local or LDAP account used to authenticate via HTTP Basic Auth.

Defaultfalse

Specifies whether a trigger is allowed to start a new execution even if a previous run is still in progress.

DefaultPT1M
Formatduration

Polling interval

How often to poll the PowerStore API for new alerts. Defaults to PT1M (every minute).

DefaultMINOR
Possible Values
NONEINFOMINORMAJORCRITICAL

Minimum alert severity

Only alerts at or above this severity trigger an execution. Defaults to MINOR.

Defaultfalse

Skip TLS certificate verification

When true, accepts the PowerStore appliance's TLS certificate without validation. Defaults to false. PowerStore management interfaces are commonly deployed with a self-signed certificate; set this to true to connect to those without importing the certificate into a trust store. Intended for lab/non-production use — leave false in production and use a properly signed certificate instead.

SubTypestring
Possible Values
CREATEDSUBMITTEDRUNNINGPAUSEDRESTARTEDKILLINGSUCCESSWARNINGFAILEDKILLEDCANCELLEDQUEUEDRETRYINGRETRIEDSKIPPEDBREAKPOINTRESUBMITTED

List of execution states after which a trigger should be stopped (a.k.a. disabled).

Defaulttrue

A condition that determines whether the trigger should run.

A Pebble expression evaluated at trigger time. The trigger fires only when the expression evaluates to a truthy value (true, a non-empty string, a non-zero number). Use this to gate trigger execution on dynamic runtime values such as execution labels, flow variables, or environment conditions.

Alert ID

ID of the newest alert that triggered this execution.

New alerts

Every new matching alert detected in this poll cycle, oldest first — not just the newest one described by alertId/description/severity/raisedTimestamp. Always has at least one element when the trigger fires.

Definitions
acknowledgedboolean
descriptionstring
idstring
raisedTimestampinteger
severitystring

Alert description

New alert count

Number of new matching alerts detected in this poll cycle.

Alert raised timestamp

Epoch milliseconds when the triggering alert was raised.

Alert severity

One of NONE, INFO, MINOR, MAJOR, CRITICAL.