MCPcopy Create free account
hub / github.com/BigBoot/AutoKuma / add_monitor

Method add_monitor

kuma-client/src/client.rs:767–832  ·  view source on GitHub ↗
(self: &Arc<Self>, monitor: &mut Monitor, verify: bool)

Source from the content-addressed store, hash-verified

765 }
766
767 pub async fn add_monitor(self: &Arc<Self>, monitor: &mut Monitor, verify: bool) -> Result<()> {
768 if verify {
769 self.verify_monitor(monitor).await?;
770 }
771
772 let tags = mem::take(monitor.common_mut().tags_mut());
773 let notifications = mem::take(monitor.common_mut().notification_id_list_mut());
774
775 #[cfg(feature = "private-api")]
776 let parent_name = mem::take(monitor.common_mut().parent_name_mut());
777 #[cfg(feature = "private-api")]
778 let create_paused = mem::take(monitor.common_mut().create_paused_mut());
779 #[cfg(feature = "private-api")]
780 let notification_names = mem::take(monitor.common_mut().notification_names_mut());
781 #[cfg(feature = "private-api")]
782 let docker_host_name = match monitor {
783 Monitor::Docker {
784 value: docker_monitor,
785 } => mem::take(&mut docker_monitor.docker_host_name),
786 _ => None,
787 };
788 #[cfg(feature = "private-api")]
789 let tag_names = mem::take(monitor.common_mut().tag_names_mut());
790
791 let id: i32 = self
792 .clone()
793 .call(
794 "add",
795 vec![serde_json::to_value(&monitor).unwrap()],
796 "/monitorID",
797 true,
798 )
799 .await?;
800
801 *monitor.common_mut().id_mut() = Some(id);
802 *monitor.common_mut().notification_id_list_mut() = notifications;
803 *monitor.common_mut().tags_mut() = tags;
804
805 #[cfg(feature = "private-api")]
806 {
807 *monitor.common_mut().parent_name_mut() = parent_name;
808 *monitor.common_mut().create_paused_mut() = create_paused;
809 *monitor.common_mut().notification_names_mut() = notification_names;
810 if let Monitor::Docker {
811 value: docker_monitor,
812 } = monitor
813 {
814 docker_monitor.docker_host_name = docker_host_name;
815 }
816 *monitor.common_mut().tag_names_mut() = tag_names;
817 }
818
819 self.edit_monitor(monitor, false).await?;
820
821 self.monitors
822 .lock()
823 .await
824 .insert(id.to_string(), monitor.clone());

Callers 3

mainFunction · 0.80
create_entityMethod · 0.80
handleFunction · 0.80

Calls 5

verify_monitorMethod · 0.80
edit_monitorMethod · 0.80
pause_monitorMethod · 0.80
common_mutMethod · 0.45
callMethod · 0.45

Tested by

no test coverage detected