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}