-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add the ability to query all available subnets of type (e.g /27) under a prefix via the api #2100
Comments
There's also the We could extend this endpoint to accept a
A request for
Note that the first two prefixes are not aggregated as a single /26. |
The available-prefixes gives me what I want in terms of creation, thank you, I just couldn't easily find the feature in the docs. For reference:
The additional get request, you proposed would be perfect, as it will allow me to query if any addresses of a particular type are left on the parent, instead of having to error handle the failed post request. |
Hi Jeremy, sorry, probably this is already addressed question but we are having an issue. So how can I make this in Netbox? http://172.25.12.67/api/ipam/prefixes/?mask_length=29 Its look ling like this range then is occupied. Anyway, can you please advice how it should be done? Thanks in advance. BR, |
Query the API like @StevenArmstrong does in his example. You can write a similair script in Python (using the requests library) or something in Ansible to fully automate a deployment (using the uri module.) Test your setup first using the curl on the command line. To get the ID of the parent prefix, first query the API for the ID of the subnet. You'll get a JSON output so make sure you can convert the data / use the JSON path to extract the ID. The API url for this is http://IP/api/ipam/prefixes/?q=192.168.100.0/24 (parent prefix) curl -X POST -H "Authorization: Token " -H "Content-Type: application/json" -H "Accept: application/json; indent=4" http://localhost:8000/api/ipam/prefixes/10153/available-prefixes/ --data '[ |
@jeremystretch The two things I would add to that is have it check for things like "DHCP pool" and don't traverse into children of a DHCP pool. Perhaps a filter to limit the "levels" it traverses, for example:
So a query depth of 1 against /25 might return:
But a query depth of 2 against /25 might return:
|
Hi, thanks for tips. Cheers. Marin |
Looking into using netbox as a 'source of truth' for automating our network configuration & provisioning. I'd really like to see this feature implemented, so that I can query & choose an appropriate prefix, prior to actually allocating it at the end of the process assuming all the other steps are sucessful. |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. NetBox is governed by a small group of core maintainers which means not all opened issues may receive direct feedback. Please see our contributing guide. |
This issue has been automatically closed due to lack of activity. In an effort to reduce noise, please do not comment any further. Note that the core maintainers may elect to reopen this issue at a later date if deemed necessary. |
Issue type
[ ] Feature request
Description
After defining a top layer prefix of CIDR range /16, i want to be able to issue an api request to give me all available /27 ( as an example) subnets under the prefix based on what is available currently. Initially this will give /27 with all available permutations but not return them if they are being used. I could then create a /27 child subnet automatically with this information and set it to in use.
My use-case is I want to use netbox as a service of record for subnets, this will allow me to feed unique ranges to my automation scripts and request it from netbox.
This feature request would mean my automation can programmatically call netbox, retrieve an available subnet and then use this information to create a unique subnet in the cloud provider.
At the moment you have similar functionality using "/api/ipam/prefixes/<pk>/available-ips/"
I would like to see something similar for subnets so as an example "/api/ipam/prefixes/<pk>/<suffix>/available-subnets/" and be able to pass <suffix> as a /27 or /29 etc and based on the prefix <pk> return a list of what is available as a /27 or /29 range in terms of subnets.
The text was updated successfully, but these errors were encountered: