scouter_settings/
http.rs

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