aboutsummaryrefslogtreecommitdiff
path: root/src/k2v-client/bin/k2v-cli.rs
diff options
context:
space:
mode:
authorAlex <alex@adnab.me>2022-07-04 12:45:32 +0200
committerAlex <alex@adnab.me>2022-07-04 12:45:32 +0200
commit0850bac874029f0b8b278d75537dd037e5db57da (patch)
tree6c5e6e30e6b224588c2296e36f2f3657161b46ae /src/k2v-client/bin/k2v-cli.rs
parentb74b533b7be4f43bb565a5f025cf6121933307f6 (diff)
downloadgarage-0850bac874029f0b8b278d75537dd037e5db57da.tar.gz
garage-0850bac874029f0b8b278d75537dd037e5db57da.zip
Add `poll` command to `k2v-cli` (#335)
Co-authored-by: Alex Auvolat <alex@adnab.me> Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/335 Co-authored-by: Alex <alex@adnab.me> Co-committed-by: Alex <alex@adnab.me>
Diffstat (limited to 'src/k2v-client/bin/k2v-cli.rs')
-rw-r--r--src/k2v-client/bin/k2v-cli.rs28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/k2v-client/bin/k2v-cli.rs b/src/k2v-client/bin/k2v-cli.rs
index 38c39361..884e7438 100644
--- a/src/k2v-client/bin/k2v-cli.rs
+++ b/src/k2v-client/bin/k2v-cli.rs
@@ -55,6 +55,19 @@ enum Command {
#[clap(flatten)]
output_kind: ReadOutputKind,
},
+ /// Watch changes on a single value
+ Poll {
+ /// Partition key to delete from
+ partition_key: String,
+ /// Sort key to delete from
+ sort_key: String,
+ /// Causality information
+ #[clap(short, long)]
+ causality: String,
+ /// Output formating
+ #[clap(flatten)]
+ output_kind: ReadOutputKind,
+ },
/// Delete a single value
Delete {
/// Partition key to delete from
@@ -324,6 +337,21 @@ async fn main() -> Result<(), Error> {
let res = client.read_item(&partition_key, &sort_key).await?;
output_kind.display_output(res);
}
+ Command::Poll {
+ partition_key,
+ sort_key,
+ causality,
+ output_kind,
+ } => {
+ let res_opt = client
+ .poll_item(&partition_key, &sort_key, causality.into(), None)
+ .await?;
+ if let Some(res) = res_opt {
+ output_kind.display_output(res);
+ } else {
+ println!("Delay expired and value didn't change.");
+ }
+ }
Command::ReadIndex {
output_kind,
filter,