diff --git a/src/swsssdk/dbconnector.py b/src/swsssdk/dbconnector.py index 23991e41..0c846512 100644 --- a/src/swsssdk/dbconnector.py +++ b/src/swsssdk/dbconnector.py @@ -267,6 +267,13 @@ def connect(self, db_name, retry_on=True): db_id = self.get_dbid(db_name) self.dbintf.connect(db_id, db_name, retry_on) + def connect_host(self, db_name, host, retry_on=True): + self.dbintf.redis_kwargs["host"] = host + self.dbintf.redis_kwargs["port"] = self.get_db_port(db_name) + self.dbintf.redis_kwargs["unix_socket_path"] = None + db_id = self.get_dbid(db_name) + self.dbintf.connect(db_id, db_name, retry_on) + def close(self, db_name): self.dbintf.close(db_name) diff --git a/test/test_redis_connect_host.py b/test/test_redis_connect_host.py new file mode 100644 index 00000000..d256b481 --- /dev/null +++ b/test/test_redis_connect_host.py @@ -0,0 +1,28 @@ +import os +import sys + +from unittest import mock + +modules_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +sys.path.insert(0, os.path.join(modules_path, 'src')) + +from swsssdk import SonicV2Connector + +def test_redis_connect_host(): + mock_dbintf = mock.MagicMock() + db = SonicV2Connector() + db.dbintf = mock_dbintf + db.dbintf.redis_kwargs = {} + + counters_db = 'COUNTERS_DB' + host_ip = '127.0.0.1' + + def mocked_connect(db_id, db_name, retry_on): + assert db_id == 2 + assert db_name == counters_db + + db.dbintf.connect = mocked_connect + db.connect_host(counters_db, host_ip) + + assert db.dbintf.redis_kwargs["host"] == host_ip + assert db.dbintf.redis_kwargs["port"] == 6379