Skip to main content

elasticctl_api/rules_ops/
recheck.rs

1//! Rule state re-checks.
2
3use super::*;
4use crate::observe::{Observed, Preconditions};
5
6/// Read each rule by ID, returning absent state for missing rules.
7pub async fn observe_rules(t: &Transport, rule_ids: &[String]) -> Result<Preconditions> {
8    let mut entries = Vec::with_capacity(rule_ids.len());
9    for id in rule_ids {
10        let state = match rules::get(t, id).await {
11            Ok(rule) => Some(normalize::canonical(&rule).into_value()),
12            Err(err) if err.kind == ErrorKind::NotFound => None,
13            Err(err) => return Err(err),
14        };
15        entries.push(Observed {
16            object: "rule",
17            id: id.clone(),
18            state,
19        });
20    }
21    Ok(Preconditions(entries))
22}