use crate::{
InternalError,
config::schema::IndexPool,
ops::config::ConfigOps,
workflow::placement::index::{
PlacementIndexWorkflow,
state::{PlacementIndexWorkflowError, available_pool_names},
},
};
impl PlacementIndexWorkflow {
pub(super) fn get_index_pool_cfg(pool: &str) -> Result<IndexPool, InternalError> {
let index =
ConfigOps::current_index_config()?.ok_or(PlacementIndexWorkflowError::IndexDisabled)?;
let available = available_pool_names(&index);
index
.pools
.get(pool)
.cloned()
.ok_or_else(|| PlacementIndexWorkflowError::UnknownPool {
requested: pool.to_string(),
available,
})
.map_err(InternalError::from)
}
}