manta_server/backend_dispatcher/
cluster_template.rs

1//! Dispatches `ClusterTemplateTrait` (BOS session template) methods to csm-rs or ochami-rs.
2
3use manta_backend_dispatcher::{
4  error::Error, interfaces::bos::ClusterTemplateTrait,
5  types::bos::session_template::BosSessionTemplate,
6};
7
8use StaticBackendDispatcher::*;
9
10use crate::manta_backend_dispatcher::StaticBackendDispatcher;
11
12impl ClusterTemplateTrait for StaticBackendDispatcher {
13  async fn get_template(
14    &self,
15    shasta_token: &str,
16    shasta_base_url: &str,
17    shasta_root_cert: &[u8],
18    bos_session_template_id_opt: Option<&str>,
19  ) -> Result<Vec<BosSessionTemplate>, Error> {
20    dispatch!(
21      self,
22      get_template,
23      shasta_token,
24      shasta_base_url,
25      shasta_root_cert,
26      bos_session_template_id_opt
27    )
28  }
29
30  async fn get_and_filter_templates(
31    &self,
32    shasta_token: &str,
33    shasta_base_url: &str,
34    shasta_root_cert: &[u8],
35    hsm_group_name_vec: &[String],
36    hsm_member_vec: &[String],
37    bos_sessiontemplate_name_opt: Option<&str>,
38    limit_number_opt: Option<&u8>,
39  ) -> Result<Vec<BosSessionTemplate>, Error> {
40    dispatch!(
41      self,
42      get_and_filter_templates,
43      shasta_token,
44      shasta_base_url,
45      shasta_root_cert,
46      hsm_group_name_vec,
47      hsm_member_vec,
48      bos_sessiontemplate_name_opt,
49      limit_number_opt
50    )
51  }
52
53  async fn get_all_templates(
54    &self,
55    shasta_token: &str,
56    shasta_base_url: &str,
57    shasta_root_cert: &[u8],
58  ) -> Result<Vec<BosSessionTemplate>, Error> {
59    dispatch!(
60      self,
61      get_all_templates,
62      shasta_token,
63      shasta_base_url,
64      shasta_root_cert
65    )
66  }
67
68  async fn put_template(
69    &self,
70    shasta_token: &str,
71    shasta_base_url: &str,
72    shasta_root_cert: &[u8],
73    bos_template: &BosSessionTemplate,
74    bos_template_name: &str,
75  ) -> Result<BosSessionTemplate, Error> {
76    dispatch!(
77      self,
78      put_template,
79      shasta_token,
80      shasta_base_url,
81      shasta_root_cert,
82      bos_template,
83      bos_template_name
84    )
85  }
86
87  async fn delete_template(
88    &self,
89    shasta_token: &str,
90    shasta_base_url: &str,
91    shasta_root_cert: &[u8],
92    bos_template_id: &str,
93  ) -> Result<(), Error> {
94    dispatch!(
95      self,
96      delete_template,
97      shasta_token,
98      shasta_base_url,
99      shasta_root_cert,
100      bos_template_id
101    )
102  }
103}