diff --git a/object_database/frontends/database_server.py b/object_database/frontends/database_server.py index 9c6ca404..afdc3cbc 100755 --- a/object_database/frontends/database_server.py +++ b/object_database/frontends/database_server.py @@ -41,6 +41,7 @@ def main(argv): help="path to (self-signed) SSL certificate", ) parser.add_argument("--redis_port", type=int, default=None) + parser.add_argument("--redis_host", type=str, default=None) parser.add_argument("--inmem", default=False, action="store_true") parsedArgs = parser.parse_args(argv[1:]) @@ -48,7 +49,7 @@ def main(argv): if parsedArgs.inmem: mem_store = InMemoryPersistence() else: - mem_store = RedisPersistence(port=parsedArgs.redis_port) + mem_store = RedisPersistence(host=parsedArgs.redis_host, port=parsedArgs.redis_port) ssl_ctx = sslContextFromCertPathOrNone(parsedArgs.ssl_path) databaseServer = TcpServer( diff --git a/object_database/frontends/service_manager.py b/object_database/frontends/service_manager.py index 91f862c9..b38f9c15 100755 --- a/object_database/frontends/service_manager.py +++ b/object_database/frontends/service_manager.py @@ -65,6 +65,7 @@ def startServiceManagerProcess( sslPath=None, proxyPort=None, redisPort=None, + redisHost=None, ): if not verbose: kwargs = dict(stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) @@ -102,6 +103,10 @@ def startServiceManagerProcess( cmd.append("--redis_port") cmd.append(str(redisPort)) + if redisHost is not None: + cmd.append("--redis_host") + cmd.append(redisHost) + if logDir: logsPath = os.path.join(tempDirectoryName, "logs") cmd.extend(["--logdir", logsPath]) @@ -273,6 +278,7 @@ def main(argv=None): help="path to (self-signed) SSL certificate", ) parser.add_argument("--redis_port", type=int, default=None, required=False) + parser.add_argument("--redis_host", type=str, default=None, required=False) parser.add_argument("--fd-limit", type=int, default=4096, required=False) parser.add_argument("--max_gb_ram", type=float, default=None, required=False) @@ -400,7 +406,7 @@ def shutdownCleanly(signalNumber, frame): databaseServer = TcpServer( ownHostname, parsedArgs.port, - RedisPersistence(port=parsedArgs.redis_port) + RedisPersistence(host=parsedArgs.redis_host, port=parsedArgs.redis_port) if parsedArgs.redis_port is not None else InMemoryPersistence(), ssl_context=ssl_ctx, diff --git a/object_database/persistence.py b/object_database/persistence.py index ecfe2dbc..4859ae0a 100644 --- a/object_database/persistence.py +++ b/object_database/persistence.py @@ -146,13 +146,16 @@ def delete(self, key): class RedisPersistence(object): - def __init__(self, db=0, port=None): + def __init__(self, db=0, port=None, host=None): self.lock = threading.RLock() kwds = {} if port is not None: kwds["port"] = port + if host is not None: + kwds["host"] = host + self.redis = redis.StrictRedis(db=db, **kwds) self.cache = {}