From edbdbf4ef7f9f7362bff2b10807777bcb594c636 Mon Sep 17 00:00:00 2001 From: Jostar Yang Date: Fri, 4 May 2018 17:00:32 +0800 Subject: [PATCH 1/2] Moodify onlp_psui_info_get to ignore not-support feature in PSU. --- .../onlp/builds/src/module/src/psui.c | 26 +++++++++++++++---- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/packages/platforms/accton/x86-64/x86-64-accton-csp9250/onlp/builds/src/module/src/psui.c b/packages/platforms/accton/x86-64/x86-64-accton-csp9250/onlp/builds/src/module/src/psui.c index c6ece5c8..26962c3c 100755 --- a/packages/platforms/accton/x86-64/x86-64-accton-csp9250/onlp/builds/src/module/src/psui.c +++ b/packages/platforms/accton/x86-64/x86-64-accton-csp9250/onlp/builds/src/module/src/psui.c @@ -27,6 +27,7 @@ #include //#include #include +#include #include "platform_lib.h" #define PSU_STATUS_PRESENT 1 @@ -128,6 +129,21 @@ static onlp_psu_info_t pinfo[] = { ONLP_PSU_ID_CREATE(PSU2_ID), "PSU-2", 0 }, } }; +/* return code=0:no such file or the file content is invalid + * return code=1:file content is valid + */ +static int onlp_psui_check_file_valid(char* const file_path) +{ + struct stat file_info; + if(stat(file_path ,&file_info)==0) + { + if(file_info.st_size==0) + return 0; + return 1; + } + else + return 0; +} int onlp_psui_info_get(onlp_oid_t id, onlp_psu_info_t* info) @@ -159,6 +175,10 @@ onlp_psui_info_get(onlp_oid_t id, onlp_psu_info_t* info) find=psu_sensor_table[index-1].psu_dev_info_table[i].find; snprintf(cmd , (PSU_MAX_LENGTH/2)-1, "cat %s|grep %s > %s", PSU_IPMI_TMP_FILE, tag, PSU_IPMI_TMP_FILE_ONE_ENTRY); system(cmd); + if(!onlp_psui_check_file_valid(PSU_IPMI_TMP_FILE_ONE_ENTRY)) + { + continue; + } if(onlp_file_read(data, PSU_MAX_LENGTH, &size, PSU_IPMI_TMP_FILE_ONE_ENTRY)!=ONLP_STATUS_OK) { return ONLP_STATUS_E_INTERNAL; @@ -221,11 +241,7 @@ onlp_psui_info_get(onlp_oid_t id, onlp_psu_info_t* info) if(info->mpout == 0) info->status |= ONLP_PSU_STATUS_FAILED; - - /* Set the associated oid_table */ - info->hdr.coids[0] = ONLP_FAN_ID_CREATE(index + CHASSIS_FAN_COUNT); - info->hdr.coids[1] = ONLP_THERMAL_ID_CREATE(index + CHASSIS_THERMAL_COUNT); - + ret = ONLP_STATUS_OK; return ret; From 2bcaf1def83b393eef65473411d57d9a0592d8cb Mon Sep 17 00:00:00 2001 From: jostar-yang Date: Fri, 4 May 2018 17:06:34 +0800 Subject: [PATCH 2/2] Update psui.c --- .../x86-64-accton-csp9250/onlp/builds/src/module/src/psui.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/platforms/accton/x86-64/x86-64-accton-csp9250/onlp/builds/src/module/src/psui.c b/packages/platforms/accton/x86-64/x86-64-accton-csp9250/onlp/builds/src/module/src/psui.c index 26962c3c..89508e55 100755 --- a/packages/platforms/accton/x86-64/x86-64-accton-csp9250/onlp/builds/src/module/src/psui.c +++ b/packages/platforms/accton/x86-64/x86-64-accton-csp9250/onlp/builds/src/module/src/psui.c @@ -25,7 +25,6 @@ ***********************************************************/ #include #include -//#include #include #include #include "platform_lib.h" @@ -148,10 +147,8 @@ static int onlp_psui_check_file_valid(char* const file_path) int onlp_psui_info_get(onlp_oid_t id, onlp_psu_info_t* info) { -// int val = 0; int ret = ONLP_STATUS_OK; int index = ONLP_OID_ID_GET(id); - //psu_type_t psu_type; int size=0; onlp_psu_info_id_t i; char cmd[PSU_MAX_LENGTH/2]={0};