_cat/allocation to return no value for `disk.total` when not available (e.g. non data nodes) instead of `-1b`

Closes #5948
This commit is contained in:
javanna 2014-04-26 16:46:34 +02:00 committed by Luca Cavanna
parent 81e83cca74
commit aa4dc092da
1 changed files with 11 additions and 7 deletions

View File

@ -123,19 +123,23 @@ public class RestAllocationAction extends AbstractCatAction {
shardCount = allocs.lget();
}
long used = nodeStats.getFs().getTotal().getTotal().bytes() - nodeStats.getFs().getTotal().getAvailable().bytes();
long avail = nodeStats.getFs().getTotal().getAvailable().bytes();
ByteSizeValue total = nodeStats.getFs().getTotal().getTotal();
ByteSizeValue avail = nodeStats.getFs().getTotal().getAvailable();
//if we don't know how much we use (non data nodes), it means 0
long used = 0;
short diskPercent = -1;
if (used >= 0 && avail >= 0) {
diskPercent = (short) (used * 100 / (used + avail));
if (total.bytes() > 0) {
used = total.bytes() - avail.bytes();
if (used >= 0 && avail.bytes() >= 0) {
diskPercent = (short) (used * 100 / (used + avail.bytes()));
}
}
table.startRow();
table.addCell(shardCount);
table.addCell(used < 0 ? null : new ByteSizeValue(used));
table.addCell(avail < 0 ? null : new ByteSizeValue(avail));
table.addCell(nodeStats.getFs().getTotal().getTotal());
table.addCell(avail.bytes() < 0 ? null : avail);
table.addCell(total.bytes() < 0 ? null : total);
table.addCell(diskPercent < 0 ? null : diskPercent);
table.addCell(node.getHostName());
table.addCell(node.getHostAddress());