Skip to content

Commit

Permalink
Migrate flush_unused_database from py-redis to sonic-swss-common (son…
Browse files Browse the repository at this point in the history
…ic-net#15511)

Migrate flush_unused_database from py-redis to sonic-swss-common

#### Why I did it
flush_unused_database using py-redis, but sonic-swss-common already support flushdb, so we need migrate to sonic-swss-common

##### Work item tracking
- Microsoft ADO **(number only)**: 24292565

#### How I did it
Migrate flush_unused_database from py-redis to sonic-swss-common

#### How to verify it
Pass all UT and E2E test

#### Description for the changelog
Migrate flush_unused_database from py-redis to sonic-swss-common
  • Loading branch information
liuh-80 authored and sonic-otn committed Sep 20, 2023
1 parent 6e0e5bb commit 7994365
Showing 1 changed file with 14 additions and 4 deletions.
18 changes: 14 additions & 4 deletions dockers/docker-database/flush_unused_database
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
#!/usr/bin/python3
from swsscommon import swsscommon
import redis
import subprocess
import time
import syslog
Expand All @@ -26,7 +25,18 @@ for instname, v in instlists.items():
continue

try:
r = redis.Redis(host=insthost, unix_socket_path=instsocket, db=dbid)
r.flushdb()
except (redis.exceptions.ConnectionError):
# Migrate code from py-redis to swsscommon, original code:
# r = redis.Redis(host=insthost, unix_socket_path=instsocket, db=dbid)
# py-redis will use TCP connection when unix_socket_path is None
# https://github.com/redis/redis-py/blob/d95d8a24ed2af3eae80b7b0f14cbccc9dbe86e96/redis/client.py#L1006
if instsocket is not None:
# connect with Unix socket
connector = swsscommon.DBConnector(dbid, instsocket, 0)
else:
# connect with TCP socket
port = swsscommon.SonicDBConfig.getDbPort(dbname);
connector = swsscommon.DBConnector(dbid, insthost, port, 0)

connector.flushdb()
except RuntimeError:
syslog.syslog(syslog.LOG_INFO,"flushdb:Redis Unix Socket connection error for path {} and dbaname {}".format(instsocket, dbname))

0 comments on commit 7994365

Please sign in to comment.