From 4766fcf100f1709dd598def1e96d74a69db12eb4 Mon Sep 17 00:00:00 2001 From: Abhishek Dosi Date: Sat, 3 Apr 2021 01:41:30 +0000 Subject: [PATCH 1/4] [submodule update] sonic-db-syncd df46ed418e661a9bccdb2639d8873def356f8ba0 (HEAD -> master, origin/master, origin/HEAD) Fix the LLDP_LOC_CHASSIS not getting populated if no remote neighbors are present (#39) e487532e11cc0e97cfce573b6b997fdd0beeb660 [CI] Set up CI&PR with Azure Pipelines (#38) 3c9f488490a1dbded20dbf2d8a88a5ab4dbda8df Replace swsssdk's SonicV2Connector with swsscommon's implementation (#35) Signed-off-by: Abhishek Dosi --- src/sonic-dbsyncd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-dbsyncd b/src/sonic-dbsyncd index 5cc29a1b32d8..df46ed418e66 160000 --- a/src/sonic-dbsyncd +++ b/src/sonic-dbsyncd @@ -1 +1 @@ -Subproject commit 5cc29a1b32d8d1f4dfbc967bfea2727c50a49c76 +Subproject commit df46ed418e661a9bccdb2639d8873def356f8ba0 From ca4e2ae61f45bdfaf8bd55844cf71baec2c476cc Mon Sep 17 00:00:00 2001 From: Abhishek Dosi Date: Fri, 19 Aug 2022 20:43:34 +0000 Subject: [PATCH 2/4] Added new API to return runtime metdata as needed during Feature Table field rendering by hostcfgd. Signed-off-by: Abhishek Dosi --- src/sonic-py-common/sonic_py_common/device_info.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/sonic-py-common/sonic_py_common/device_info.py b/src/sonic-py-common/sonic_py_common/device_info.py index 6126dd6dd284..cbb5d8bd38cd 100644 --- a/src/sonic-py-common/sonic_py_common/device_info.py +++ b/src/sonic-py-common/sonic_py_common/device_info.py @@ -432,7 +432,7 @@ def is_multi_npu(): def is_voq_chassis(): switch_type = get_platform_info().get('switch_type') - return True if switch_type and switch_type == 'voq' else False + return True if switch_type and (switch_type == 'voq' or switch_type == 'fabric') else False def is_packet_chassis(): @@ -441,7 +441,7 @@ def is_packet_chassis(): def is_chassis(): - return is_voq_chassis() or is_packet_chassis() + return is_voq_chassis() or is_packet_chassis() or is_supervisor() def is_supervisor(): @@ -459,6 +459,14 @@ def is_supervisor(): return True return False +def get_device_runtime_metadata(): + chassis_metada = {} + if is_chassis(): + chassis_metadata = {'CHASSIS_METADATA': {'module_type' : 'supervisor' if is_supervisor() else 'linecard', + 'chassis_type': 'voq' if is_voq_chassis() else 'packet'}} + + port_metadata = {'ETHERNET_PORTS_PRESENT': True if get_path_to_port_config_file(hwsku=None, asic="0" if is_multi_npu() else None) else False} + return {'DEVICE_RUNTIME_METADATA': chassis_metadata | port_metadata } def get_npu_id_from_name(npu_name): if npu_name.startswith(NPU_NAME_PREFIX): From f46e6ba3e83928acd119a8eab0c89218b2f951b1 Mon Sep 17 00:00:00 2001 From: Abhishek Dosi Date: Thu, 25 Aug 2022 14:30:35 +0000 Subject: [PATCH 3/4] Address review Comment Signed-off-by: Abhishek Dosi --- src/sonic-py-common/sonic_py_common/device_info.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-py-common/sonic_py_common/device_info.py b/src/sonic-py-common/sonic_py_common/device_info.py index cbb5d8bd38cd..c6cf2d17bc93 100644 --- a/src/sonic-py-common/sonic_py_common/device_info.py +++ b/src/sonic-py-common/sonic_py_common/device_info.py @@ -441,7 +441,7 @@ def is_packet_chassis(): def is_chassis(): - return is_voq_chassis() or is_packet_chassis() or is_supervisor() + return is_voq_chassis() or is_packet_chassis() def is_supervisor(): From 8094cc8020b0ebe65c5f07e8176eab9df3fb3827 Mon Sep 17 00:00:00 2001 From: Abhishek Dosi Date: Thu, 25 Aug 2022 14:35:49 +0000 Subject: [PATCH 4/4] Fix LGTM Signed-off-by: Abhishek Dosi --- src/sonic-py-common/sonic_py_common/device_info.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sonic-py-common/sonic_py_common/device_info.py b/src/sonic-py-common/sonic_py_common/device_info.py index c6cf2d17bc93..fdb6f335fafe 100644 --- a/src/sonic-py-common/sonic_py_common/device_info.py +++ b/src/sonic-py-common/sonic_py_common/device_info.py @@ -460,7 +460,7 @@ def is_supervisor(): return False def get_device_runtime_metadata(): - chassis_metada = {} + chassis_metadata = {} if is_chassis(): chassis_metadata = {'CHASSIS_METADATA': {'module_type' : 'supervisor' if is_supervisor() else 'linecard', 'chassis_type': 'voq' if is_voq_chassis() else 'packet'}}