File: //usr/lib/python2.7/site-packages/lap/cegonha_range.py
import yaml
from configuration_agent import cegonha, config
cfg = config.load()
ranges = []
result = []
total = int()
total_available = int()
def __run__(params):
try:
total_free = params.get("total_free")
range_id = params.get("range_id")
vlan_id = params.get("vlan_id")
for i in range(100):
try:
RANGE = cegonha.get("http://%s/vlans/%s/ip_ranges/%s.json" % (cfg.get('cegonha', 'service'), vlan_id, range_id))
except:
RANGE = cegonha.get("http://%s/vlans/%s/ip_ranges/%s.json" % (cfg.get('cegonha', 'service'), vlan_id, range_id))
else:
break
if RANGE:
occupied = RANGE['ip_range']['total_occupied_ips']
available = RANGE['ip_range']['total_available_ips']
else:
return [ 2, "CRITICAL Nao foi possivel conectar no Cegonha" ]
total = (available + occupied)
percent = (available * 100) / total
for i in range(100):
try:
vlan_name = cegonha.get("http://%s/vlans/%s.json" % (cfg.get('cegonha', 'service'),vlan_id))['vlan']['name']
except:
vlan_name = cegonha.get("http://%s/vlans/%s.json" % (cfg.get('cegonha', 'service'),vlan_id))['vlan']['name']
else:
break
if percent <= total_free:
return [ 2, "CRITICAL - Range %s da VLAN %s com %s IPs livres" % (RANGE['ip_range']['name'], vlan_name, available) ]
else:
return [ 0, "OK - Range %s da VLAN %s com %s IPs livres" % (RANGE['ip_range']['name'], vlan_name, available) ]
except Exception, e:
return [2,"CRITICAL: %s" % repr(e)]