use models::node::BottlerocketShadowSelector; use snafu::Snafu; /// The client result type. pub type Result = std::result::Result; /// Error type representing issues using an apiserver client. #[derive(Debug, Snafu)] #[snafu(visibility(pub))] pub enum ClientError { #[snafu(display( "Unable to get environment variable '{}' for client due to : '{}'", variable, source ))] MissingEnvVariable { source: std::env::VarError, variable: String, }, #[snafu(display( "API server responded with an error status code {}: '{}'", status_code, response ))] ErrorResponse { status_code: reqwest::StatusCode, response: String, }, #[snafu(display( "Unable to create BottlerocketShadow ({}, {}): '{}'", selector.node_name, selector.node_uid, source ))] CreateBottlerocketShadowResource { source: Box, selector: BottlerocketShadowSelector, }, #[snafu(display( "Unable to update BottlerocketShadow status ({}, {}): '{}'", selector.node_name, selector.node_uid, source ))] UpdateBottlerocketShadowResource { source: Box, selector: BottlerocketShadowSelector, }, #[snafu(display( "Unable to drain and cordon Node status ({}, {}): '{}'", selector.node_name, selector.node_uid, source ))] CordonAndDrainNodeResource { source: Box, selector: BottlerocketShadowSelector, }, #[snafu(display( "Unable to uncordon Node status ({}, {}): '{}'", selector.node_name, selector.node_uid, source ))] UncordonNodeResource { source: Box, selector: BottlerocketShadowSelector, }, #[snafu(display( "IO error occurred while attempting to use APIServerClient: '{}'", source ))] IOError { source: Box }, #[snafu(display("Failed to create kubernetes client due to {}", source))] CreateK8sClientError { source: std::num::ParseIntError }, #[snafu(display("Failed to create https client due to {}", source))] CreateClientError { source: reqwest::Error }, #[snafu(display( "Unable to exclude node from load balancer ({}, {}): '{}'", selector.node_name, selector.node_uid, source ))] ExcludeNodeFromLB { source: Box, selector: BottlerocketShadowSelector, }, #[snafu(display( "Unable to remove node exlucsion from load balancer ({}, {}): '{}'", selector.node_name, selector.node_uid, source ))] RemoveNodeExclusionFromLB { source: Box, selector: BottlerocketShadowSelector, }, }