#!/usr/bin/python # Author: George Mocanu # SpearHead Systems # EXAMPLE DATA FROM: # fomat: Win2k8_Pack_Name No_of_Installed_Licenses No_of_Used_Licenses # #<<>> #Win2k8_Pack_Name 20 15 factory_settings["rds_licenses_default_values"] = { "levels": (80, 90), } def inventory_rds_licenses(info): inventory = [] for line in info: checkName = line[0] inventory.append( (checkName, {} ) ) return inventory def check_rds_licenses(item, params, info): if type(params) != dict: params = { "levels": params } warn, crit = params["levels"] for line in info: if line[0] == item: total = int(line[1]) used = int(line[2]) if total != 0: usedPerc = int(((used*100)/total)) else: usedPerc = int(((used*100)/1)) perfdata = [ ( "usage", usedPerc, warn, crit ) ] if total != 0: if usedPerc > crit: return (2, "License use level: %d percents. %d licenses used out of %d installed." %(usedPerc, used, total), perfdata) elif usedPerc > warn: return (1, "License use level: %d percents. %d licenses used out of %d installed." %(usedPerc, used, total), perfdata) else: return (0, "License use level: %d percents. %d licenses used out of %d installed." %(usedPerc, used, total), perfdata) else: if used == 0: return (0, "No licenses installed, none used", perfdata) else: return (2, "No licenses installed, %d licenses used" %used, perfdata) return(3, "Plugin not running on host") check_info["rds_licenses"] = { "check_function" :check_rds_licenses, "inventory_function" :inventory_rds_licenses, "service_description" :"%s", "default_levels_variable" :"rds_licenses_default_values", "has_perfdata" :True, "group" :"rds_licenses", }