#!/usr/bin/python
#
# Munin Plugin for Murmur/ICE
# written by T. Fernandez
# fixes by Andrew Williams
# 07/10/2010
#
##########################################################

slicefile = "/usr/share/slice/Murmur.ice"
prxstr = "Meta:tcp -h 127.0.0.1 -p 6502"

import os
import sys

import Ice
if not os.path.exists(slicefile):
        print slicefile+" not found!"
        quit(1)
Ice.loadSlice('', ['-I' + Ice.getSliceDir(), slicefile])

import Murmur
ice = Ice.initialize()
prx = ice.stringToProxy(prxstr)
murmur = Murmur.MetaPrx.checkedCast(prx)

if (sys.argv.__len__() == 2) and (sys.argv[1] == "config"):
        print "graph_title Mumble users"
        print "graph_category voip"
        print "graph_vlabel users"
        print "graph_args --lower-limit 0"
        for server in murmur.getAllServers():
                id = str(server.id())
                print "murmur"+id+".label Server "+id
else:
        for server in murmur.getAllServers():
                id = str(server.id())
                if server.isRunning():
                    users = server.getUsers()
                else:
                    users = []
                print "murmur"+id+".value "+str(users.__len__())
quit(0)
