fix #2904: zpool status: parse vdevs with state but without statistics
some vdevs (e.g. spares) have a 'state' (e.g. AVAIL), but not statistics like READ/WRITE/etc. Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
This commit is contained in:
parent
c162df60c8
commit
934deeff2d
|
@ -67,6 +67,19 @@ fn parse_zpool_status_vdev(i: &str) -> IResult<&str, ZFSPoolVDevState> {
|
||||||
}
|
}
|
||||||
|
|
||||||
let (i, state) = preceded(multispace1, notspace1)(i)?;
|
let (i, state) = preceded(multispace1, notspace1)(i)?;
|
||||||
|
if let Ok((n, _)) = preceded(multispace0, line_ending)(i) { // spares
|
||||||
|
let vdev = ZFSPoolVDevState {
|
||||||
|
name: vdev_name.to_string(),
|
||||||
|
lvl: indent_level,
|
||||||
|
state: Some(state.to_string()),
|
||||||
|
read: None,
|
||||||
|
write: None,
|
||||||
|
cksum: None,
|
||||||
|
msg: None,
|
||||||
|
};
|
||||||
|
return Ok((n, vdev));
|
||||||
|
}
|
||||||
|
|
||||||
let (i, read) = preceded(multispace1, parse_u64)(i)?;
|
let (i, read) = preceded(multispace1, parse_u64)(i)?;
|
||||||
let (i, write) = preceded(multispace1, parse_u64)(i)?;
|
let (i, write) = preceded(multispace1, parse_u64)(i)?;
|
||||||
let (i, cksum) = preceded(multispace1, parse_u64)(i)?;
|
let (i, cksum) = preceded(multispace1, parse_u64)(i)?;
|
||||||
|
|
Loading…
Reference in New Issue