[sonic_py_common][device info] APIs to return chassis type (voq or packet) (#9227)
This commit is contained in:
parent
ca3a034e6f
commit
2680491c03
@ -111,7 +111,7 @@ def get_platform():
|
||||
# container in SONiC, where the /host directory is not mounted. In this
|
||||
# case the value should already be populated in Config DB so we finally
|
||||
# try reading it from there.
|
||||
|
||||
|
||||
return get_localhost_info('platform')
|
||||
|
||||
|
||||
@ -210,6 +210,7 @@ def get_path_to_platform_dir():
|
||||
|
||||
return platform_path
|
||||
|
||||
|
||||
def get_path_to_hwsku_dir():
|
||||
"""
|
||||
Retreives the path to the device's hardware SKU data directory
|
||||
@ -228,6 +229,7 @@ def get_path_to_hwsku_dir():
|
||||
|
||||
return hwsku_path
|
||||
|
||||
|
||||
def get_paths_to_platform_and_hwsku_dirs():
|
||||
"""
|
||||
Retreives the paths to the device's platform and hardware SKU data
|
||||
@ -249,6 +251,7 @@ def get_paths_to_platform_and_hwsku_dirs():
|
||||
|
||||
return (platform_path, hwsku_path)
|
||||
|
||||
|
||||
def get_path_to_port_config_file(hwsku=None, asic=None):
|
||||
"""
|
||||
Retrieves the path to the device's port configuration file
|
||||
@ -351,6 +354,17 @@ def get_platform_info():
|
||||
hw_info_dict['asic_type'] = version_info['asic_type']
|
||||
hw_info_dict['asic_count'] = get_num_asics()
|
||||
|
||||
try:
|
||||
config_db = ConfigDBConnector()
|
||||
config_db.connect()
|
||||
|
||||
metadata = config_db.get_table('DEVICE_METADATA')["localhost"]
|
||||
switch_type = metadata.get('switch_type')
|
||||
if switch_type:
|
||||
hw_info_dict['switch_type'] = switch_type
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
return hw_info_dict
|
||||
|
||||
|
||||
@ -398,6 +412,20 @@ def is_multi_npu():
|
||||
return (num_npus > 1)
|
||||
|
||||
|
||||
def is_voq_chassis():
|
||||
switch_type = get_platform_info().get('switch_type')
|
||||
return True if switch_type and switch_type == 'voq' else False
|
||||
|
||||
|
||||
def is_packet_chassis():
|
||||
switch_type = get_platform_info().get('switch_type')
|
||||
return True if switch_type and switch_type == 'chassis-packet' else False
|
||||
|
||||
|
||||
def is_chassis():
|
||||
return is_voq_chassis() or is_packet_chassis()
|
||||
|
||||
|
||||
def is_supervisor():
|
||||
platform_env_conf_file_path = get_platform_env_conf_file_path()
|
||||
if platform_env_conf_file_path is None:
|
||||
@ -412,7 +440,7 @@ def is_supervisor():
|
||||
if val == '1':
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
|
||||
def get_npu_id_from_name(npu_name):
|
||||
if npu_name.startswith(NPU_NAME_PREFIX):
|
||||
@ -550,6 +578,7 @@ def get_system_routing_stack():
|
||||
|
||||
return result
|
||||
|
||||
|
||||
# Check if System warm reboot or Container warm restart is enabled.
|
||||
def is_warm_restart_enabled(container_name):
|
||||
state_db = SonicV2Connector(host='127.0.0.1')
|
||||
@ -571,6 +600,7 @@ def is_warm_restart_enabled(container_name):
|
||||
state_db.close(state_db.STATE_DB)
|
||||
return wr_enable_state
|
||||
|
||||
|
||||
# Check if System fast reboot is enabled.
|
||||
def is_fast_reboot_enabled():
|
||||
fb_system_state = 0
|
||||
|
Loading…
Reference in New Issue
Block a user