2525import tarfile
2626import tempfile
2727import threading
28- import logging
2928import subprocess
3029
3130# create a logger for this server.
32- logging .basicConfig (
33- level = logging .DEBUG ,
34- format = '%(asctime)s %(name)-12s %(levelname)-8s %(message)s' ,
35- datefmt = '%m-%d %H:%M' ,
36- filename = 'moose_server.log' ,
37- filemode = 'a'
38- )
39- console = logging .StreamHandler ()
40- console .setLevel (logging .DEBUG )
41- formatter = logging .Formatter ('%(name)-12s: %(levelname)-8s %(message)s' )
42- console .setFormatter (formatter )
43- _logger = logging .getLogger ('' )
44- _logger .addHandler (console )
31+ import logging
32+ logger_ = logging .getLogger ('moose.server' )
4533
4634__all__ = [ 'serve' ]
4735
@@ -133,7 +121,7 @@ def prefix_data_with_size(data):
133121def signal_handler (signum , frame ):
134122 global stop_all_
135123 global sock_
136- _logger .info ( "User terminated all processes." )
124+ logger_ .info ( "User terminated all processes." )
137125 stop_all_ = True
138126 # sock_.shutdown( socket.SHUT_RDWR )
139127 sock_ .close ()
@@ -149,14 +137,14 @@ def send_msg(msg, conn, prefix='LOG'):
149137 if not msg .strip ():
150138 return False
151139 if prefix != 'TAB' :
152- _logger .debug (msg )
140+ logger_ .debug (msg )
153141 else :
154- _logger .debug ( 'Sending msg with size %d' % len (msg ))
142+ logger_ .debug ( 'Sending msg with size %d' % len (msg ))
155143 msg = '<%s>%s' % (prefix , msg )
156144 conn .sendall (prefix_data_with_size (msg ))
157145
158146def run (cmd , conn , cwd = None ):
159- _logger .info ( "Executing %s" % cmd )
147+ logger_ .info ( "Executing %s" % cmd )
160148 oldCWD = os .getcwd ()
161149 if cwd is not None :
162150 os .chdir (cwd )
@@ -176,7 +164,7 @@ def recv_input(conn, size=1024):
176164 try :
177165 d = conn .recv (prefixL_ , socket .MSG_WAITALL )
178166 except Exception :
179- _logger .error ("MSG FORMAT: %d bytes are size of msg." % prefixL_ )
167+ logger_ .error ("MSG FORMAT: %d bytes are size of msg." % prefixL_ )
180168 continue
181169 d , data = int (d ), b''
182170 while len (data ) < d :
@@ -186,12 +174,12 @@ def recv_input(conn, size=1024):
186174def writeTarfile ( data ):
187175 tfile = os .path .join (tempfile .mkdtemp (), 'data.tar.bz2' )
188176 with open (tfile , 'wb' ) as f :
189- _logger .info ( "Writing %d bytes to %s" % (len (data ), tfile ))
177+ logger_ .info ( "Writing %d bytes to %s" % (len (data ), tfile ))
190178 f .write (data )
191179 # Sleep for some time so that file can be written to disk.
192180 time .sleep (0.1 )
193181 if not tarfile .is_tarfile (tfile ):
194- _logger .warn ( 'Not a valid tar file: %s' % tfile )
182+ logger_ .warn ( 'Not a valid tar file: %s' % tfile )
195183 return None
196184 return tfile
197185
@@ -210,7 +198,7 @@ def streamer_client(socketPath, conn):
210198 # Connect to running socket server.
211199 global stop_streamer_
212200 stop = False
213- _logger .debug ( "Trying to connect to server at : %s" % socketPath )
201+ logger_ .debug ( "Trying to connect to server at : %s" % socketPath )
214202 while not os .path .exists ( socketPath ):
215203 #print( 'socket %s is not available yet.' % socketPath )
216204 time .sleep (0.1 )
@@ -222,12 +210,12 @@ def streamer_client(socketPath, conn):
222210 try :
223211 stClient .connect (socketPath )
224212 except socket .error as e :
225- _logger .warning ('Could not connect: %s' % e )
213+ logger_ .warning ('Could not connect: %s' % e )
226214 return
227215
228216 # send streaming data back to client. The streamer send fixed size messages
229217 # of 1024/2048 bytes each (see the c++ implmenetation).
230- _logger .info ( "Socket Streamer is connected with server." )
218+ logger_ .info ( "Socket Streamer is connected with server." )
231219 stClient .settimeout (0.05 )
232220 send_msg ( b'Now streaming table data.' , conn , 'TAB' )
233221 while not stop :
@@ -258,7 +246,7 @@ def run_file(filename, conn, cwd=None):
258246 stop_streamer_ [streamerThread .name ] = True
259247 streamerThread .join ( timeout = 1 )
260248 if streamerThread .is_alive ():
261- _logger .error ( "The socket streamer client is still running..." )
249+ logger_ .error ( "The socket streamer client is still running..." )
262250
263251def extract_files (tfile , to ):
264252 userFiles = []
@@ -267,11 +255,11 @@ def extract_files(tfile, to):
267255 try :
268256 f .extractall ( to )
269257 except Exception as e :
270- _logger .warn ( e )
258+ logger_ .warn ( e )
271259 # now check if all files have been extracted properly
272260 for f in userFiles :
273261 if not os .path .exists (f ):
274- _logger .error ( "File %s could not be extracted." % f )
262+ logger_ .error ( "File %s could not be extracted." % f )
275263 return userFiles
276264
277265def prepareMatplotlib ( cwd ):
@@ -288,14 +276,14 @@ def sendResults(tdir, conn, notTheseFiles):
288276 resfile = os .path .join (resdir , 'results.tar.bz2' )
289277 with tarfile .open ( resfile , 'w|bz2' ) as tf :
290278 for f in find_files (tdir , ext = 'png' ):
291- _logger .info ( "Adding file %s" % f )
279+ logger_ .info ( "Adding file %s" % f )
292280 tf .add (f , os .path .basename (f ))
293281
294282 time .sleep (0.01 )
295283 # now send the tar file back to client
296284 with open (resfile , 'rb' ) as f :
297285 data = f .read ()
298- _logger .info ( 'Total bytes to send to client: %d' % len (data ))
286+ logger_ .info ( 'Total bytes to send to client: %d' % len (data ))
299287 send_bz2 (conn , data )
300288 shutil .rmtree (resdir )
301289
@@ -348,11 +336,11 @@ def savePayload( conn ):
348336
349337def handle_client (conn , ip , port ):
350338 isActive = True
351- _logger .info ( "Serving request from %s:%s" % (ip , port ) )
339+ logger_ .info ( "Serving request from %s:%s" % (ip , port ) )
352340 while isActive :
353341 tarfileName , nBytes = savePayload (conn )
354342 if tarfileName is None :
355- _logger .warn ( "Could not recieve data." )
343+ logger_ .warn ( "Could not recieve data." )
356344 isActive = False
357345 if not os .path .isfile (tarfileName ):
358346 send_msg ("[ERROR] %s is not a valid tarfile. Retry" % tarfileName , conn )
@@ -379,9 +367,9 @@ def start_server( host, port, max_requests = 10 ):
379367 sock_ .setsockopt (socket .SOL_SOCKET , socket .SO_REUSEADDR , 1 )
380368 try :
381369 sock_ .bind ( (host , port ))
382- _logger .info ( "Server created %s:%s" % (host ,port ) )
370+ logger_ .info ( "Server created %s:%s" % (host ,port ) )
383371 except Exception as e :
384- _logger .error ( "Failed to bind: %s" % e )
372+ logger_ .error ( "Failed to bind: %s" % e )
385373 quit (1 )
386374
387375 # listen upto 10 of requests
@@ -392,7 +380,7 @@ def start_server( host, port, max_requests = 10 ):
392380 sock_ .settimeout (10 )
393381 try :
394382 conn , (ip , port ) = sock_ .accept ()
395- except socket .timeout as e :
383+ except socket .timeout :
396384 continue
397385 sock_ .settimeout (0.0 )
398386 t = threading .Thread (target = handle_client , args = (conn , ip , port ))
0 commit comments