scouter_settings/
grpc.rs

1use pyo3::prelude::*;
2use scouter_types::PyHelperFuncs;
3use scouter_types::TransportType;
4use serde::Serialize;
5
6#[pyclass]
7#[derive(Debug, Clone, Serialize)]
8pub struct GrpcConfig {
9    #[pyo3(get, set)]
10    pub server_uri: String,
11
12    #[pyo3(get, set)]
13    pub username: String,
14
15    #[pyo3(get, set)]
16    pub password: String,
17
18    #[pyo3(get)]
19    pub transport_type: TransportType,
20}
21
22#[pymethods]
23impl GrpcConfig {
24    #[new]
25    #[pyo3(signature = (
26        server_uri=None,
27        username=None,
28        password=None,
29    ))]
30    pub fn new(
31        server_uri: Option<String>,
32        username: Option<String>,
33        password: Option<String>,
34    ) -> Self {
35        let server_uri = server_uri.unwrap_or_else(|| {
36            std::env::var("SCOUTER_GRPC_URI")
37                .unwrap_or_else(|_| "http://localhost:50051".to_string())
38        });
39
40        let username = username.unwrap_or_else(|| {
41            std::env::var("SCOUTER_USERNAME").unwrap_or_else(|_| "guest".to_string())
42        });
43
44        let password = password.unwrap_or_else(|| {
45            std::env::var("SCOUTER_PASSWORD").unwrap_or_else(|_| "guest".to_string())
46        });
47
48        GrpcConfig {
49            server_uri,
50            username,
51            password,
52            transport_type: TransportType::Grpc,
53        }
54    }
55
56    pub fn __str__(&self) -> String {
57        PyHelperFuncs::__str__(self)
58    }
59}
60
61impl Default for GrpcConfig {
62    fn default() -> Self {
63        Self::new(None, None, None)
64    }
65}