backend_dispatcher/interfaces/
cfs.rs

1use std::future::Future;
2
3use crate::types::K8sDetails;
4use crate::{error::Error, types::cfs::CfsSessionGetResponse};
5use futures::AsyncBufRead;
6
7pub trait CfsTrait {
8    type T: AsyncBufRead;
9
10    fn get_sessions(
11        &self,
12        shasta_token: &str,
13        shasta_base_url: &str,
14        shasta_root_cert: &[u8],
15        session_name_opt: Option<&String>,
16        limit_opt: Option<u8>,
17        after_id_opt: Option<String>,
18        min_age_opt: Option<String>,
19        max_age_opt: Option<String>,
20        status_opt: Option<String>,
21        name_contains_opt: Option<String>,
22        is_succeded_opt: Option<bool>,
23        tags_opt: Option<String>,
24    ) -> impl Future<Output = Result<Vec<CfsSessionGetResponse>, Error>> + Send;
25
26    fn get_sessions_by_xname(
27        &self,
28        shasta_token: &str,
29        shasta_base_url: &str,
30        shasta_root_cert: &[u8],
31        xname_vec: &[&str],
32        limit_opt: Option<u8>,
33        after_id_opt: Option<String>,
34        min_age_opt: Option<String>,
35        max_age_opt: Option<String>,
36        status_opt: Option<String>,
37        name_contains_opt: Option<String>,
38        is_succeded_opt: Option<bool>,
39        tags_opt: Option<String>,
40    ) -> impl Future<Output = Result<Vec<CfsSessionGetResponse>, Error>> + Send;
41
42    fn get_and_filter_sessions(
43        &self,
44        shasta_token: &str,
45        shasta_base_url: &str,
46        shasta_root_cert: &[u8],
47        hsm_group_name_vec_opt: Option<Vec<String>>,
48        xname_vec_opt: Option<Vec<&str>>,
49        min_age_opt: Option<&String>,
50        max_age_opt: Option<&String>,
51        status_opt: Option<&String>,
52        cfs_session_name_opt: Option<&String>,
53        limit_number_opt: Option<&u8>,
54    ) -> impl Future<Output = Result<Vec<CfsSessionGetResponse>, Error>> + Send;
55
56    fn get_session_logs_stream(
57        &self,
58        cfs_session_name: &str,
59        k8s_api_url: &str,
60        k8s: &K8sDetails,
61    ) -> impl Future<Output = Result<Self::T, Error>> + Send;
62
63    fn get_session_logs_stream_by_xname(
64        &self,
65        auth_token: &str,
66        xname: &str,
67        k8s_api_url: &str,
68        k8s: &K8sDetails,
69    ) -> impl Future<Output = Result<Self::T, Error>> + Send;
70}