monitor-utils/cacti/oge-queue.py

54 lines
1.1 KiB
Python
Executable File

#!/bin/env python
# Info:
# Get queue usage via qstat -g c command
# Note: it will exclude host in error/disable hosts
#
# Settings:
# add the cacti server as submit host
# set the gridSettings variable
# Modules
import subprocess
import sys
# Settings
gridSettings = '/path/to/common/settings.sh'
if len(sys.argv) != 2:
print "Syntax error"
print sys.argv[0] + ' [full queue name]'
quit(1)
# Vars
queue = sys.argv[1]
jobsCounter = 0
foundQueue = False
running = 0
total = 0
# Initiate qstat -g c
qstat = subprocess.Popen('source ' + gridSettings + '; ' + 'qstat -g c', shell=True, stdout=subprocess.PIPE, stderr=None, stdin=None)
out = qstat.communicate()[0].splitlines( )
exitCode = qstat.returncode
# If an error occured -> out
if exitCode != 0 :
for line in out : print line
quit(1)
# Parse out
for i in range(len(out)):
queueInfo = out[i].split()
if queueInfo[0] == queue:
foundQueue = True
total = int(queueInfo[2]) + int(queueInfo[4])
running = int(queueInfo[2])
# Print Result
if foundQueue :
sys.stdout.write('total:'+str(total) + ' ' + 'running:'+str(running))
else :
sys.stdout.write('-1')
quit(1)