From 877bccdc26f0bf86805f2ae2e032470fc6831cda Mon Sep 17 00:00:00 2001 From: Wirut Getbamrung Date: Fri, 30 Nov 2018 16:21:18 +0700 Subject: [PATCH 1/2] Update device plugins to support null fru data --- .../plugins/fanutil.py | 15 +++++---------- .../plugins/psuutil.py | 10 ++++++---- .../plugins/fanutil.py | 15 +++++---------- .../plugins/psuutil.py | 10 ++++++---- .../plugins/fanutil.py | 17 ++++++----------- .../plugins/psuutil.py | 10 ++++++---- 6 files changed, 34 insertions(+), 43 deletions(-) diff --git a/device/alibaba/x86_64-alibaba_as13-32h-cl-r0/plugins/fanutil.py b/device/alibaba/x86_64-alibaba_as13-32h-cl-r0/plugins/fanutil.py index b6eb3b18ab35..ea2b920afefb 100644 --- a/device/alibaba/x86_64-alibaba_as13-32h-cl-r0/plugins/fanutil.py +++ b/device/alibaba/x86_64-alibaba_as13-32h-cl-r0/plugins/fanutil.py @@ -245,7 +245,7 @@ def get_all(self): # Get the number of fans n_fan = self.get_num_fans() - all_fan_dict["Number"] = len(self.fru_data_list) + all_fan_dict["Number"] = n_fan # Set fan FRU data. fan_fru_dict = dict() @@ -254,12 +254,7 @@ def get_all(self): continue fru_dict = dict() fan_key = fan_fru[0].split() - fan_sn = "N/A" - fan_pn = "N/A" - fan_speed = "N/A" - fan_ht = "N/A" fan_ps = False - fan_lt = "N/A" if str(fan_key[-1]).lower() == "absent": fan_idx = int(re.findall('\d+', fan_key[0])[0]) @@ -268,11 +263,11 @@ def get_all(self): fan_ps = True pn = [s for s in fan_fru if "Part" in s] sn = [s for s in fan_fru if "Serial" in s] - fan_pn = pn[0].split()[-1] if len(pn) > 0 else 'N/A' - fan_sn = sn[0].split()[-1] if len(sn) > 0 else 'N/A' + fan_pn = pn[0].split(":")[-1].strip() if len(pn) > 0 else 'N/A' + fan_sn = sn[0].split(":")[-1].strip() if len(sn) > 0 else 'N/A' - fru_dict["PN"] = fan_pn - fru_dict["SN"] = fan_sn + fru_dict["PN"] = "N/A" if not fan_pn or fan_pn == "" else fan_pn + fru_dict["SN"] = "N/A" if not fan_sn or fan_sn == "" else fan_sn fru_dict["Present"] = fan_ps fan_fru_dict[fan_idx] = fru_dict diff --git a/device/alibaba/x86_64-alibaba_as13-32h-cl-r0/plugins/psuutil.py b/device/alibaba/x86_64-alibaba_as13-32h-cl-r0/plugins/psuutil.py index 59bcf449c2a2..b37af6d2a93e 100644 --- a/device/alibaba/x86_64-alibaba_as13-32h-cl-r0/plugins/psuutil.py +++ b/device/alibaba/x86_64-alibaba_as13-32h-cl-r0/plugins/psuutil.py @@ -194,10 +194,12 @@ def get_all(self): psu_info_dict = dict() for psu_fru in self.psu_info_list: psu_data = dict() - psu_data["PN"] = str(psu_fru.get(psu_pn_key)).strip( - ) if psu_fru.get(psu_pn_key) is not None else "N/A" - psu_data["SN"] = str(psu_fru.get(psu_sn_key)).strip( - ) if psu_fru.get(psu_sn_key) is not None else "N/A" + pn = psu_fru.get(psu_pn_key) + sn = psu_fru.get(psu_sn_key) + psu_data["PN"] = "N/A" if not pn or str( + pn).strip() == "" else str(pn).strip() + psu_data["SN"] = "N/A" if not pn or str( + pn).strip() == "" else str(sn).strip() raw_key = [v for v in psu_fru.keys() if 'PSU' in v] if len(raw_key) > 0: psu_idx = int(re.findall('\d+', raw_key[0])[0]) diff --git a/device/alibaba/x86_64-alibaba_as13-48f8h-cl-r0/plugins/fanutil.py b/device/alibaba/x86_64-alibaba_as13-48f8h-cl-r0/plugins/fanutil.py index b6eb3b18ab35..ea2b920afefb 100644 --- a/device/alibaba/x86_64-alibaba_as13-48f8h-cl-r0/plugins/fanutil.py +++ b/device/alibaba/x86_64-alibaba_as13-48f8h-cl-r0/plugins/fanutil.py @@ -245,7 +245,7 @@ def get_all(self): # Get the number of fans n_fan = self.get_num_fans() - all_fan_dict["Number"] = len(self.fru_data_list) + all_fan_dict["Number"] = n_fan # Set fan FRU data. fan_fru_dict = dict() @@ -254,12 +254,7 @@ def get_all(self): continue fru_dict = dict() fan_key = fan_fru[0].split() - fan_sn = "N/A" - fan_pn = "N/A" - fan_speed = "N/A" - fan_ht = "N/A" fan_ps = False - fan_lt = "N/A" if str(fan_key[-1]).lower() == "absent": fan_idx = int(re.findall('\d+', fan_key[0])[0]) @@ -268,11 +263,11 @@ def get_all(self): fan_ps = True pn = [s for s in fan_fru if "Part" in s] sn = [s for s in fan_fru if "Serial" in s] - fan_pn = pn[0].split()[-1] if len(pn) > 0 else 'N/A' - fan_sn = sn[0].split()[-1] if len(sn) > 0 else 'N/A' + fan_pn = pn[0].split(":")[-1].strip() if len(pn) > 0 else 'N/A' + fan_sn = sn[0].split(":")[-1].strip() if len(sn) > 0 else 'N/A' - fru_dict["PN"] = fan_pn - fru_dict["SN"] = fan_sn + fru_dict["PN"] = "N/A" if not fan_pn or fan_pn == "" else fan_pn + fru_dict["SN"] = "N/A" if not fan_sn or fan_sn == "" else fan_sn fru_dict["Present"] = fan_ps fan_fru_dict[fan_idx] = fru_dict diff --git a/device/alibaba/x86_64-alibaba_as13-48f8h-cl-r0/plugins/psuutil.py b/device/alibaba/x86_64-alibaba_as13-48f8h-cl-r0/plugins/psuutil.py index 59bcf449c2a2..b37af6d2a93e 100644 --- a/device/alibaba/x86_64-alibaba_as13-48f8h-cl-r0/plugins/psuutil.py +++ b/device/alibaba/x86_64-alibaba_as13-48f8h-cl-r0/plugins/psuutil.py @@ -194,10 +194,12 @@ def get_all(self): psu_info_dict = dict() for psu_fru in self.psu_info_list: psu_data = dict() - psu_data["PN"] = str(psu_fru.get(psu_pn_key)).strip( - ) if psu_fru.get(psu_pn_key) is not None else "N/A" - psu_data["SN"] = str(psu_fru.get(psu_sn_key)).strip( - ) if psu_fru.get(psu_sn_key) is not None else "N/A" + pn = psu_fru.get(psu_pn_key) + sn = psu_fru.get(psu_sn_key) + psu_data["PN"] = "N/A" if not pn or str( + pn).strip() == "" else str(pn).strip() + psu_data["SN"] = "N/A" if not pn or str( + pn).strip() == "" else str(sn).strip() raw_key = [v for v in psu_fru.keys() if 'PSU' in v] if len(raw_key) > 0: psu_idx = int(re.findall('\d+', raw_key[0])[0]) diff --git a/device/alibaba/x86_64-alibaba_as23-128h-cl-r0/plugins/fanutil.py b/device/alibaba/x86_64-alibaba_as23-128h-cl-r0/plugins/fanutil.py index 3d70a4646dc3..af6e69679dd2 100644 --- a/device/alibaba/x86_64-alibaba_as23-128h-cl-r0/plugins/fanutil.py +++ b/device/alibaba/x86_64-alibaba_as23-128h-cl-r0/plugins/fanutil.py @@ -240,7 +240,7 @@ def get_all(self): # Get the number of fans n_fan = self.get_num_fans() - all_fan_dict["Number"] = len(self.fru_data_list) + all_fan_dict["Number"] = n_fan # Set fan FRU data. fan_fru_dict = dict() @@ -249,12 +249,7 @@ def get_all(self): continue fru_dict = dict() fan_key = fan_fru[0].split() - fan_sn = "N/A" - fan_pn = "N/A" - fan_speed = "N/A" - fan_ht = "N/A" fan_ps = False - fan_lt = "N/A" if str(fan_key[-1]).lower() == "absent": fan_idx = int(re.findall('\d+', fan_key[0])[0]) @@ -263,11 +258,11 @@ def get_all(self): fan_ps = True pn = [s for s in fan_fru if "Part" in s] sn = [s for s in fan_fru if "Serial" in s] - fan_pn = pn[0].split()[-1] if len(pn) > 0 else 'N/A' - fan_sn = sn[0].split()[-1] if len(sn) > 0 else 'N/A' + fan_pn = pn[0].split(":")[-1].strip() if len(pn) > 0 else 'N/A' + fan_sn = sn[0].split(":")[-1].strip() if len(sn) > 0 else 'N/A' - fru_dict["PN"] = fan_pn - fru_dict["SN"] = fan_sn + fru_dict["PN"] = "N/A" if not fan_pn or fan_pn == "" else fan_pn + fru_dict["SN"] = "N/A" if not fan_sn or fan_sn == "" else fan_sn fru_dict["Present"] = fan_ps fan_fru_dict[fan_idx] = fru_dict @@ -295,4 +290,4 @@ def get_all(self): all_fan_dict[fan_name] = fan_dict break - return all_fan_dict + return all_fan_dict \ No newline at end of file diff --git a/device/alibaba/x86_64-alibaba_as23-128h-cl-r0/plugins/psuutil.py b/device/alibaba/x86_64-alibaba_as23-128h-cl-r0/plugins/psuutil.py index 2a12cbbeec48..6275caea79c4 100644 --- a/device/alibaba/x86_64-alibaba_as23-128h-cl-r0/plugins/psuutil.py +++ b/device/alibaba/x86_64-alibaba_as23-128h-cl-r0/plugins/psuutil.py @@ -189,10 +189,12 @@ def get_all(self): psu_info_dict = dict() for psu_fru in self.psu_info_list: psu_data = dict() - psu_data["PN"] = str(psu_fru.get(psu_pn_key)).strip( - ) if psu_fru.get(psu_pn_key) is not None else "N/A" - psu_data["SN"] = str(psu_fru.get(psu_sn_key)).strip( - ) if psu_fru.get(psu_sn_key) is not None else "N/A" + pn = psu_fru.get(psu_pn_key) + sn = psu_fru.get(psu_sn_key) + psu_data["PN"] = "N/A" if not pn or str( + pn).strip() == "" else str(pn).strip() + psu_data["SN"] = "N/A" if not pn or str( + pn).strip() == "" else str(sn).strip() raw_key = [v for v in psu_fru.keys() if 'PSU' in v] if len(raw_key) > 0: psu_idx = int(re.findall('\d+', raw_key[0])[0]) From 3b1bfea22af79254d3db6ac26f3676fab77f5119 Mon Sep 17 00:00:00 2001 From: Wirut Getbamrung Date: Fri, 30 Nov 2018 16:25:04 +0700 Subject: [PATCH 2/2] Update device config permitted list to allow specific bcm config --- src/sonic-device-data/tests/permitted_list | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/sonic-device-data/tests/permitted_list b/src/sonic-device-data/tests/permitted_list index a15ee40f2f67..29570987a09d 100644 --- a/src/sonic-device-data/tests/permitted_list +++ b/src/sonic-device-data/tests/permitted_list @@ -148,4 +148,6 @@ ifp_inports_support_enable memlist_enable pbmp_gport_stack.0 reglist_enable -cls_cmd_daemon \ No newline at end of file +cls_cmd_daemon +serdes_lane_config_dfe +serdes_fec_enable \ No newline at end of file