def check_connect_primary(con, warning, critical, perf_data):
warning = warning or 3
critical = critical or 6
try:
try:
set_read_preference(con.admin)
data = con.admin.command(pymongo.son_manipulator.SON([('isMaster', 1)]))
except:
data = con.admin.command(son.SON([('isMaster', 1)]))
if data['ismaster'] == True :
print "OK - This server is primary"
return 0
phost = data['primary'].split(':')[0]
pport = int(data['primary'].split(':')[1])
start = time.time()
err,con=mongo_connect(phost, pport)
if err!=0:
return err
pconn_time = time.time() - start
pconn_time = round(pconn_time, 0)
message = "Connection to primary server "+data['primary']+" took %i seconds" % pconn_time
message += performance_data(perf_data,[(pconn_time,"connection_time",warning,critical)])
return check_levels(pconn_time,warning,critical,message)
except Exception, e:
return exit_with_general_critical(e)
评论列表
文章目录