(self: &Arc<Self>, monitor: &mut Monitor, verify: bool)
| 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()); |
no test coverage detected