58 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| #!/usr/bin/python
 | |
| # Author: George Mocanu <george.mocanu@sphs.ro>
 | |
| # SpearHead Systems
 | |
| 
 | |
| # EXAMPLE DATA FROM: 
 | |
| # fomat: Win2k8_Pack_Name No_of_Installed_Licenses No_of_Used_Licenses
 | |
| #
 | |
| #<<<rds_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",
 | |
| }
 |