[202205][chassis] update the asic_status.py to read from CHASSIS_FABRIC_ASIC_INFO_TABLE (#12780)

Signed-off-by: Arvindsrinivasan Lakshmi Narasimhan <arlakshm@microsoft.com>

Signed-off-by: Arvindsrinivasan Lakshmi Narasimhan <arlakshm@microsoft.com>
This commit is contained in:
arlakshm 2022-11-26 20:27:30 -08:00 committed by GitHub
parent 37cff8be2b
commit b86b3b0d7d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 17 deletions

View File

@ -48,21 +48,23 @@ if [ "$SUBTYPE" == "DualToR" ]; then
cp /usr/share/sonic/templates/tunnel_packet_handler.conf /etc/supervisor/conf.d/ cp /usr/share/sonic/templates/tunnel_packet_handler.conf /etc/supervisor/conf.d/
fi fi
IS_SUPERVISOR=/etc/sonic/chassisdb.conf
USE_PCI_ID_IN_CHASSIS_STATE_DB=/usr/share/sonic/platform/use_pci_id_chassis USE_PCI_ID_IN_CHASSIS_STATE_DB=/usr/share/sonic/platform/use_pci_id_chassis
ASIC_ID="asic$NAMESPACE_ID" ASIC_ID="asic$NAMESPACE_ID"
if [ -f "$USE_PCI_ID_IN_CHASSIS_STATE_DB" ]; then if [ -f "$IS_SUPERVISOR" ]; then
while true; do if [ -f "$USE_PCI_ID_IN_CHASSIS_STATE_DB" ]; then
PCI_ID=$(sonic-db-cli -s CHASSIS_STATE_DB HGET "CHASSIS_ASIC_TABLE|$ASIC_ID" asic_pci_address) while true; do
if [ -z "$PCI_ID" ]; then PCI_ID=$(sonic-db-cli -s CHASSIS_STATE_DB HGET "CHASSIS_ASIC_TABLE|$ASIC_ID" asic_pci_address)
sleep 3 if [ -z "$PCI_ID" ]; then
else sleep 3
# Update asic_id in CONFIG_DB, which is used by orchagent and fed to syncd else
if [[ $PCI_ID == ????:??:??.? ]]; then # Update asic_id in CONFIG_DB, which is used by orchagent and fed to syncd
sonic-db-cli CONFIG_DB HSET 'DEVICE_METADATA|localhost' 'asic_id' ${PCI_ID#*:} if [[ $PCI_ID == ????:??:??.? ]]; then
break sonic-db-cli CONFIG_DB HSET 'DEVICE_METADATA|localhost' 'asic_id' ${PCI_ID#*:}
break
fi
fi fi
fi done
done fi
fi fi
exec /usr/local/bin/supervisord exec /usr/local/bin/supervisord

View File

@ -17,7 +17,7 @@ except ImportError as e:
# Constants ==================================================================== # Constants ====================================================================
# #
SYSLOG_IDENTIFIER = 'asic_status.py' SYSLOG_IDENTIFIER = 'asic_status.py'
CHASSIS_ASIC_INFO_TABLE = 'CHASSIS_ASIC_TABLE' CHASSIS_FABRIC_ASIC_INFO_TABLE = 'CHASSIS_FABRIC_ASIC_TABLE'
SELECT_TIMEOUT_MSECS = 5000 SELECT_TIMEOUT_MSECS = 5000
def main(): def main():
@ -40,7 +40,7 @@ def main():
state_db = daemon_base.db_connect("CHASSIS_STATE_DB") state_db = daemon_base.db_connect("CHASSIS_STATE_DB")
sel = swsscommon.Select() sel = swsscommon.Select()
sst = swsscommon.SubscriberStateTable(state_db, CHASSIS_ASIC_INFO_TABLE) sst = swsscommon.SubscriberStateTable(state_db, CHASSIS_FABRIC_ASIC_INFO_TABLE)
sel.addSelectable(sst) sel.addSelectable(sst)
while True: while True:

View File

@ -26,7 +26,7 @@ NEIGH_DEVICE_METADATA_CFG_DB_TABLE = 'DEVICE_NEIGHBOR_METADATA'
DEFAULT_NAMESPACE = '' DEFAULT_NAMESPACE = ''
PORT_ROLE = 'role' PORT_ROLE = 'role'
CHASSIS_STATE_DB='CHASSIS_STATE_DB' CHASSIS_STATE_DB='CHASSIS_STATE_DB'
CHASSIS_ASIC_INFO_TABLE='CHASSIS_ASIC_TABLE' CHASSIS_FABRIC_ASIC_INFO_TABLE='CHASSIS_FABRIC_ASIC_TABLE'
# Dictionary to cache config_db connection handle per namespace # Dictionary to cache config_db connection handle per namespace
# to prevent duplicate connections from being opened # to prevent duplicate connections from being opened
@ -479,7 +479,7 @@ def get_asic_presence_list():
# Get asic list from CHASSIS_ASIC_TABLE which lists only the asics # Get asic list from CHASSIS_ASIC_TABLE which lists only the asics
# present based on Fabric card detection by the platform. # present based on Fabric card detection by the platform.
db = swsscommon.DBConnector(CHASSIS_STATE_DB, 0, True) db = swsscommon.DBConnector(CHASSIS_STATE_DB, 0, True)
asic_table = swsscommon.Table(db, CHASSIS_ASIC_INFO_TABLE) asic_table = swsscommon.Table(db, CHASSIS_FABRIC_ASIC_INFO_TABLE)
if asic_table: if asic_table:
asics_presence_list = list(asic_table.getKeys()) asics_presence_list = list(asic_table.getKeys())
for asic in asics_presence_list: for asic in asics_presence_list: