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:
		
				
					committed by
					
						 Fabian Grünbichler
						Fabian Grünbichler
					
				
			
			
				
	
			
			
			
						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)?; | ||||
|     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, write) = preceded(multispace1, parse_u64)(i)?; | ||||
|     let (i, cksum) = preceded(multispace1, parse_u64)(i)?; | ||||
|  | ||||
		Reference in New Issue
	
	Block a user