Open
Description
Ansible NetBox Collection version
v3.20.0
Ansible version
ansible [core 2.17.7]
config file = <REDACTED>/ansible.cfg
configured module search path = ['<REDACTED>/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = <REDACTED>/lib64/python3.11/site-packages/ansible
ansible collection location = /<REDACTED>/collections
executable location = <REDACTED>/bin/ansible
python version = 3.11.9 (main, Sep 11 2024, 00:00:00) [GCC 11.5.0 20240719 (Red Hat 11.5.0-2.0.1)] (<REDACTED>/bin/python3.11)
jinja version = 3.1.4
libyaml = True
NetBox version
NetBox Community v4.1.11
Python version
3.11
Steps to Reproduce
$ date; ansible-inventory -i inventory/nb_test_vms.yml --list -vvv 2>&1 >testout; date
Content of inventory config file:
---
plugin: netbox.netbox.nb_inventory
api_endpoint: "https://netbox.\<REDACTED>"
validate_certs: false
flatten_custom_fields: false
plurals: false
group_by:
- tenant
group_names_raw: true
query_filters:
- tenant__n: \<REDACTED\>
device_query_filters:
- id: -1
prefixes: false
services: false
fetch_all: true
racks: false
rename_variables:
- pattern: custom_fields
repl: nb_inventory_custom_fields
- pattern: is_virtual
repl: nb_inventory_is_virtual
Expected Behavior
The plugin should not be taking several minutes to run. Need an option to turn off the "limit" behavior.
Using just a single limit, takes 14 seconds
$ date; curl -s "https://netbox.<REDACTED>/api/virtualization/virtual-machines/?limit=0&tenant__n=<REDACTED>&exclude=config_context" -H "Authorization: Token $NETBOX_TOKEN" > /dev/null; date
Tue 14 Jan 16:33:58 UTC 2025
Tue 14 Jan 16:34:12 UTC 2025
Using no limit, takes 2 seconds
$ date; curl -s "https://netbox.<REDACTED>/api/virtualization/virtual-machines/?tenant__n=<REDACTED>&exclude=config_context" -H "Authorization: Token $NETBOX_TOKEN" > /dev/null; date
Tue 14 Jan 16:35:54 UTC 2025
Tue 14 Jan 16:35:56 UTC 2025
Observed Behavior
Output from the above inventory command:
Inventory plugin takes almost 7 minutes
Tue 14 Jan 01:14:36 UTC 2025
Tue 14 Jan 01:21:27 UTC 2025
Beginning of the output file:
...
Fetching: https://netbox.<REDACTED>/api/status
Fetching: https://netbox.<REDACTED>/api/dcim/devices/?limit=0&tenant__n=<REDACTED>&id=-1&exclude=config_context
Fetching: https://netbox.<REDACTED>/api/virtualization/virtual-machines/?limit=0&tenant__n=<REDACTED>&exclude=config_context
Fetching: https://netbox.<REDACTED>/api/virtualization/virtual-machines/?exclude=config_context&limit=1000&offset=1000&tenant__n=<REDACTED>
Fetching: https://netbox.<REDACTED>/api/virtualization/virtual-machines/?exclude=config_context&limit=1000&offset=2000&tenant__n=<REDACTED>
Fetching: https://netbox.<REDACTED>/api/virtualization/virtual-machines/?exclude=config_context&limit=1000&offset=3000&tenant__n=<REDACTED>
Fetching: https://netbox.<REDACTED>/api/virtualization/virtual-machines/?exclude=config_context&limit=1000&offset=4000&tenant__n=<REDACTED>
Fetching: https://netbox.<REDACTED>/api/virtualization/virtual-machines/?exclude=config_context&limit=1000&offset=5000&tenant__n=<REDACTED>
Fetching: https://netbox.<REDACTED>/api/virtualization/virtual-machines/?exclude=config_context&limit=1000&offset=6000&tenant__n=<REDACTED>
Fetching: https://netbox.<REDACTED>/api/virtualization/virtual-machines/?exclude=config_context&limit=1000&offset=7000&tenant__n=<REDACTED>
Fetching: https://netbox.<REDACTED>/api/virtualization/virtual-machines/?exclude=config_context&limit=1000&offset=8000&tenant__n=<REDACTED>
Fetching: https://netbox.<REDACTED>/api/virtualization/virtual-machines/?exclude=config_context&limit=1000&offset=9000&tenant__n=<REDACTED>
Fetching: https://netbox.<REDACTED>/api/virtualization/virtual-machines/?exclude=config_context&limit=1000&offset=10000&tenant__n=<REDACTED>
Fetching: https://netbox.<REDACTED>/api/virtualization/virtual-machines/?exclude=config_context&limit=1000&offset=11000&tenant__n=<REDACTED>
Fetching: https://netbox.<REDACTED>/api/virtualization/virtual-machines/?exclude=config_context&limit=1000&offset=12000&tenant__n=<REDACTED>
Fetching: https://netbox.<REDACTED>/api/virtualization/virtual-machines/?exclude=config_context&limit=1000&offset=13000&tenant__n=<REDACTED>
Fetching: https://netbox.<REDACTED>/api/virtualization/virtual-machines/?exclude=config_context&limit=1000&offset=14000&tenant__n=<REDACTED>
Fetching: https://netbox.<REDACTED>/api/virtualization/virtual-machines/?exclude=config_context&limit=1000&offset=15000&tenant__n=<REDACTED>
Fetching: https://netbox.<REDACTED>/api/virtualization/virtual-machines/?exclude=config_context&limit=1000&offset=16000&tenant__n=<REDACTED>
Fetching: https://netbox.<REDACTED>/api/virtualization/virtual-machines/?exclude=config_context&limit=1000&offset=17000&tenant__n=<REDACTED>
Fetching: https://netbox.<REDACTED>/api/virtualization/virtual-machines/?exclude=config_context&limit=1000&offset=18000&tenant__n=<REDACTED>
Fetching: https://netbox.<REDACTED>/api/virtualization/virtual-machines/?exclude=config_context&limit=1000&offset=19000&tenant__n=<REDACTED>
Fetching: https://netbox.<REDACTED>/api/virtualization/virtual-machines/?exclude=config_context&limit=1000&offset=20000&tenant__n=<REDACTED>
Fetching: https://netbox.<REDACTED>/api/virtualization/virtual-machines/?exclude=config_context&limit=1000&offset=21000&tenant__n=<REDACTED>
Fetching: https://netbox.<REDACTED>/api/virtualization/virtual-machines/?exclude=config_context&limit=1000&offset=22000&tenant__n=<REDACTED>
Fetching: https://netbox.<REDACTED>/api/virtualization/virtual-machines/?exclude=config_context&limit=1000&offset=23000&tenant__n=<REDACTED>
Fetching: https://netbox.<REDACTED>/api/virtualization/virtual-machines/?exclude=config_context&limit=1000&offset=24000&tenant__n=<REDACTED>
Fetching: https://netbox.<REDACTED>/api/virtualization/virtual-machines/?exclude=config_context&limit=1000&offset=25000&tenant__n=<REDACTED>
Fetching: https://netbox.<REDACTED>/api/virtualization/virtual-machines/?exclude=config_context&limit=1000&offset=26000&tenant__n=<REDACTED>
Fetching: https://netbox.<REDACTED>/api/virtualization/virtual-machines/?exclude=config_context&limit=1000&offset=27000&tenant__n=<REDACTED>
Fetching: https://netbox.<REDACTED>/api/virtualization/virtual-machines/?exclude=config_context&limit=1000&offset=28000&tenant__n=<REDACTED>
Fetching: https://netbox.<REDACTED>/api/virtualization/virtual-machines/?exclude=config_context&limit=1000&offset=29000&tenant__n=<REDACTED>
Fetching: https://netbox.<REDACTED>/api/virtualization/virtual-machines/?exclude=config_context&limit=1000&offset=30000&tenant__n=<REDACTED>
Fetching: https://netbox.<REDACTED>/api/virtualization/virtual-machines/?exclude=config_context&limit=1000&offset=31000&tenant__n=<REDACTED>
Fetching: https://netbox.<REDACTED>/api/dcim/sites/?limit=0
Fetching: https://netbox.<REDACTED>/api/dcim/regions/?limit=0
Fetching: https://netbox.<REDACTED>/api/dcim/site-groups/?limit=0
Fetching: https://netbox.<REDACTED>/api/dcim/locations/?limit=0
Fetching: https://netbox.<REDACTED>/api/tenancy/tenants/?limit=0
Fetching: https://netbox.<REDACTED>/api/dcim/device-roles/?limit=0
Fetching: https://netbox.<REDACTED>/api/dcim/platforms/?limit=0
Fetching: https://netbox.<REDACTED>/api/dcim/device-types/?limit=0
Fetching: https://netbox.<REDACTED>/api/dcim/manufacturers/?limit=0
Fetching: https://netbox.<REDACTED>/api/virtualization/clusters/?limit=0
Parsed <REDACTED>/inventory/nb_test_vms.yml inventory source with auto plugin
...
Activity