aboutsummaryrefslogtreecommitdiff
path: root/src/garage/cli
diff options
context:
space:
mode:
authorAlex Auvolat <lx@deuxfleurs.fr>2025-01-30 12:19:23 +0100
committerAlex Auvolat <lx@deuxfleurs.fr>2025-01-30 12:19:23 +0100
commit819f4f00509a57097d0ee8291e1556829e982e14 (patch)
tree093bea802946c81abd2845c046bad0d25d392624 /src/garage/cli
parent69ddaafc6061d06d277fe772dfaa7fe64ecafcc1 (diff)
downloadgarage-819f4f00509a57097d0ee8291e1556829e982e14.tar.gz
garage-819f4f00509a57097d0ee8291e1556829e982e14.zip
cli: migrate layout remove, apply, revert
Diffstat (limited to 'src/garage/cli')
-rw-r--r--src/garage/cli/layout.rs69
-rw-r--r--src/garage/cli/util.rs21
2 files changed, 0 insertions, 90 deletions
diff --git a/src/garage/cli/layout.rs b/src/garage/cli/layout.rs
index d0b62fc7..bb81d144 100644
--- a/src/garage/cli/layout.rs
+++ b/src/garage/cli/layout.rs
@@ -1,7 +1,6 @@
use bytesize::ByteSize;
use format_table::format_table;
-use garage_util::crdt::Crdt;
use garage_util::error::*;
use garage_rpc::layout::*;
@@ -10,33 +9,6 @@ use garage_rpc::*;
use crate::cli::*;
-pub async fn cmd_remove_role(
- rpc_cli: &Endpoint<SystemRpc, ()>,
- rpc_host: NodeID,
- args: RemoveRoleOpt,
-) -> Result<(), Error> {
- let mut layout = fetch_layout(rpc_cli, rpc_host).await?;
-
- let mut roles = layout.current().roles.clone();
- roles.merge(&layout.staging.get().roles);
-
- let deleted_node =
- find_matching_node(roles.items().iter().map(|(id, _, _)| *id), &args.node_id)?;
-
- layout
- .staging
- .get_mut()
- .roles
- .merge(&roles.update_mutator(deleted_node, NodeRoleV(None)));
-
- send_layout(rpc_cli, rpc_host, layout).await?;
-
- println!("Role removal is staged but not yet committed.");
- println!("Use `garage layout show` to view staged role changes,");
- println!("and `garage layout apply` to enact staged changes.");
- Ok(())
-}
-
pub async fn cmd_show_layout(
rpc_cli: &Endpoint<SystemRpc, ()>,
rpc_host: NodeID,
@@ -85,47 +57,6 @@ pub async fn cmd_show_layout(
Ok(())
}
-pub async fn cmd_apply_layout(
- rpc_cli: &Endpoint<SystemRpc, ()>,
- rpc_host: NodeID,
- apply_opt: ApplyLayoutOpt,
-) -> Result<(), Error> {
- let layout = fetch_layout(rpc_cli, rpc_host).await?;
-
- let (layout, msg) = layout.apply_staged_changes(apply_opt.version)?;
- for line in msg.iter() {
- println!("{}", line);
- }
-
- send_layout(rpc_cli, rpc_host, layout).await?;
-
- println!("New cluster layout with updated role assignment has been applied in cluster.");
- println!("Data will now be moved around between nodes accordingly.");
-
- Ok(())
-}
-
-pub async fn cmd_revert_layout(
- rpc_cli: &Endpoint<SystemRpc, ()>,
- rpc_host: NodeID,
- revert_opt: RevertLayoutOpt,
-) -> Result<(), Error> {
- if !revert_opt.yes {
- return Err(Error::Message(
- "Please add the --yes flag to run the layout revert operation".into(),
- ));
- }
-
- let layout = fetch_layout(rpc_cli, rpc_host).await?;
-
- let layout = layout.revert_staged_changes()?;
-
- send_layout(rpc_cli, rpc_host, layout).await?;
-
- println!("All proposed role changes in cluster layout have been canceled.");
- Ok(())
-}
-
pub async fn cmd_config_layout(
rpc_cli: &Endpoint<SystemRpc, ()>,
rpc_host: NodeID,
diff --git a/src/garage/cli/util.rs b/src/garage/cli/util.rs
index 21c14f42..c591cadd 100644
--- a/src/garage/cli/util.rs
+++ b/src/garage/cli/util.rs
@@ -233,27 +233,6 @@ pub fn print_bucket_info(
};
}
-pub fn find_matching_node(
- cand: impl std::iter::Iterator<Item = Uuid>,
- pattern: &str,
-) -> Result<Uuid, Error> {
- let mut candidates = vec![];
- for c in cand {
- if hex::encode(c).starts_with(pattern) && !candidates.contains(&c) {
- candidates.push(c);
- }
- }
- if candidates.len() != 1 {
- Err(Error::Message(format!(
- "{} nodes match '{}'",
- candidates.len(),
- pattern,
- )))
- } else {
- Ok(candidates[0])
- }
-}
-
pub fn print_worker_list(wi: HashMap<usize, WorkerInfo>, wlo: WorkerListOpt) {
let mut wi = wi.into_iter().collect::<Vec<_>>();
wi.sort_by_key(|(tid, info)| {