use crate::{
InternalError,
config::schema::BindingPool,
ops::config::ConfigOps,
workflow::placement::binding::{
PlacementBindingWorkflow,
state::{PlacementBindingWorkflowError, available_pool_names},
},
};
impl PlacementBindingWorkflow {
pub(super) fn get_binding_pool_cfg(pool: &str) -> Result<BindingPool, InternalError> {
let binding = ConfigOps::current_binding_config()?
.ok_or(PlacementBindingWorkflowError::BindingDisabled)?;
let available = available_pool_names(&binding);
binding
.pools
.get(pool)
.cloned()
.ok_or_else(|| PlacementBindingWorkflowError::UnknownPool {
requested: pool.to_string(),
available,
})
.map_err(InternalError::from)
}
}