Skip to content

Commit ab08b78

Browse files
authored
Revert "Reliable TSA implementation (#18928)" (#19173)
This reverts commit 9d5fb20.
1 parent b4c2ee0 commit ab08b78

File tree

11 files changed

+16
-328
lines changed

11 files changed

+16
-328
lines changed

dockers/docker-fpm-frr/base_image_files/TS

+2-12
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,13 @@
66
PLATFORM=${PLATFORM:-`sonic-cfggen -H -v DEVICE_METADATA.localhost.platform`}
77

88
if [[ $1 == "TSA" ]]; then
9-
TSA_CHASSIS_STATE="$(sonic-db-cli CHASSIS_APP_DB HGET "BGP_DEVICE_GLOBAL|STATE" tsa_enabled)"
109
TSA_STATE_UPDATE='{"BGP_DEVICE_GLOBAL":{"STATE":{"tsa_enabled": "true"}}}'
11-
if [[ $TSA_CHASSIS_STATE == true ]]; then
12-
log_msg='System Mode: Maintenance -> Maintenance'
13-
else
14-
log_msg='System Mode: Normal -> Maintenance'
15-
fi
10+
log_msg='System Mode: Normal -> Maintenance'
1611
err_msg='System is already in Maintenance'
1712
desired_tsa_state=true
1813
elif [[ $1 == "TSB" ]]; then
19-
TSA_CHASSIS_STATE="$(sonic-db-cli CHASSIS_APP_DB HGET "BGP_DEVICE_GLOBAL|STATE" tsa_enabled)"
2014
TSA_STATE_UPDATE='{"BGP_DEVICE_GLOBAL":{"STATE":{"tsa_enabled": "false"}}}'
21-
if [[ $TSA_CHASSIS_STATE == true ]]; then
22-
log_msg='System Mode: Maintenance -> Maintenance'
23-
else
24-
log_msg='System Mode: Maintenance -> Normal'
25-
fi
15+
log_msg='System Mode: Maintenance -> Normal'
2616
err_msg='System is already in Normal mode'
2717
desired_tsa_state=false
2818
fi

dockers/docker-fpm-frr/base_image_files/TSA

+1-12
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,7 @@ if [ "$EUID" -ne 0 ] ; then
77
fi
88

99
if [ -f /etc/sonic/chassisdb.conf ]; then
10-
CHASSIS_TSA_STATE_UPDATE="CHASSIS_APP_DB HMSET "BGP_DEVICE_GLOBAL\|STATE" tsa_enabled "true""
11-
CONFIG_DB_TSA_STATE_UPDATE='{"BGP_DEVICE_GLOBAL":{"STATE":{"tsa_enabled": "true"}}}'
12-
current_tsa_state="$(sonic-cfggen -d -v BGP_DEVICE_GLOBAL.STATE.tsa_enabled)"
13-
if [[ $current_tsa_state == true ]]; then
14-
echo "Chassis is already in Maintenance"
15-
logger -t TSA -p user.info "Chassis is already in Maintenance"
16-
else
17-
sonic-db-cli $CHASSIS_TSA_STATE_UPDATE
18-
sonic-cfggen -a "$CONFIG_DB_TSA_STATE_UPDATE" -w
19-
echo "Chassis Mode: Normal -> Maintenance"
20-
logger -t TSA -p user.info "Chassis Mode: Normal -> Maintenance"
21-
fi
10+
rexec all -c "sudo TSA chassis"
2211
echo "Please execute \"rexec all -c 'sudo config save -y'\" to preserve System mode in Maintenance after reboot\
2312
or config reload on all linecards"
2413
exit 0

dockers/docker-fpm-frr/base_image_files/TSB

+3-13
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,11 @@ if [ "$EUID" -ne 0 ] ; then
66
exit 1
77
fi
88

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

files/build_templates/docker_image_ctl.j2

-8
Original file line numberDiff line numberDiff line change
@@ -269,14 +269,6 @@ function postStartAction()
269269
$SONIC_DB_CLI CONFIG_DB SET "CONFIG_DB_INITIALIZED" "1"
270270
fi
271271

272-
# In SUP, enforce CHASSIS_APP_DB.tsa_enabled to be in sync with BGP_DEVICE_GLOBAL.STATE.tsa_enabled
273-
if [[ -z "$DEV" ]] && [[ -f /etc/sonic/chassisdb.conf ]]; then
274-
tsa_cfg="$($SONIC_DB_CLI CONFIG_DB HGET "BGP_DEVICE_GLOBAL|STATE" "tsa_enabled")"
275-
if [[ -n "$tsa_cfg" ]]; then
276-
docker exec -i ${DOCKERNAME} $SONIC_DB_CLI CHASSIS_APP_DB HMSET "BGP_DEVICE_GLOBAL|STATE" tsa_enabled ${tsa_cfg}
277-
fi
278-
fi
279-
280272
# Add redis UDS to the redis group and give read/write access to the group
281273
REDIS_SOCK="/var/run/redis${DEV}/redis.sock"
282274
else

files/image_config/config-setup/config-setup

-6
Original file line numberDiff line numberDiff line change
@@ -330,12 +330,6 @@ do_db_migration()
330330
/usr/local/bin/db_migrator.py -o migrate
331331
fi
332332
sonic-db-cli CONFIG_DB SET "CONFIG_DB_INITIALIZED" "1"
333-
#Enforce CHASSIS_APP_DB.tsa_enabled to be in sync with BGP_DEVICE_GLOBAL.STATE.tsa_enabled
334-
335-
if [[ -f /etc/sonic/chassisdb.conf ]]; then
336-
tsa_cfg="$(sonic-db-cli CONFIG_DB HGET "BGP_DEVICE_GLOBAL|STATE" "tsa_enabled")"
337-
sonic-db-cli CHASSIS_APP_DB HMSET "BGP_DEVICE_GLOBAL|STATE" tsa_enabled ${tsa_cfg}
338-
fi
339333
}
340334

341335
# Perform configuration migration from backup copy.

src/sonic-bgpcfgd/bgpcfgd/main.py

-2
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
from .managers_static_rt import StaticRouteMgr
2121
from .managers_rm import RouteMapMgr
2222
from .managers_device_global import DeviceGlobalCfgMgr
23-
from .managers_chassis_app_db import ChassisAppDbMgr
2423
from .static_rt_timer import StaticRouteTimer
2524
from .runner import Runner, signal_handler
2625
from .template import TemplateFabric
@@ -74,7 +73,6 @@ def do_work():
7473
RouteMapMgr(common_objs, "APPL_DB", swsscommon.APP_BGP_PROFILE_TABLE_NAME),
7574
# Device Global Manager
7675
DeviceGlobalCfgMgr(common_objs, "CONFIG_DB", swsscommon.CFG_BGP_DEVICE_GLOBAL_TABLE_NAME),
77-
ChassisAppDbMgr(common_objs, "CHASSIS_APP_DB", "BGP_DEVICE_GLOBAL"),
7876
]
7977
runner = Runner(common_objs['cfg_mgr'])
8078
for mgr in managers:

src/sonic-bgpcfgd/bgpcfgd/managers_chassis_app_db.py

-50
This file was deleted.

src/sonic-bgpcfgd/bgpcfgd/managers_device_global.py

+4-19
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ def __init__(self, common_objs, db, table):
1414
:param table: name of the table in the db
1515
"""
1616
self.switch_type = ""
17-
self.chassis_tsa = ""
1817
self.directory = common_objs['directory']
1918
self.cfg_mgr = common_objs['cfg_mgr']
2019
self.constants = common_objs['constants']
@@ -55,13 +54,12 @@ def set_handler(self, key, data):
5554

5655
if "tsa_enabled" in data:
5756
self.directory.put(self.db_name, self.table_name, "tsa_enabled", data["tsa_enabled"])
58-
59-
self.chassis_tsa = self.get_chassis_tsa_status()
60-
if self.chassis_tsa == "false" and tsa_status != data["tsa_enabled"]:
57+
if tsa_status != data["tsa_enabled"]:
6158
self.cfg_mgr.commit()
6259
self.cfg_mgr.update()
6360
self.isolate_unisolate_device(data["tsa_enabled"])
6461

62+
6563
if "idf_isolation_state" in data:
6664
self.directory.put(self.db_name, self.table_name, "idf_isolation_state", data["idf_isolation_state"])
6765
if idf_isolation_state != data["idf_isolation_state"]:
@@ -81,9 +79,7 @@ def check_state_and_get_tsa_routemaps(self, cfg):
8179
cmd = ""
8280
if self.directory.path_exist("CONFIG_DB", swsscommon.CFG_BGP_DEVICE_GLOBAL_TABLE_NAME, "tsa_enabled"):
8381
tsa_status = self.directory.get_slot("CONFIG_DB", swsscommon.CFG_BGP_DEVICE_GLOBAL_TABLE_NAME)["tsa_enabled"]
84-
chassis_tsa = self.get_chassis_tsa_status()
85-
86-
if tsa_status == "true" or chassis_tsa == "true":
82+
if tsa_status == "true":
8783
cmds = cfg.replace("#012", "\n").split("\n")
8884
log_notice("DeviceGlobalCfgMgr:: Device is isolated. Applying TSA route-maps")
8985
cmd = self.get_ts_routemaps(cmds, self.tsa_template)
@@ -137,17 +133,6 @@ def __extract_out_route_map_names(self, cmds):
137133
route_map_names.add(result.group(1))
138134
return route_map_names
139135

140-
def get_chassis_tsa_status(self):
141-
chassis_tsa_status = "false"
142-
try:
143-
ch = swsscommon.SonicV2Connector(use_unix_socket_path=False)
144-
ch.connect(ch.CHASSIS_APP_DB, False)
145-
chassis_tsa_status = ch.get(ch.CHASSIS_APP_DB, "BGP_DEVICE_GLOBAL|STATE", 'tsa_enabled')
146-
except Exception:
147-
pass
148-
149-
return chassis_tsa_status
150-
151136
def downstream_isolate_unisolate(self, idf_isolation_state):
152137
cmd = "\n"
153138
if idf_isolation_state == "unisolated":
@@ -168,4 +153,4 @@ def check_state_and_get_idf_isolation_routemaps(self):
168153
if idf_isolation_state != "unisolated":
169154
log_notice("DeviceGlobalCfgMgr:: IDF is isolated. Applying required route-maps")
170155
cmd = self.idf_isolate_template.render(isolation_status=idf_isolation_state, constants=self.constants)
171-
return cmd
156+
return cmd

src/sonic-bgpcfgd/bgpcfgd/runner.py

+1-4
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,7 @@ def add_manager(self, manager):
3939
table_name = manager.get_table_name()
4040
db = swsscommon.SonicDBConfig.getDbId(db_name)
4141
if db not in self.db_connectors:
42-
if db_name == "CHASSIS_APP_DB":
43-
self.db_connectors[db] = swsscommon.DBConnector(db_name, 0, True, '')
44-
else:
45-
self.db_connectors[db] = swsscommon.DBConnector(db_name, 0)
42+
self.db_connectors[db] = swsscommon.DBConnector(db_name, 0)
4643

4744
if table_name not in self.callbacks[db]:
4845
conn = self.db_connectors[db]

src/sonic-bgpcfgd/tests/test_chassis_app_db.py

-142
This file was deleted.

0 commit comments

Comments
 (0)