Load the cluster settings. Returns `None` if not yet bootstrapped.
(&self)
| 124 | |
| 125 | /// Load the cluster settings. Returns `None` if not yet bootstrapped. |
| 126 | pub fn load_cluster_settings(&self) -> Result<Option<ClusterSettings>> { |
| 127 | let txn = self.db.begin_read().map_err(catalog_err)?; |
| 128 | let table = txn.open_table(METADATA_TABLE).map_err(catalog_err)?; |
| 129 | match table.get(KEY_CLUSTER_SETTINGS).map_err(catalog_err)? { |
| 130 | Some(guard) => { |
| 131 | let settings = zerompk::from_msgpack(guard.value()).map_err(|e| { |
| 132 | crate::error::ClusterError::Codec { |
| 133 | detail: format!("deserialize ClusterSettings: {e}"), |
| 134 | } |
| 135 | })?; |
| 136 | Ok(Some(settings)) |
| 137 | } |
| 138 | None => Ok(None), |
| 139 | } |
| 140 | } |
| 141 | } |
| 142 | |
| 143 | #[cfg(test)] |