Skip to content

Commit

Permalink
Revert "Reliable TSA implementation (sonic-net#18928)" (sonic-net#19173)
Browse files Browse the repository at this point in the history
This reverts commit 9d5fb20.
  • Loading branch information
bingwang-ms authored Jun 3, 2024
1 parent b4c2ee0 commit ab08b78
Show file tree
Hide file tree
Showing 11 changed files with 16 additions and 328 deletions.
14 changes: 2 additions & 12 deletions dockers/docker-fpm-frr/base_image_files/TS
Original file line number Diff line number Diff line change
Expand Up @@ -6,23 +6,13 @@
PLATFORM=${PLATFORM:-`sonic-cfggen -H -v DEVICE_METADATA.localhost.platform`}

if [[ $1 == "TSA" ]]; then
TSA_CHASSIS_STATE="$(sonic-db-cli CHASSIS_APP_DB HGET "BGP_DEVICE_GLOBAL|STATE" tsa_enabled)"
TSA_STATE_UPDATE='{"BGP_DEVICE_GLOBAL":{"STATE":{"tsa_enabled": "true"}}}'
if [[ $TSA_CHASSIS_STATE == true ]]; then
log_msg='System Mode: Maintenance -> Maintenance'
else
log_msg='System Mode: Normal -> Maintenance'
fi
log_msg='System Mode: Normal -> Maintenance'
err_msg='System is already in Maintenance'
desired_tsa_state=true
elif [[ $1 == "TSB" ]]; then
TSA_CHASSIS_STATE="$(sonic-db-cli CHASSIS_APP_DB HGET "BGP_DEVICE_GLOBAL|STATE" tsa_enabled)"
TSA_STATE_UPDATE='{"BGP_DEVICE_GLOBAL":{"STATE":{"tsa_enabled": "false"}}}'
if [[ $TSA_CHASSIS_STATE == true ]]; then
log_msg='System Mode: Maintenance -> Maintenance'
else
log_msg='System Mode: Maintenance -> Normal'
fi
log_msg='System Mode: Maintenance -> Normal'
err_msg='System is already in Normal mode'
desired_tsa_state=false
fi
Expand Down
13 changes: 1 addition & 12 deletions dockers/docker-fpm-frr/base_image_files/TSA
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,7 @@ if [ "$EUID" -ne 0 ] ; then
fi

if [ -f /etc/sonic/chassisdb.conf ]; then
CHASSIS_TSA_STATE_UPDATE="CHASSIS_APP_DB HMSET "BGP_DEVICE_GLOBAL\|STATE" tsa_enabled "true""
CONFIG_DB_TSA_STATE_UPDATE='{"BGP_DEVICE_GLOBAL":{"STATE":{"tsa_enabled": "true"}}}'
current_tsa_state="$(sonic-cfggen -d -v BGP_DEVICE_GLOBAL.STATE.tsa_enabled)"
if [[ $current_tsa_state == true ]]; then
echo "Chassis is already in Maintenance"
logger -t TSA -p user.info "Chassis is already in Maintenance"
else
sonic-db-cli $CHASSIS_TSA_STATE_UPDATE
sonic-cfggen -a "$CONFIG_DB_TSA_STATE_UPDATE" -w
echo "Chassis Mode: Normal -> Maintenance"
logger -t TSA -p user.info "Chassis Mode: Normal -> Maintenance"
fi
rexec all -c "sudo TSA chassis"
echo "Please execute \"rexec all -c 'sudo config save -y'\" to preserve System mode in Maintenance after reboot\
or config reload on all linecards"
exit 0
Expand Down
16 changes: 3 additions & 13 deletions dockers/docker-fpm-frr/base_image_files/TSB
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,11 @@ if [ "$EUID" -ne 0 ] ; then
exit 1
fi

# If run on supervisor of chassis, trigger remote execution of TSB on all linecards
if [ -f /etc/sonic/chassisdb.conf ]; then
CHASSIS_TSA_STATE_UPDATE="CHASSIS_APP_DB HMSET "BGP_DEVICE_GLOBAL\|STATE" tsa_enabled "false""
CONFIG_DB_TSA_STATE_UPDATE='{"BGP_DEVICE_GLOBAL":{"STATE":{"tsa_enabled": "false"}}}'
current_tsa_state="$(sonic-cfggen -d -v BGP_DEVICE_GLOBAL.STATE.tsa_enabled)"
if [[ $current_tsa_state == false ]]; then
echo "Chassis is already in Normal mode"
logger -t TSB -p user.info "Chassis is already in Normal mode"
else
sonic-db-cli $CHASSIS_TSA_STATE_UPDATE
sonic-cfggen -a "$CONFIG_DB_TSA_STATE_UPDATE" -w
echo "Chassis Mode: Maintenance -> Normal"
logger -t TSB -p user.info "Chassis Mode: Maintenance -> Normal"
fi
rexec all -c "sudo TSB chassis"
echo "Please execute \"rexec all -c 'sudo config save -y'\" to preserve System mode in Normal state after reboot\
or config reload on all linecards"
or config reload on all linecards"
exit 0
fi

Expand Down
8 changes: 0 additions & 8 deletions files/build_templates/docker_image_ctl.j2
Original file line number Diff line number Diff line change
Expand Up @@ -269,14 +269,6 @@ function postStartAction()
$SONIC_DB_CLI CONFIG_DB SET "CONFIG_DB_INITIALIZED" "1"
fi

# In SUP, enforce CHASSIS_APP_DB.tsa_enabled to be in sync with BGP_DEVICE_GLOBAL.STATE.tsa_enabled
if [[ -z "$DEV" ]] && [[ -f /etc/sonic/chassisdb.conf ]]; then
tsa_cfg="$($SONIC_DB_CLI CONFIG_DB HGET "BGP_DEVICE_GLOBAL|STATE" "tsa_enabled")"
if [[ -n "$tsa_cfg" ]]; then
docker exec -i ${DOCKERNAME} $SONIC_DB_CLI CHASSIS_APP_DB HMSET "BGP_DEVICE_GLOBAL|STATE" tsa_enabled ${tsa_cfg}
fi
fi

# Add redis UDS to the redis group and give read/write access to the group
REDIS_SOCK="/var/run/redis${DEV}/redis.sock"
else
Expand Down
6 changes: 0 additions & 6 deletions files/image_config/config-setup/config-setup
Original file line number Diff line number Diff line change
Expand Up @@ -330,12 +330,6 @@ do_db_migration()
/usr/local/bin/db_migrator.py -o migrate
fi
sonic-db-cli CONFIG_DB SET "CONFIG_DB_INITIALIZED" "1"
#Enforce CHASSIS_APP_DB.tsa_enabled to be in sync with BGP_DEVICE_GLOBAL.STATE.tsa_enabled

if [[ -f /etc/sonic/chassisdb.conf ]]; then
tsa_cfg="$(sonic-db-cli CONFIG_DB HGET "BGP_DEVICE_GLOBAL|STATE" "tsa_enabled")"
sonic-db-cli CHASSIS_APP_DB HMSET "BGP_DEVICE_GLOBAL|STATE" tsa_enabled ${tsa_cfg}
fi
}

# Perform configuration migration from backup copy.
Expand Down
2 changes: 0 additions & 2 deletions src/sonic-bgpcfgd/bgpcfgd/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
from .managers_static_rt import StaticRouteMgr
from .managers_rm import RouteMapMgr
from .managers_device_global import DeviceGlobalCfgMgr
from .managers_chassis_app_db import ChassisAppDbMgr
from .static_rt_timer import StaticRouteTimer
from .runner import Runner, signal_handler
from .template import TemplateFabric
Expand Down Expand Up @@ -74,7 +73,6 @@ def do_work():
RouteMapMgr(common_objs, "APPL_DB", swsscommon.APP_BGP_PROFILE_TABLE_NAME),
# Device Global Manager
DeviceGlobalCfgMgr(common_objs, "CONFIG_DB", swsscommon.CFG_BGP_DEVICE_GLOBAL_TABLE_NAME),
ChassisAppDbMgr(common_objs, "CHASSIS_APP_DB", "BGP_DEVICE_GLOBAL"),
]
runner = Runner(common_objs['cfg_mgr'])
for mgr in managers:
Expand Down
50 changes: 0 additions & 50 deletions src/sonic-bgpcfgd/bgpcfgd/managers_chassis_app_db.py

This file was deleted.

23 changes: 4 additions & 19 deletions src/sonic-bgpcfgd/bgpcfgd/managers_device_global.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ def __init__(self, common_objs, db, table):
:param table: name of the table in the db
"""
self.switch_type = ""
self.chassis_tsa = ""
self.directory = common_objs['directory']
self.cfg_mgr = common_objs['cfg_mgr']
self.constants = common_objs['constants']
Expand Down Expand Up @@ -55,13 +54,12 @@ def set_handler(self, key, data):

if "tsa_enabled" in data:
self.directory.put(self.db_name, self.table_name, "tsa_enabled", data["tsa_enabled"])

self.chassis_tsa = self.get_chassis_tsa_status()
if self.chassis_tsa == "false" and tsa_status != data["tsa_enabled"]:
if tsa_status != data["tsa_enabled"]:
self.cfg_mgr.commit()
self.cfg_mgr.update()
self.isolate_unisolate_device(data["tsa_enabled"])


if "idf_isolation_state" in data:
self.directory.put(self.db_name, self.table_name, "idf_isolation_state", data["idf_isolation_state"])
if idf_isolation_state != data["idf_isolation_state"]:
Expand All @@ -81,9 +79,7 @@ def check_state_and_get_tsa_routemaps(self, cfg):
cmd = ""
if self.directory.path_exist("CONFIG_DB", swsscommon.CFG_BGP_DEVICE_GLOBAL_TABLE_NAME, "tsa_enabled"):
tsa_status = self.directory.get_slot("CONFIG_DB", swsscommon.CFG_BGP_DEVICE_GLOBAL_TABLE_NAME)["tsa_enabled"]
chassis_tsa = self.get_chassis_tsa_status()

if tsa_status == "true" or chassis_tsa == "true":
if tsa_status == "true":
cmds = cfg.replace("#012", "\n").split("\n")
log_notice("DeviceGlobalCfgMgr:: Device is isolated. Applying TSA route-maps")
cmd = self.get_ts_routemaps(cmds, self.tsa_template)
Expand Down Expand Up @@ -137,17 +133,6 @@ def __extract_out_route_map_names(self, cmds):
route_map_names.add(result.group(1))
return route_map_names

def get_chassis_tsa_status(self):
chassis_tsa_status = "false"
try:
ch = swsscommon.SonicV2Connector(use_unix_socket_path=False)
ch.connect(ch.CHASSIS_APP_DB, False)
chassis_tsa_status = ch.get(ch.CHASSIS_APP_DB, "BGP_DEVICE_GLOBAL|STATE", 'tsa_enabled')
except Exception:
pass

return chassis_tsa_status

def downstream_isolate_unisolate(self, idf_isolation_state):
cmd = "\n"
if idf_isolation_state == "unisolated":
Expand All @@ -168,4 +153,4 @@ def check_state_and_get_idf_isolation_routemaps(self):
if idf_isolation_state != "unisolated":
log_notice("DeviceGlobalCfgMgr:: IDF is isolated. Applying required route-maps")
cmd = self.idf_isolate_template.render(isolation_status=idf_isolation_state, constants=self.constants)
return cmd
return cmd
5 changes: 1 addition & 4 deletions src/sonic-bgpcfgd/bgpcfgd/runner.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,7 @@ def add_manager(self, manager):
table_name = manager.get_table_name()
db = swsscommon.SonicDBConfig.getDbId(db_name)
if db not in self.db_connectors:
if db_name == "CHASSIS_APP_DB":
self.db_connectors[db] = swsscommon.DBConnector(db_name, 0, True, '')
else:
self.db_connectors[db] = swsscommon.DBConnector(db_name, 0)
self.db_connectors[db] = swsscommon.DBConnector(db_name, 0)

if table_name not in self.callbacks[db]:
conn = self.db_connectors[db]
Expand Down
142 changes: 0 additions & 142 deletions src/sonic-bgpcfgd/tests/test_chassis_app_db.py

This file was deleted.

Loading

0 comments on commit ab08b78

Please sign in to comment.