add hosttags

This commit is contained in:
Vincent Stuyck 2026-02-27 23:09:39 +01:00
parent c39315b2b7
commit a72fc0a09f
2 changed files with 59 additions and 0 deletions

View File

@ -3,6 +3,13 @@ use serde::{Deserialize, Serialize};
use schemars::JsonSchema;
use crate::api::{BulkReadDomainExtension, DomainExtension, DomainType};
use crate::{ApiClient, Client};
impl Client {
pub fn tag_api(&self) -> ApiClient<TagGroup> {
self.into()
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "schemars", derive(JsonSchema))]

View File

@ -25,7 +25,9 @@ async fn main() -> Result<()> {
test_folders(client.clone()).await?;
test_hosts(client.clone()).await?;
test_hosttags(client.clone()).await?;
info!("tests done; all pass");
Ok(())
}
@ -142,3 +144,53 @@ async fn test_hosts(client: Client) -> Result<()> {
Ok(())
}
async fn test_hosttags(client: Client) -> Result<()> {
use checkmk_api::api::tags::*;
const TESTTAG: &str = "test-tag-group";
info!("testing hosttags");
let tagapi = client.tag_api();
let creq = ExtendedTagGroup::new(TESTTAG.to_string(), "Test Tag Group".to_string())
.with_topic("Testing".to_string())
.with_help("A test tag group".to_string())
.with_tag(Tag::new("test1".to_string(), "Test Tag 1".to_string()))
.with_tag(Tag::new("test2".to_string(), "Test Tag 2".to_string()));
let ureq = TagUpdateRequest::new("Updated Test Tag Group".to_string(), false)
.with_topic("Updated Testing".to_string())
.with_help("An updated test tag group".to_string())
.with_tag(Tag::new("test3".to_string(), "Test Tag 3".to_string()));
info!("creating test tag group");
tagapi
.create(&creq, &())
.await
.inspect_err(|e| error!("failed to create tag group: {e}"))?;
let tag_group = tagapi
.read(TESTTAG, &())
.await
.inspect_err(|e| error!("failed to read tag group: {e}"))?;
info!("tag group config: {tag_group:#?}");
info!("updating tag group");
tagapi
.update(TESTTAG, &ureq)
.await
.inspect_err(|e| error!("failed to update tag group: {e}"))?;
let tag_groups = tagapi
.bulk_read(&())
.await
.inspect_err(|e| error!("failed to read all tag groups: {e}"));
info!("all tag groups: {tag_groups:?}");
info!("deleting tag group");
tagapi
.delete(TESTTAG, &())
.await
.inspect_err(|e| error!("failed to delete tag group: {e}"))?;
Ok(())
}