#!/usr/bin/python3 import swsssdk import redis import subprocess import time import syslog while(True): output = subprocess.Popen(['sonic-db-cli', 'PING'], stdout=subprocess.PIPE, text=True).communicate()[0] if 'PONG' in output: break time.sleep(1) instlists = swsssdk.SonicDBConfig.get_instancelist() for instname, v in instlists.items(): insthost = v['hostname'] instsocket = v['unix_socket_path'] dblists = swsssdk.SonicDBConfig.get_dblist() for dbname in dblists: dbid = swsssdk.SonicDBConfig.get_dbid(dbname) dbinst = swsssdk.SonicDBConfig.get_instancename(dbname) # this DB is on current instance, skip flush if dbinst == instname: continue try: r = redis.Redis(host=insthost, unix_socket_path=instsocket, db=dbid) r.flushdb() except (redis.exceptions.ConnectionError): syslog.syslog(syslog.LOG_INFO,"flushdb:Redis Unix Socket connection error for path {} and dbaname {}".format(instsocket, dbname))