Skip to content

Commit 7f7a4e3

Browse files
Update to RabbitMQ HTTP API 0.60.0
1 parent d6a5025 commit 7f7a4e3

File tree

8 files changed

+63
-25
lines changed

8 files changed

+63
-25
lines changed

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44

55
### Enhancements
66

7+
* Memory breakdown commands (`show memory_breakdown_in_bytes` and `show memory_breakdown_in_percent`) now gracefully handle
8+
cases where memory breakdown stats are not yet available on the target node
9+
710
* `shovel enable_tls_peer_verification_for_all_source_uris` is a new command that enables TLS peer verification
811
for all shovel source URIs:
912

@@ -37,6 +40,11 @@
3740
--node-local-client-private-key-file-path /path/to/node/local/client_private_key.pem
3841
```
3942

43+
### Upgrades
44+
45+
* RabbitMQ HTTP API client was upgraded to [`0.59.0`](https://github.com/michaelklishin/rabbitmq-http-api-rs/releases/tag/v0.59.0)
46+
47+
4048
## v2.12.0 (Sep 23, 2025)
4149

4250
### Enhancements

Cargo.lock

Lines changed: 17 additions & 17 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ reqwest = { version = "0.12", features = [
1717
"__rustls",
1818
"rustls-tls-native-roots",
1919
] }
20-
rabbitmq_http_client = { version = "0.58.0", features = [
20+
rabbitmq_http_client = { version = "0.59.0", features = [
2121
"blocking",
2222
"tabled",
2323
] }

src/commands.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ pub fn show_overview(client: APIClient) -> ClientResult<responses::Overview> {
5353
pub fn show_memory_breakdown(
5454
client: APIClient,
5555
command_args: &ArgMatches,
56-
) -> ClientResult<responses::NodeMemoryBreakdown> {
56+
) -> ClientResult<Option<responses::NodeMemoryBreakdown>> {
5757
let node = command_args.get_one::<String>("node").unwrap();
5858
client
5959
.get_node_memory_footprint(node)

src/output.rs

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -245,33 +245,49 @@ impl<'a> ResultHandler<'a> {
245245
}
246246
}
247247

248-
pub fn memory_breakdown_in_bytes_result(&mut self, result: ClientResult<NodeMemoryBreakdown>) {
248+
pub fn memory_breakdown_in_bytes_result(&mut self, result: ClientResult<Option<NodeMemoryBreakdown>>) {
249249
match result {
250-
Ok(output) => {
250+
Ok(Some(output)) => {
251251
self.exit_code = Some(ExitCode::Ok);
252252

253253
let mut table = tables::memory_breakdown_in_bytes(output);
254254
self.table_styler.apply(&mut table);
255255

256256
println!("{}", table);
257257
}
258+
Ok(None) => {
259+
self.exit_code = Some(ExitCode::Ok);
260+
261+
let mut table = tables::memory_breakdown_not_available();
262+
self.table_styler.apply(&mut table);
263+
264+
println!("{}", table);
265+
}
258266
Err(error) => self.report_command_run_error(&error),
259267
}
260268
}
261269

262270
pub fn memory_breakdown_in_percent_result(
263271
&mut self,
264-
result: ClientResult<NodeMemoryBreakdown>,
272+
result: ClientResult<Option<NodeMemoryBreakdown>>,
265273
) {
266274
match result {
267-
Ok(output) => {
275+
Ok(Some(output)) => {
268276
self.exit_code = Some(ExitCode::Ok);
269277

270278
let mut table = tables::memory_breakdown_in_percent(output);
271279
self.table_styler.apply(&mut table);
272280

273281
println!("{}", table);
274282
}
283+
Ok(None) => {
284+
self.exit_code = Some(ExitCode::Ok);
285+
286+
let mut table = tables::memory_breakdown_not_available();
287+
self.table_styler.apply(&mut table);
288+
289+
println!("{}", table);
290+
}
275291
Err(error) => self.report_command_run_error(&error),
276292
}
277293
}

src/tables.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -943,3 +943,17 @@ pub(crate) fn memory_breakdown_in_percent(mut breakdown: NodeMemoryBreakdown) ->
943943
data.sort_by(|a, b| b.comparable.total_cmp(&a.comparable));
944944
build_simple_table(data)
945945
}
946+
947+
pub(crate) fn memory_breakdown_not_available() -> Table {
948+
let data = vec![
949+
RowOfTwo {
950+
key: "result",
951+
value: "not available",
952+
},
953+
RowOfTwo {
954+
key: "reason",
955+
value: "memory breakdown is not available (yet) on target node",
956+
},
957+
];
958+
build_table_with_header(data, "Memory Breakdown")
959+
}

tests/memory_breakdown_tests.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ fn test_show_memory_breakdown_in_percent_succeeds() -> Result<(), Box<dyn std::e
4646

4747
run_succeeds([
4848
"show",
49-
"memory_breakdown_in_bytes",
49+
"memory_breakdown_in_percent",
5050
"--node",
5151
first.name.as_str(),
5252
])

tests/nodes_tests.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ fn test_nodes_memory_breakdown_in_percent_succeeds() -> Result<(), Box<dyn std::
5656

5757
run_succeeds([
5858
"nodes",
59-
"memory_breakdown_in_bytes",
59+
"memory_breakdown_in_percent",
6060
"--node",
6161
first.name.as_str(),
6262
])

0 commit comments

Comments
 (0)