aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/api/admin/cluster.rs1
-rw-r--r--src/garage/cli/layout.rs3
-rw-r--r--src/rpc/layout/history.rs2
3 files changed, 4 insertions, 2 deletions
diff --git a/src/api/admin/cluster.rs b/src/api/admin/cluster.rs
index 593bd778..d912b58f 100644
--- a/src/api/admin/cluster.rs
+++ b/src/api/admin/cluster.rs
@@ -240,6 +240,7 @@ pub async fn handle_update_cluster_layout(
.merge(&roles.update_mutator(node, layout::NodeRoleV(new_role)));
}
+ layout.update_hashes();
garage
.system
.layout_manager
diff --git a/src/garage/cli/layout.rs b/src/garage/cli/layout.rs
index 269d92f4..15727448 100644
--- a/src/garage/cli/layout.rs
+++ b/src/garage/cli/layout.rs
@@ -329,8 +329,9 @@ pub async fn fetch_layout(
pub async fn send_layout(
rpc_cli: &Endpoint<SystemRpc, ()>,
rpc_host: NodeID,
- layout: LayoutHistory,
+ mut layout: LayoutHistory,
) -> Result<(), Error> {
+ layout.update_hashes();
rpc_cli
.call(
&rpc_host,
diff --git a/src/rpc/layout/history.rs b/src/rpc/layout/history.rs
index 347f03db..e17a1c77 100644
--- a/src/rpc/layout/history.rs
+++ b/src/rpc/layout/history.rs
@@ -40,7 +40,7 @@ impl LayoutHistory {
.collect::<HashSet<_>>()
}
- pub(crate) fn update_hashes(&mut self) {
+ pub fn update_hashes(&mut self) {
self.trackers_hash = self.calculate_trackers_hash();
self.staging_hash = self.calculate_staging_hash();
}