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}