From: Yaarit Hatuka Date: Tue, 22 Feb 2022 19:22:09 +0000 (+0000) Subject: mgr/devicehealth: skip null pages when extracting wear level X-Git-Tag: v18.0.0~1340^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=2864ac30d4170ba7b5f60ae01ecfdeee707e026a;p=ceph-ci.git mgr/devicehealth: skip null pages when extracting wear level Some devices have null pages in their ata_device_statistics struct; skip those pages in order to avoid an AttributeError when extracting device's wear level. Fixes: https://tracker.ceph.com/issues/51554 Signed-off-by: Yaarit Hatuka --- diff --git a/src/pybind/mgr/devicehealth/module.py b/src/pybind/mgr/devicehealth/module.py index 9b6c1fe431c..056e28208cf 100644 --- a/src/pybind/mgr/devicehealth/module.py +++ b/src/pybind/mgr/devicehealth/module.py @@ -29,7 +29,7 @@ def get_ata_wear_level(data: Dict[Any, Any]) -> Optional[float]: Extract wear level (as float) from smartctl -x --json output for SATA SSD """ for page in data.get("ata_device_statistics", {}).get("pages", []): - if page.get("number") != 7: + if page is None or page.get("number") != 7: continue for item in page.get("table", []): if item["offset"] == 8: