manta_server/backend_dispatcher/
component.rs

1//! Dispatches `ComponentTrait` methods to csm-rs or ochami-rs.
2
3use manta_backend_dispatcher::{
4  error::Error,
5  interfaces::hsm::component::ComponentTrait,
6  types::{Component, ComponentArrayPostArray, NodeMetadataArray},
7};
8
9use StaticBackendDispatcher::*;
10
11use serde_json::Value;
12
13use crate::manta_backend_dispatcher::StaticBackendDispatcher;
14
15impl ComponentTrait for StaticBackendDispatcher {
16  async fn get_all_nodes(
17    &self,
18    auth_token: &str,
19    nid_only: Option<&str>,
20  ) -> Result<NodeMetadataArray, Error> {
21    dispatch!(self, get_all_nodes, auth_token, nid_only)
22  }
23
24  async fn get_node_metadata_available(
25    &self,
26    auth_token: &str,
27  ) -> Result<Vec<Component>, Error> {
28    dispatch!(self, get_node_metadata_available, auth_token)
29  }
30
31  async fn get(
32    &self,
33    auth_token: &str,
34    id: Option<&str>,
35    r#type: Option<&str>,
36    state: Option<&str>,
37    flag: Option<&str>,
38    role: Option<&str>,
39    subrole: Option<&str>,
40    enabled: Option<&str>,
41    software_status: Option<&str>,
42    subtype: Option<&str>,
43    arch: Option<&str>,
44    class: Option<&str>,
45    nid: Option<&str>,
46    nid_start: Option<&str>,
47    nid_end: Option<&str>,
48    partition: Option<&str>,
49    group: Option<&str>,
50    state_only: Option<&str>,
51    flag_only: Option<&str>,
52    role_only: Option<&str>,
53    nid_only: Option<&str>,
54  ) -> Result<NodeMetadataArray, Error> {
55    dispatch!(
56      self,
57      get,
58      auth_token,
59      id,
60      r#type,
61      state,
62      flag,
63      role,
64      subrole,
65      enabled,
66      software_status,
67      subtype,
68      arch,
69      class,
70      nid,
71      nid_start,
72      nid_end,
73      partition,
74      group,
75      state_only,
76      flag_only,
77      role_only,
78      nid_only
79    )
80  }
81
82  async fn post_nodes(
83    &self,
84    auth_token: &str,
85    component: ComponentArrayPostArray,
86  ) -> Result<(), Error> {
87    dispatch!(self, post_nodes, auth_token, component)
88  }
89
90  async fn delete_node(
91    &self,
92    auth_token: &str,
93    id: &str,
94  ) -> Result<Value, Error> {
95    dispatch!(self, delete_node, auth_token, id)
96  }
97
98  async fn nid_to_xname(
99    &self,
100    auth_token: &str,
101    user_input_nid: &str,
102    is_regex: bool,
103  ) -> Result<Vec<String>, Error> {
104    dispatch!(self, nid_to_xname, auth_token, user_input_nid, is_regex)
105  }
106}