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 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}