@@ -122,7 +122,8 @@ def __new__(cls,
122
122
ssl_key_file = None ,
123
123
ssl_cert_file = None ,
124
124
ssl_ca_file = None ,
125
- ssl_ciphers = None ):
125
+ ssl_ciphers = None ,
126
+ create_unix_socket = False ):
126
127
if os .name == 'nt' :
127
128
from .remote_tarantool_server import RemoteTarantoolServer
128
129
return RemoteTarantoolServer ()
@@ -133,12 +134,23 @@ def __init__(self,
133
134
ssl_key_file = None ,
134
135
ssl_cert_file = None ,
135
136
ssl_ca_file = None ,
136
- ssl_ciphers = None ):
137
+ ssl_ciphers = None ,
138
+ create_unix_socket = False ):
137
139
os .popen ('ulimit -c unlimited' )
138
- self .host = 'localhost'
139
- self .args = {}
140
- self .args ['primary' ] = find_port ()
141
- self .args ['admin' ] = find_port (self .args ['primary' ] + 1 )
140
+
141
+ if create_unix_socket :
142
+ self .host = None
143
+ self .args = {}
144
+ self ._socket = tempfile .NamedTemporaryFile (suffix = '.sock' , delete = False )
145
+ self .args ['primary' ] = self ._socket .name
146
+ self .args ['admin' ] = find_port ()
147
+ else :
148
+ self .host = 'localhost'
149
+ self .args = {}
150
+ self ._socket = None
151
+ self .args ['primary' ] = find_port ()
152
+ self .args ['admin' ] = find_port (self .args ['primary' ] + 1 )
153
+
142
154
self ._admin = self .args ['admin' ]
143
155
self .vardir = tempfile .mkdtemp (prefix = 'var_' , dir = os .getcwd ())
144
156
self .find_exe ()
@@ -244,6 +256,12 @@ def clean(self):
244
256
if os .path .isdir (self .vardir ):
245
257
shutil .rmtree (self .vardir )
246
258
259
+ if os .path .exists (self .args ['primary' ]):
260
+ os .remove (self .args ['primary' ])
261
+
262
+ if (self ._socket is not None ) and (not self ._socket .file .closed ):
263
+ self ._socket .close ()
264
+
247
265
def __del__ (self ):
248
266
self .stop ()
249
267
self .clean ()
0 commit comments