manta_server/backend_dispatcher/
ims.rs

1//! Dispatches `ImsTrait` and `GetImagesAndDetailsTrait` methods to csm-rs or ochami-rs.
2
3use manta_backend_dispatcher::{
4  error::Error,
5  interfaces::ims::{GetImagesAndDetailsTrait, ImsTrait},
6  types::ims::{Image, PatchImage},
7};
8
9use StaticBackendDispatcher::*;
10
11use crate::manta_backend_dispatcher::StaticBackendDispatcher;
12
13impl ImsTrait for StaticBackendDispatcher {
14  async fn get_images(
15    &self,
16    shasta_token: &str,
17    image_id_opt: Option<&str>,
18  ) -> Result<Vec<Image>, Error> {
19    dispatch!(self, get_images, shasta_token, image_id_opt)
20  }
21
22  async fn get_all_images(
23    &self,
24    shasta_token: &str,
25    shasta_base_url: &str,
26    shasta_root_cert: &[u8],
27  ) -> Result<Vec<Image>, Error> {
28    dispatch!(
29      self,
30      get_all_images,
31      shasta_token,
32      shasta_base_url,
33      shasta_root_cert
34    )
35  }
36
37  fn filter_images(&self, image_vec: &mut Vec<Image>) -> Result<(), Error> {
38    dispatch!(sync self, filter_images, image_vec)
39  }
40
41  async fn update_image(
42    &self,
43    shasta_token: &str,
44    image_id: &str,
45    image: &PatchImage,
46  ) -> Result<(), Error> {
47    dispatch!(self, update_image, shasta_token, image_id, image)
48  }
49
50  async fn delete_image(
51    &self,
52    shasta_token: &str,
53    shasta_base_url: &str,
54    shasta_root_cert: &[u8],
55    image_id: &str,
56  ) -> Result<(), Error> {
57    dispatch!(
58      self,
59      delete_image,
60      shasta_token,
61      shasta_base_url,
62      shasta_root_cert,
63      image_id
64    )
65  }
66}
67
68impl GetImagesAndDetailsTrait for StaticBackendDispatcher {
69  async fn get_images_and_details(
70    &self,
71    shasta_token: &str,
72    shasta_base_url: &str,
73    shasta_root_cert: &[u8],
74    hsm_group_name_vec: &[String],
75    id_opt: Option<&str>,
76    limit_number: Option<&u8>,
77  ) -> Result<Vec<(Image, String, String, bool)>, Error> {
78    dispatch!(
79      self,
80      get_images_and_details,
81      shasta_token,
82      shasta_base_url,
83      shasta_root_cert,
84      hsm_group_name_vec,
85      id_opt,
86      limit_number
87    )
88  }
89}