scouter_settings/
http.rs

1use pyo3::prelude::*;
2use scouter_types::ProfileFuncs;
3use scouter_types::TransportType;
4use serde::Serialize;
5
6#[pyclass]
7#[derive(Debug, Clone, Serialize)]
8pub struct HTTPConfig {
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, set)]
19    pub auth_token: String,
20
21    #[pyo3(get)]
22    pub transport_type: TransportType,
23}
24
25#[pymethods]
26impl HTTPConfig {
27    #[new]
28    #[pyo3(signature = (server_uri=None, username=None, password=None, auth_token=None))]
29    pub fn new(
30        server_uri: Option<String>,
31        username: Option<String>,
32        password: Option<String>,
33        auth_token: Option<String>,
34    ) -> Self {
35        let server_uri = server_uri.unwrap_or_else(|| {
36            std::env::var("SCOUTER_SERVER_URI")
37                .unwrap_or_else(|_| "http://localhost:8000".to_string())
38        });
39
40        let username = username.unwrap_or_else(|| {
41            std::env::var("SCOUTER_USERNAME").unwrap_or_else(|_| "admin".to_string())
42        });
43        let password = password.unwrap_or_else(|| {
44            std::env::var("SCOUTER_PASSWORD").unwrap_or_else(|_| "admin".to_string())
45        });
46        let auth_token = auth_token.unwrap_or_else(|| {
47            std::env::var("SCOUTER_AUTH_TOKEN").unwrap_or_else(|_| "".to_string())
48        });
49
50        HTTPConfig {
51            server_uri,
52            username,
53            password,
54            auth_token,
55            transport_type: TransportType::Http,
56        }
57    }
58
59    pub fn __str__(&self) -> String {
60        // serialize the struct to a string
61        ProfileFuncs::__str__(self)
62    }
63}
64
65impl Default for HTTPConfig {
66    fn default() -> Self {
67        HTTPConfig {
68            server_uri: std::env::var("SCOUTER_SERVER_URI")
69                .unwrap_or_else(|_| "http://localhost:8000".to_string()),
70            username: std::env::var("SCOUTER_USERNAME").unwrap_or_else(|_| "guest".to_string()),
71            password: std::env::var("SCOUTER_PASSWORD").unwrap_or_else(|_| "guest".to_string()),
72            auth_token: std::env::var("SCOUTER_AUTH_TOKEN").unwrap_or_else(|_| "".to_string()),
73            transport_type: TransportType::Http,
74        }
75    }
76}