#!/usr/bin/python3
import swsssdk
import redis
import subprocess
import time

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

        r = redis.Redis(host=insthost, unix_socket_path=instsocket, db=dbid)
        r.flushdb()