针对预估寿命信息这个属性,目前存在2个问题:
1、有时候显示为- -,有时候不显示该属性,表现上有一点不稳定
2、从来没有显示为一个有效值,是否不支持该属性?
针对问题1,目前分析情况如下,当EstimatedRemainingLifespan被配置为null的时候,这种情况下WEB不会显示该属性,在EstimatedRemainingLifespan被配置为4294967294的时候(0xfffffffe),WEB上会显示该属性,显示为–。
4294967294应该是个无效值
local U32_MAX = 4294967295
local DRIVE_ESTIMATED_LIFESPAN_UNSUPPORT = 4294967294
webui\src\pages\System\Storage\components\drivers\drivers.service.ts文件里面也有判断,当estimatedRemainingLifespan为4294967294 的时候显示为- -
const estimatedRemainingLifespan = bodyData.EstimatedRemainingLifespan === 4294967294 ?
‘–’ : isEmptyProperty(bodyData.EstimatedRemainingLifespan);
通过rackmount\interface_config\web_backend\mapping_config\System\Storage.json文件,“Uri”: "/UI/Rest/System/Storage/Drives/:id"里面获取该属性的定义来看,是通过判断该值是否为0xffffffff,如果是则显示为null,否则显示为原值。
“GetEstimatedRemainingLifespan”: {
“Input”: “${ProcessingFlow[6]/Destination/EstimatedRemainingLifespan}”,
“Steps”: [
{
“Type”: “Script”,
“Formula”: “return (ProcessingFlow[6].Destination.EstimatedRemainingLifespan ~= 0xFFFFFFFF) and ProcessingFlow[6].Destination.EstimatedRemainingLifespan or cjson.null”
}
]
}
通过storage\src\lualib\pd\pd_identify_service.lua文件,function pd_identify_service:set_subhealth_default_values(drive)函数的定义来看,EstimatedRemainingLifespan 的值被初始化为0xffffffff
function pd_identify_service:set_subhealth_default_values(drive)
drive.EstimatedRemainingLifespan = common_def.INVALID_U32
drive.EstimatedRemainingLifespan = common_def.INVALID_U32
…
local common_def = {
…
INVALID_U32 = 0xffffffff,
那么后面是在哪个阶段,EstimatedRemainingLifespan 属性被重新赋值为了4294967294?
是通过这个函数去获取的EstimatedRemainingLifespan信息吗?
local ok, ret = pcall(sml.pd_log_write_subhealthy_info, self.RefControllerId,
self.EstimatedRemainingLifespan, basic_info)
这个值为什么一直是个无效值的状态?如果不支持该属性,是不是可以一直不显示?
