bundles/routeros: this does not need to be a metadata reactor
This commit is contained in:
parent
d1f182607d
commit
b72d82b894
1 changed files with 84 additions and 93 deletions
|
@ -2,36 +2,13 @@ import re
|
||||||
from json import load
|
from json import load
|
||||||
from os.path import join
|
from os.path import join
|
||||||
|
|
||||||
defaults = {
|
|
||||||
'icinga2_api': {
|
|
||||||
'routeros': {
|
|
||||||
'services': {
|
|
||||||
'TEMPERATURE': {
|
|
||||||
'check_command': 'snmp',
|
|
||||||
'vars.snmp_oid': '1.3.6.1.4.1.14988.1.1.3.11.0',
|
|
||||||
'vars.snmp_version': '2c',
|
|
||||||
'vars.snmp_community': 'public',
|
|
||||||
'vars.warn': '@750:799', # 1/10 °C
|
|
||||||
'vars.crit': '@800:9999',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
|
with open(join(repo.path, 'configs', 'netbox', f'{node.name}.json')) as f:
|
||||||
@metadata_reactor.provides(
|
|
||||||
'routeros/ips',
|
|
||||||
'routeros/ports',
|
|
||||||
'routeros/vlans',
|
|
||||||
)
|
|
||||||
def get_ports_from_netbox_dump(metadata):
|
|
||||||
with open(join(repo.path, 'configs', 'netbox', f'{node.name}.json')) as f:
|
|
||||||
netbox = load(f)
|
netbox = load(f)
|
||||||
|
|
||||||
ips = {}
|
ips = {}
|
||||||
ports = {}
|
ports = {}
|
||||||
vlans = {
|
vlans = {
|
||||||
v['name']: {
|
v['name']: {
|
||||||
'id': v['vid'],
|
'id': v['vid'],
|
||||||
'delete': False,
|
'delete': False,
|
||||||
|
@ -39,9 +16,9 @@ def get_ports_from_netbox_dump(metadata):
|
||||||
'untagged': set(),
|
'untagged': set(),
|
||||||
}
|
}
|
||||||
for v in netbox['vlans']
|
for v in netbox['vlans']
|
||||||
}
|
}
|
||||||
|
|
||||||
for port, conf in netbox['interfaces'].items():
|
for port, conf in netbox['interfaces'].items():
|
||||||
for ip in conf['ips']:
|
for ip in conf['ips']:
|
||||||
ips[ip] = {'interface': port}
|
ips[ip] = {'interface': port}
|
||||||
|
|
||||||
|
@ -104,13 +81,27 @@ def get_ports_from_netbox_dump(metadata):
|
||||||
if conf['ips']:
|
if conf['ips']:
|
||||||
vlans[vlan]['tagged'].add('bridge')
|
vlans[vlan]['tagged'].add('bridge')
|
||||||
|
|
||||||
return {
|
defaults = {
|
||||||
|
'icinga2_api': {
|
||||||
|
'routeros': {
|
||||||
|
'services': {
|
||||||
|
'TEMPERATURE': {
|
||||||
|
'check_command': 'snmp',
|
||||||
|
'vars.snmp_oid': '1.3.6.1.4.1.14988.1.1.3.11.0',
|
||||||
|
'vars.snmp_version': '2c',
|
||||||
|
'vars.snmp_community': 'public',
|
||||||
|
'vars.warn': '@750:799', # 1/10 °C
|
||||||
|
'vars.crit': '@800:9999',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
'routeros': {
|
'routeros': {
|
||||||
'ips': ips,
|
'ips': ips,
|
||||||
'ports': ports,
|
'ports': ports,
|
||||||
'vlans': vlans,
|
'vlans': vlans,
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@metadata_reactor.provides('routeros/gateway')
|
@metadata_reactor.provides('routeros/gateway')
|
||||||
|
|
Loading…
Reference in a new issue