Configuring Logging in NetBox

Creating the log file and setting the permissions: $ sudo mkdir /var/log/netbox $ sudo touch /var/log/netbox/netbox.log $ sudo chown -R netbox.netbox /var/log/netbox $ Configuring NetBox (in /opt/netbox/netbox/netbox/configuration.py): You can set the level for the loggers as needed, in this setup the file handler accepts DEBUG and higher but the actual loggers (“django” and “netbox”) only […]

Basic Mocking with Pytest

Since I always seem to search for these examples over and over again, here it is, basic mocking with pytest. My example code is this (testmodule.py): It can be run: $ python3 testmodule.py In testfunc, sleeping $ Not surprisingly, running it takes about five seconds. The time.sleep() call simulates some long-running operation in the code. […]

Tag Guidelines in Zabbix

This is a tag-specific summary from the official Zabbix guidelines documentation, based on the situation as of Zabbix 6.0 LTS. Note: “Please note that this model might become enforced in the future Zabbix releases. Templates that do not follow specified rules will need to be updated.“ Tag name and value format lowercase only allowed characters: […]

Saving Gzip Files in Python

I have various Python applications that run periodically and deal with data in lists and dictionaries, and they save the processed and/or discovered data as JSON in text files for logging purposes or other later use. Typically the files are quite large and take up substantial amount of disk space. Since the applications run on […]

Selecting Pynetbox Version

If you have: And you need: Then you need to use: Because: NetBox 3.2.0 or newer /api/ipam/vlan-groups/<id>/available_vlans pynetbox 6.5.0 or newer Feature was added in NetBox 3.2 (not yet released) NetBox 3.1.1 or newer /api/ipam/prefixes/<id>/available_ips (or _prefixes) pynetbox 6.4.1 or newer NetBox behaviour was changed, pynetbox was updated to support that NetBox 3.1.0 or newer […]