From 562dd80025917745ec4b9c356a65ae935bb550ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Arg=C3=A9rus?= Date: Wed, 30 Aug 2023 12:49:14 +0200 Subject: [PATCH] [databroker] Support setting value "NotAvailable" --- kuksa_databroker/databroker-cli/src/main.rs | 6 ++++++ kuksa_databroker/databroker/src/broker.rs | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/kuksa_databroker/databroker-cli/src/main.rs b/kuksa_databroker/databroker-cli/src/main.rs index d83f83ca7..704f90c3e 100644 --- a/kuksa_databroker/databroker-cli/src/main.rs +++ b/kuksa_databroker/databroker-cli/src/main.rs @@ -1308,6 +1308,12 @@ fn try_into_data_value( input: &str, data_type: proto::v1::DataType, ) -> Result { + if input == "NotAvailable" { + return Ok(proto::v1::datapoint::Value::FailureValue( + proto::v1::datapoint::Failure::NotAvailable as i32, + )); + } + match data_type { proto::v1::DataType::String => { Ok(proto::v1::datapoint::Value::StringValue(input.to_owned())) diff --git a/kuksa_databroker/databroker/src/broker.rs b/kuksa_databroker/databroker/src/broker.rs index 3f0f777c1..a25caaf75 100644 --- a/kuksa_databroker/databroker/src/broker.rs +++ b/kuksa_databroker/databroker/src/broker.rs @@ -371,6 +371,11 @@ impl Entry { } fn validate_value(&self, value: &DataValue) -> Result<(), UpdateError> { + // Not available is always valid + if value == &DataValue::NotAvailable { + return Ok(()); + } + // Validate value match self.metadata.data_type { DataType::Bool => match value {