52 lines
1.6 KiB
Python
52 lines
1.6 KiB
Python
import pynetbox
|
|
import yaml
|
|
|
|
with open('/etc/netbox_agent.yaml', 'r') as ymlfile:
|
|
# FIXME: validate configuration file
|
|
config = yaml.load(ymlfile)
|
|
|
|
netbox_instance = pynetbox.api(
|
|
url=config['netbox']['url'],
|
|
token=config['netbox']['token']
|
|
)
|
|
|
|
LOG_LEVEL = config.get('log_level', 'debug')
|
|
|
|
DATACENTER_LOCATION_DRIVER_FILE = None
|
|
DATACENTER_LOCATION = None
|
|
DATACENTER_LOCATION_REGEX = None
|
|
RACK_LOCATION_DRIVER_FILE = None
|
|
RACK_LOCATION = None
|
|
RACK_LOCATION_REGEX = None
|
|
SLOT_LOCATION_DRIVER_FILE = None
|
|
SLOT_LOCATION = None
|
|
SLOT_LOCATION_REGEX = None
|
|
|
|
if config.get('datacenter_location'):
|
|
dc_loc = config.get('datacenter_location')
|
|
DATACENTER_LOCATION_DRIVER_FILE = dc_loc.get('driver_file')
|
|
DATACENTER_LOCATION = dc_loc.get('driver')
|
|
DATACENTER_LOCATION_REGEX = dc_loc.get('regex')
|
|
|
|
if config.get('rack_location'):
|
|
rack_location = config['rack_location']
|
|
RACK_LOCATION_DRIVER_FILE = rack_location.get('driver_file')
|
|
RACK_LOCATION = rack_location.get('driver')
|
|
RACK_LOCATION_REGEX = rack_location.get('regex')
|
|
|
|
if config.get('slot_location'):
|
|
slot_location = config['slot_location']
|
|
SLOT_LOCATION_DRIVER_FILE = slot_location.get('driver_file')
|
|
SLOT_LOCATION = slot_location.get('driver')
|
|
SLOT_LOCATION_REGEX = slot_location.get('regex')
|
|
|
|
|
|
NETWORK_IGNORE_INTERFACES = None
|
|
NETWORK_IGNORE_IPS = None
|
|
NETWORK_LLDP = None
|
|
if config.get('network'):
|
|
NETWORK_IGNORE_INTERFACES = config['network'].get('ignore_interfaces')
|
|
NETWORK_IGNORE_IPS = config['network'].get('ignore_ips')
|
|
NETWORK_LLDP = config['network'].get('lldp') is True
|
|
|
|
INVENTORY_ENABLED = config.get('inventory') is True
|