mirror of
https://github.com/mongodb/mongo.git
synced 2024-11-30 17:10:48 +01:00
48 lines
1.0 KiB
Python
48 lines
1.0 KiB
Python
|
|
import re
|
|
import socket
|
|
import time
|
|
|
|
# various utilities that are handy
|
|
|
|
def execsys( args ):
|
|
import subprocess
|
|
if isinstance( args , str ):
|
|
r = re.compile( "\s+" )
|
|
args = r.split( args )
|
|
p = subprocess.Popen( args , stdout=subprocess.PIPE , stderr=subprocess.PIPE )
|
|
r = p.communicate()
|
|
return r;
|
|
|
|
def getprocesslist():
|
|
raw = ""
|
|
try:
|
|
raw = execsys( "/bin/ps -ax" )[0]
|
|
except Exception,e:
|
|
print( "can't get processlist: " + str( e ) )
|
|
|
|
r = re.compile( "[\r\n]+" )
|
|
return r.split( raw )
|
|
|
|
|
|
def checkMongoPort( port=27017 ):
|
|
sock = socket.socket()
|
|
sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
|
|
sock.settimeout(1)
|
|
sock.connect(("localhost", port))
|
|
sock.close()
|
|
|
|
def didMongodStart( port=27017 , timeout=20 ):
|
|
while timeout > 0:
|
|
time.sleep( 1 )
|
|
try:
|
|
checkMongoPort( port )
|
|
return True
|
|
except Exception,e:
|
|
print( e )
|
|
timeout = timeout - 1
|
|
|
|
return False
|
|
|
|
|