mirror of
https://github.com/ranl/monitor-utils.git
synced 2026-02-05 22:55:17 +01:00
splitting IT project
This commit is contained in:
64
cacti/flexlmMonitor/flexlm-feature-monitor.py
Executable file
64
cacti/flexlmMonitor/flexlm-feature-monitor.py
Executable file
@@ -0,0 +1,64 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# Info
|
||||
# parses lmstat utility to get license usage of a specific feature
|
||||
|
||||
# Modules
|
||||
import subprocess
|
||||
import re
|
||||
import sys
|
||||
import os.path
|
||||
|
||||
# Settings
|
||||
lmutil = os.path.dirname(sys.argv[0])
|
||||
|
||||
# Validate settings
|
||||
if len(sys.argv) != 4 :
|
||||
print "Syntax error"
|
||||
print sys.argv[0] + ' [port] [server name] [feature]'
|
||||
quit(3)
|
||||
if os.path.isfile(lmutil) == False :
|
||||
print 'The lmutil binary ' + lmutil + ' does not exists'
|
||||
quit(3)
|
||||
|
||||
# Vars
|
||||
port = sys.argv[1]
|
||||
server = sys.argv[2]
|
||||
feature = sys.argv[3]
|
||||
errorString = re.escape('Users of ' + feature + ': (Error:')
|
||||
|
||||
# Initiate lmstat
|
||||
lmstat = subprocess.Popen([lmutil, 'lmstat' , '-c', port+'@'+server, '-f', feature], shell=False, stdout=subprocess.PIPE, stderr=None, stdin=None)
|
||||
out = lmstat.communicate()[0].splitlines( )
|
||||
exitCode = lmstat.returncode
|
||||
line2Parse = None
|
||||
|
||||
# If an erroe occured -> out
|
||||
if exitCode != 0 :
|
||||
for line in out : print line
|
||||
quit(1)
|
||||
|
||||
# search for the data in stdout
|
||||
for i in range(len(out)):
|
||||
if re.search(re.escape(feature), out[i]) :
|
||||
line2Parse = out[i]
|
||||
break
|
||||
|
||||
# Make sure stdout is valid
|
||||
if line2Parse == None :
|
||||
print 'Can not find feature \"' + feature + '\" in host ' + port+'@'+server
|
||||
quit(1)
|
||||
elif re.search(errorString, line2Parse) :
|
||||
print 'Error in license server:'
|
||||
print line2Parse
|
||||
quit(1)
|
||||
|
||||
# Host is up & Data is valid
|
||||
# parse usage
|
||||
usage = re.findall(r' \d\d* ', line2Parse)
|
||||
total = usage[len(usage)-2].strip()
|
||||
used = usage[len(usage)-1].strip()
|
||||
|
||||
# Output usage
|
||||
sys.stdout.write('total:'+total + ' ' + 'used:' + used)
|
||||
quit(0);
|
||||
BIN
cacti/flexlmMonitor/lmutil
Executable file
BIN
cacti/flexlmMonitor/lmutil
Executable file
Binary file not shown.
Reference in New Issue
Block a user