[chassis] update the asic_status.py to read from CHASSIS_FABRIC_ASIC_INFO_TABLE (#12576)
Signed-off-by: Arvindsrinivasan Lakshmi Narasimhan arlakshm@microsoft.com Why I did it Fixes #12575 and #12575 How I did it In the PR sonic-net/sonic-platform-daemons#311 chassisd updates to CHASSIS_FABRIC_ASIC_INFO with the fabric asic info. Updating the asic_status.py to read from the correct table. How to verify it test on chassis Signed-off-by: Arvindsrinivasan Lakshmi Narasimhan <arlakshm@microsoft.com>
This commit is contained in:
parent
d993444883
commit
7db272556e
@ -4,6 +4,7 @@ mkdir -p /etc/swss/config.d/
|
|||||||
mkdir -p /etc/supervisor/
|
mkdir -p /etc/supervisor/
|
||||||
mkdir -p /etc/supervisor/conf.d/
|
mkdir -p /etc/supervisor/conf.d/
|
||||||
|
|
||||||
|
|
||||||
CFGGEN_PARAMS=" \
|
CFGGEN_PARAMS=" \
|
||||||
-d \
|
-d \
|
||||||
{% if ENABLE_ASAN == "y" %}
|
{% if ENABLE_ASAN == "y" %}
|
||||||
@ -48,11 +49,13 @@ 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 "$IS_SUPERVISOR" ]; then
|
||||||
if [ -f "$USE_PCI_ID_IN_CHASSIS_STATE_DB" ]; then
|
if [ -f "$USE_PCI_ID_IN_CHASSIS_STATE_DB" ]; then
|
||||||
while true; do
|
while true; do
|
||||||
PCI_ID=$(sonic-db-cli -s CHASSIS_STATE_DB HGET "CHASSIS_ASIC_TABLE|$ASIC_ID" asic_pci_address)
|
PCI_ID=$(sonic-db-cli -s CHASSIS_STATE_DB HGET "CHASSIS_FABRIC_ASIC_TABLE|$ASIC_ID" asic_pci_address)
|
||||||
if [ -z "$PCI_ID" ]; then
|
if [ -z "$PCI_ID" ]; then
|
||||||
sleep 3
|
sleep 3
|
||||||
else
|
else
|
||||||
@ -64,5 +67,6 @@ if [ -f "$USE_PCI_ID_IN_CHASSIS_STATE_DB" ]; then
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
exec /usr/local/bin/supervisord
|
exec /usr/local/bin/supervisord
|
||||||
|
@ -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:
|
||||||
|
@ -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
|
||||||
@ -478,7 +478,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:
|
||||||
|
Reference in New Issue
Block a user