From 478522124ba494a3678ed4868f8bc5f548828fe9 Mon Sep 17 00:00:00 2001 From: Christoph Heer Date: Wed, 14 Sep 2011 16:13:39 +0200 Subject: [PATCH] Add presence suffix --- plugins/other/prosody | 151 ++++++++++++++++++++++++++---------------- 1 file changed, 93 insertions(+), 58 deletions(-) diff --git a/plugins/other/prosody b/plugins/other/prosody index 712bdaec..11747fa1 100755 --- a/plugins/other/prosody +++ b/plugins/other/prosody @@ -25,63 +25,98 @@ import os import telnetlib import re -def main(): - mode = "" - try: mode = sys.argv[1] - except Exception, IndexError: mode = "" - wildcard = sys.argv[0].split("prosody_")[1].split("_")[0] - - if mode == "suggest": - print "c2s" - print "s2s" - sys.exit(0) +def main(): + try: + mode = sys.argv[1] + except IndexError: + mode = "" + wildcard = sys.argv[0].split("prosody_")[1].split("_")[0] + host = os.environ.get('host', 'localhost') + port = int(os.environ.get('port', 5582)) + + if mode == "suggest": + print "c2s" + print "s2s" + print "presence" + sys.exit(0) - if wildcard == "c2s": - if mode == "config": - print "graph_title Prosody C2S Connections" - print "graph_vlabel users" - print "graph_category Prosody" - - print "all_client_connections.label client connections" - print "secure_client_connections.label secure client connections" - print "insecure_client_connections.label insecure client connections" - sys.exit(0) - - else: - Regex = re.compile(r"Total:\s(\d+)\s") - telnet = telnetlib.Telnet('localhost', 5582) - telnet.write("c2s:show_secure()") - telnetResponse = telnet.read_until("secure client connections", 5) - ParsedInfo = Regex.findall(telnetResponse) - scc = int(ParsedInfo[0]) - print "secure_client_connections.value %s" % (scc) - - telnet.write("c2s:show_insecure()") - telnetResponse = telnet.read_until("insecure client connections", 5) - ParsedInfo = Regex.findall(telnetResponse) - icc = int(ParsedInfo[0]) - print "insecure_client_connections.value %s" % (icc) - cc = scc + icc - print "all_client_connections.value %s" % (cc) - - elif wildcard == "s2s": - if mode == "config": - print "graph_title Prosody S2S Connections" - print "graph_vlabel servers" - print "graph_category Prosody" - - print "outgoing_connections.label outgoing connections" - print "incoming_connections.label incoming connections" - sys.exit(0) - - else: - Regex = re.compile(r"(\d+) outgoing, (\d+)") - telnet = telnetlib.Telnet('localhost', 5582) - telnet.write("s2s:show()") - telnetResponse = telnet.read_until("connections", 5) - ParsedInfo = Regex.findall(telnetResponse) - print "outgoing_connections.value %s" % (ParsedInfo[0][0]) - print "incoming_connections.value %s" % (ParsedInfo[0][1]) - + if wildcard == "c2s": + if mode == "config": + print "graph_title Prosody C2S Connections" + print "graph_vlabel users" + print "graph_category Prosody" + + print "all_client_connections.label client connections" + print "secure_client_connections.label secure client connections" + print "insecure_client_connections.label insecure client " \ + "connections" + sys.exit(0) + + else: + connection_count_re = re.compile(r"Total:\s(\d+)\s") + telnet = telnetlib.Telnet(host, port) + telnet.write("c2s:show_secure()") + telnet_response = telnet.read_until("secure client connections", + 5) + parsed_info = connection_count_re.findall(telnet_response) + secure_client_connections = int(parsed_info[0]) + print "secure_client_connections.value %s" % \ + (secure_client_connections) + + telnet.write("c2s:show_insecure()") + telnet_response = telnet.read_until("insecure client connections", + 5) + parsed_info = connection_count_re.findall(telnet_response) + insecure_client_connections = int(parsed_info[0]) + print "insecure_client_connections.value %s" % \ + (insecure_client_connections) + all_client_connections = secure_client_connections + \ + insecure_client_connections + print "all_client_connections.value %s" % (all_client_connections) + + elif wildcard == "s2s": + if mode == "config": + print "graph_title Prosody S2S Connections" + print "graph_vlabel servers" + print "graph_category Prosody" + + print "outgoing_connections.label outgoing connections" + print "incoming_connections.label incoming connections" + sys.exit(0) + + else: + server_connections_re = re.compile(r"(\d+) outgoing, (\d+)") + telnet = telnetlib.Telnet(host, port) + telnet.write("s2s:show()") + telnet_response = telnet.read_until("connections", 5) + parsed_info = server_connections_re.findall(telnet_response) + print "outgoing_connections.value %s" % (parsed_info[0][0]) + print "incoming_connections.value %s" % (parsed_info[0][1]) + + elif wildcard == "presence": + if mode == "config": + print "graph_title Prosody Client Presence" + print "graph_vlabel clients" + print "graph_category Prosody" + + print "available.label Avaible Clients" + print "chat.label Ready for Chat Clients" + print "away.label Away Clients" + print "xa.label Extended Away Clients" + print "dnd.label Do Not Disturb Clients" + sys.exit(0) + + else: + client_presence_re = re.compile(r"- (.*?)\(\d+\)") + telnet = telnetlib.Telnet(host, port) + telnet.write("c2s:show()") + telnet_response = telnet.read_until("clients", 5) + parsed_info = client_presence_re.findall(telnet_response) + print "available.value %s" % (parsed_info.count("available")) + print "chat.value %s" % (parsed_info.count("chat")) + print "away.value %s" % (parsed_info.count("away")) + print "xa.value %s" % (parsed_info.count("xa")) + print "dnd.value %s" % (parsed_info.count("dnd")) + if __name__ == '__main__': - main() + main()