File: //usr/lib/python2.7/site-packages/lap/cegonha_vlan.py
import yaml
from configuration_agent import cegonha, config
cfg = config.load()
ranges = []
result = []
def __run__(params):
try:
total_free = params.get("total_free")
vlan_id = params.get("vlan_id")
total = int()
total_available = int()
for i in range(100):
try:
RANGES = cegonha.get("http://%s/vlans/%s/ip_ranges.json" % (cfg.get('cegonha', 'service'), vlan_id))
except:
RANGES = cegonha.get("http://%s/vlans/%s/ip_ranges.json" % (cfg.get('cegonha', 'service'), vlan_id))
else:
break
if not RANGES:
return [ 2, "CRITICAL - Nao foi possivel conectar no Cegonha"]
for r in RANGES:
for i in range(100):
try:
vlan = cegonha.get("http://%s/vlans/%s/ip_ranges/%s.json" % (cfg.get('cegonha', 'service'), vlan_id, r['ip_range']['id']))
except:
vlan = cegonha.get("http://%s/vlans/%s/ip_ranges/%s.json" % (cfg.get('cegonha', 'service'), vlan_id, r['ip_range']['id']))
else:
break
occupied = vlan['ip_range']['total_occupied_ips']
available = vlan['ip_range']['total_available_ips']
total = total + (available + occupied)
total_available = total_available + available
percent = (total_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 - VLAN %s %s com pouco IP disponivel. Total Livre %s" % (vlan_id, vlan_name, total_available)]
else:
return [0, "OK - VLAN %s %s com %s IPs livres " % (vlan_id, vlan_name, total_available)]
except Exception, e:
return [2,"CRITICAL: %s" % repr(e)]