diff --git a/src/api.rs b/src/api.rs index 8c922d8..beb7e35 100644 --- a/src/api.rs +++ b/src/api.rs @@ -1090,6 +1090,12 @@ where Ok(response) } + pub async fn overview(&self) -> Result { + let response = self.http_get("overview", None, None).await?; + let response = response.json().await?; + Ok(response) + } + // // Implementation // diff --git a/src/blocking.rs b/src/blocking.rs index c94bcdd..6c89a05 100644 --- a/src/blocking.rs +++ b/src/blocking.rs @@ -964,6 +964,12 @@ where Ok(response) } + pub fn overview(&self) -> Result { + let response = self.http_get("overview", None, None)?; + let response = response.json()?; + Ok(response) + } + // // Implementation // diff --git a/src/responses.rs b/src/responses.rs index 76e804f..25397c9 100644 --- a/src/responses.rs +++ b/src/responses.rs @@ -654,6 +654,17 @@ impl fmt::Display for MessageProperties { } } +#[derive(Debug, Deserialize, Clone, Eq, PartialEq)] +pub struct Overview { + pub cluster_name: String, + pub erlang_full_version: String, + pub erlang_version: String, + pub management_version: String, + pub node: String, + pub rabbitmq_version: String, + pub statistics_db_event_queue: u64, +} + fn undefined() -> String { "?".to_string() } diff --git a/tests/overview_tests.rs b/tests/overview_tests.rs new file mode 100644 index 0000000..dafe251 --- /dev/null +++ b/tests/overview_tests.rs @@ -0,0 +1,13 @@ +use rabbitmq_http_client::blocking::Client; + +mod common; +use crate::common::{endpoint, PASSWORD, USERNAME}; + +#[test] +fn test_overview() { + let endpoint = endpoint(); + let rc = Client::new(&endpoint, USERNAME, PASSWORD); + + let result1 = rc.overview(); + assert!(result1.is_ok(), "overview returned {:?}", result1); +}