k8s_sync/
errors.rs

1use k8s_openapi::RequestError;
2
3#[derive(Debug)]
4pub enum KubernetesError {
5    RequestError,
6    IoError { source: std::io::Error },
7    ClientBuildError,
8    HttpClientBuildError { message: String },
9    HttpClientRequestError,
10    HttpClientParseResponseError { message: String },
11    ApiRequestError { source: RequestError },
12    Base64DecodeError { source: base64::DecodeError },
13    InvalidDataError,
14    ConfigLoadError,
15    WrongDatetimeFormat { source: chrono::ParseError },
16}
17
18impl std::error::Error for KubernetesError {}
19
20impl std::fmt::Display for KubernetesError {
21    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
22        match self {
23            KubernetesError::RequestError => write!(f, "Request Error (k8s_openapi)"),
24            KubernetesError::IoError { source } => {
25                write!(f, "Couldn't read file (io::Error). Source: {}", source)
26            }
27            KubernetesError::ClientBuildError => write!(f, "Couldn't build client (isahc)"),
28            KubernetesError::HttpClientBuildError { message } => {
29                write!(f, "Couldn't build http client (isahc): {}", message)
30            }
31            KubernetesError::HttpClientRequestError => {
32                write!(f, "Couldn't build http client (isahc)")
33            }
34            KubernetesError::HttpClientParseResponseError { message } => {
35                write!(f, "Couldn't parse response from HTTP server: {}", message)
36            }
37            KubernetesError::Base64DecodeError { source } => {
38                write!(f, "Couldn't decode base 64. Source: {}", source)
39            }
40            KubernetesError::InvalidDataError => write!(f, "Invalid data provided."),
41            KubernetesError::ConfigLoadError => write!(f, "Could not load Kube Config."),
42            KubernetesError::ApiRequestError { source } => {
43                write!(f, "API returned error: {}.", source)
44            }
45            KubernetesError::WrongDatetimeFormat { source } => {
46                write!(f, "Couldn't parse date time input : {}", source)
47            }
48        }
49    }
50}