diff --git a/CHANGELOG.md b/CHANGELOG.md index ee6464aa15c03..f033ca00aa468 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ### Removed ### Fixed +- Fix bytes parameter on `_cat/recovery` ([#17598](https://github.com/opensearch-project/OpenSearch/pull/17598)) ### Security diff --git a/rest-api-spec/src/main/resources/rest-api-spec/test/cat.recovery/10_basic.yml b/rest-api-spec/src/main/resources/rest-api-spec/test/cat.recovery/10_basic.yml index ef1272322e9af..942d90be25bb4 100644 --- a/rest-api-spec/src/main/resources/rest-api-spec/test/cat.recovery/10_basic.yml +++ b/rest-api-spec/src/main/resources/rest-api-spec/test/cat.recovery/10_basic.yml @@ -1,5 +1,8 @@ --- "Test cat recovery output": + - skip: + version: " - 2.99.99" + reason: Output format changed in 3.0 - do: cat.recovery: {} @@ -35,10 +38,10 @@ \d+ \s+ # files_recovered \d+\.\d+% \s+ # files_percent \d+ \s+ # files_total - \d+ \s+ # bytes - \d+ \s+ # bytes_recovered + (\d+|\d+[.]\d+)(kb|b) \s+ # bytes + (\d+|\d+[.]\d+)(kb|b) \s+ # bytes_recovered \d+\.\d+% \s+ # bytes_percent - \d+ \s+ # bytes_total + (\d+|\d+[.]\d+)(kb|b) \s+ # bytes_total -?\d+ \s+ # translog_ops \d+ \s+ # translog_ops_recovered -?\d+\.\d+% # translog_ops_percent @@ -56,7 +59,7 @@ ( \d \s+ # shard ((\S+\s?){1,10})\s+ # source_node - \d+ # bytes + (\d+|\d+[.]\d+)(kb|b) # bytes \n )+ $/ @@ -71,7 +74,7 @@ ( \d \s+ # shard ((\S+\s?){1,10})\s+ # target_node - \d+ # bytes + (\d+|\d+[.]\d+)(kb|b) # bytes \n )+ $/ @@ -79,8 +82,8 @@ --- "Test cat recovery output for closed index": - skip: - version: " - 7.1.99" - reason: closed indices are replicated starting version 7.2.0 + version: " - 2.99.99" + reason: Output format changed in 3.0 - do: indices.create: @@ -122,10 +125,10 @@ \d+ \s+ # files_recovered \d+\.\d+% \s+ # files_percent \d+ \s+ # files_total - \d+ \s+ # bytes - \d+ \s+ # bytes_recovered + (\d+|\d+[.]\d+)(kb|b) \s+ # bytes + (\d+|\d+[.]\d+)(kb|b) \s+ # bytes_recovered \d+\.\d+% \s+ # bytes_percent - \d+ \s+ # bytes_total + (\d+|\d+[.]\d+)(kb|b) \s+ # bytes_total 0 \s+ # translog_ops (always 0 for closed indices) 0 \s+ # translog_ops_recovered (always 0 for closed indices) 100\.0% # translog_ops_percent (always 100.0% for closed indices) diff --git a/server/src/main/java/org/opensearch/rest/action/cat/RestCatRecoveryAction.java b/server/src/main/java/org/opensearch/rest/action/cat/RestCatRecoveryAction.java index 5266095f9d26e..221cef9d71780 100644 --- a/server/src/main/java/org/opensearch/rest/action/cat/RestCatRecoveryAction.java +++ b/server/src/main/java/org/opensearch/rest/action/cat/RestCatRecoveryAction.java @@ -42,6 +42,7 @@ import org.opensearch.common.unit.TimeValue; import org.opensearch.common.xcontent.XContentOpenSearchExtension; import org.opensearch.core.common.Strings; +import org.opensearch.core.common.unit.ByteSizeValue; import org.opensearch.indices.recovery.RecoveryState; import org.opensearch.rest.RestRequest; import org.opensearch.rest.RestResponse; @@ -196,10 +197,10 @@ public int compare(RecoveryState o1, RecoveryState o2) { t.addCell(state.getIndex().recoveredFileCount()); t.addCell(String.format(Locale.ROOT, "%1.1f%%", state.getIndex().recoveredFilesPercent())); t.addCell(state.getIndex().totalFileCount()); - t.addCell(state.getIndex().totalRecoverBytes()); - t.addCell(state.getIndex().recoveredBytes()); + t.addCell(new ByteSizeValue(state.getIndex().totalRecoverBytes())); + t.addCell(new ByteSizeValue(state.getIndex().recoveredBytes())); t.addCell(String.format(Locale.ROOT, "%1.1f%%", state.getIndex().recoveredBytesPercent())); - t.addCell(state.getIndex().totalBytes()); + t.addCell(new ByteSizeValue(state.getIndex().totalBytes())); t.addCell(state.getTranslog().totalOperations()); t.addCell(state.getTranslog().recoveredOperations()); t.addCell(String.format(Locale.ROOT, "%1.1f%%", state.getTranslog().recoveredPercent())); diff --git a/server/src/test/java/org/opensearch/rest/action/cat/RestRecoveryActionTests.java b/server/src/test/java/org/opensearch/rest/action/cat/RestRecoveryActionTests.java index 20fcac1089bc3..3ceb149a7c755 100644 --- a/server/src/test/java/org/opensearch/rest/action/cat/RestRecoveryActionTests.java +++ b/server/src/test/java/org/opensearch/rest/action/cat/RestRecoveryActionTests.java @@ -42,6 +42,7 @@ import org.opensearch.common.unit.TimeValue; import org.opensearch.common.xcontent.XContentOpenSearchExtension; import org.opensearch.core.action.support.DefaultShardOperationFailedException; +import org.opensearch.core.common.unit.ByteSizeValue; import org.opensearch.core.index.Index; import org.opensearch.core.index.shard.ShardId; import org.opensearch.indices.recovery.RecoveryState; @@ -186,10 +187,10 @@ public void testRestRecoveryAction() { state.getIndex().recoveredFileCount(), percent(state.getIndex().recoveredFilesPercent()), state.getIndex().totalFileCount(), - state.getIndex().totalRecoverBytes(), - state.getIndex().recoveredBytes(), + new ByteSizeValue(state.getIndex().totalRecoverBytes()), + new ByteSizeValue(state.getIndex().recoveredBytes()), percent(state.getIndex().recoveredBytesPercent()), - state.getIndex().totalBytes(), + new ByteSizeValue(state.getIndex().totalBytes()), state.getTranslog().totalOperations(), state.getTranslog().recoveredOperations(), percent(state.getTranslog().recoveredPercent())