From 1b89648c18e21439d7e2953e6f130606515b21fa Mon Sep 17 00:00:00 2001 From: abdosi <58047199+abdosi@users.noreply.github.com> Date: Fri, 26 Aug 2022 08:04:00 -0700 Subject: [PATCH] New API to support runtime metadata needed for Feature Table field jinja rendering. (#11795) Added new API to return runtime metadata dictionary as needed during Feature Table field rendering by hostcfgd. --- src/sonic-py-common/sonic_py_common/device_info.py | 10 +++++++++- 1 file changed, 9 insertions(+), 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 f98fa2df1e..8bff16fdf0 100644 --- a/src/sonic-py-common/sonic_py_common/device_info.py +++ b/src/sonic-py-common/sonic_py_common/device_info.py @@ -433,7 +433,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(): @@ -460,6 +460,14 @@ def is_supervisor(): return True return False +def get_device_runtime_metadata(): + 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'}} + + 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):