(venv) root@netbox1001:/srv/deployment/netbox/deploy/src/netbox# python manage.py nbshell /srv/deployment/netbox/deploy-cache/revs/5251cf14234a945a529f72863af30797baeed8fd/src/netbox/netbox/settings.py:192: UserWarning: The 'webhooks' REDIS configuration section has been renamed to 'tasks'. Please update your configuration as support for the old name will be removed in a future release. "The 'webhooks' REDIS configuration section has been renamed to 'tasks'. Please update your configuration as " ### NetBox interactive shell (netbox1001) ### Python 3.7.3 | Django 3.0.6 | NetBox 2.8.4 ### lsmodels() will show available models. Use help() for more info. >>> import uuid >>> >>> import netaddr >>> >>> >>> def reserve_ips(prefix, request_id, user): ... # The first IP is excluded by get_first_available_ip() for non-pool prefixes ... to_reserve = [f'{p}/{prefix.prefix.prefixlen}' for p in netaddr.IPSet(prefix.prefix)][:6] ... while True: ... next_ip = prefix.get_first_available_ip() ... if next_ip not in to_reserve: ... print(f'Prefix {prefix} has all first 5 IPs assigned or reserved') ... break ... print(f'Reserving IP {next_ip} in prefix {prefix}') ... address = IPAddress(address=next_ip, status='reserved', tenant=prefix.tenant, description='reserved for infra') ... address.save() ... log = address.to_objectchange('create') ... log.request_id = request_id ... log.user = user ... log.save() ... >>> request_id = uuid.uuid4() >>> user = User.objects.get(username='volans') >>> all_prefixes = Prefix.objects.filter(status='active') >>> for prefix in all_prefixes: ... if prefix.prefix.prefixlen > 28: ... continue ... if prefix.role is not None: ... reserve_ips(prefix, request_id, user) ... continue ... if prefix.vlan is None or prefix.vlan.name.startswith('cloud-instances'): ... continue ... reserve_ips(prefix, request_id, user) ... Reserving IP 10.20.0.1/24 in prefix 10.20.0.0/24 Reserving IP 10.20.0.2/24 in prefix 10.20.0.0/24 Reserving IP 10.20.0.3/24 in prefix 10.20.0.0/24 Reserving IP 10.20.0.4/24 in prefix 10.20.0.0/24 Reserving IP 10.20.0.5/24 in prefix 10.20.0.0/24 Prefix 10.20.0.0/24 has all first 5 IPs assigned or reserved Reserving IP 10.21.0.2/24 in prefix 10.21.0.0/24 Reserving IP 10.21.0.3/24 in prefix 10.21.0.0/24 Reserving IP 10.21.0.4/24 in prefix 10.21.0.0/24 Reserving IP 10.21.0.5/24 in prefix 10.21.0.0/24 Prefix 10.21.0.0/24 has all first 5 IPs assigned or reserved Reserving IP 10.64.0.1/22 in prefix 10.64.0.0/22 Reserving IP 10.64.0.2/22 in prefix 10.64.0.0/22 Reserving IP 10.64.0.3/22 in prefix 10.64.0.0/22 Reserving IP 10.64.0.4/22 in prefix 10.64.0.0/22 Reserving IP 10.64.0.5/22 in prefix 10.64.0.0/22 Prefix 10.64.0.0/22 has all first 5 IPs assigned or reserved Reserving IP 10.64.4.1/24 in prefix 10.64.4.0/24 Reserving IP 10.64.4.2/24 in prefix 10.64.4.0/24 Reserving IP 10.64.4.3/24 in prefix 10.64.4.0/24 Reserving IP 10.64.4.4/24 in prefix 10.64.4.0/24 Reserving IP 10.64.4.5/24 in prefix 10.64.4.0/24 Prefix 10.64.4.0/24 has all first 5 IPs assigned or reserved Reserving IP 10.64.5.1/24 in prefix 10.64.5.0/24 Reserving IP 10.64.5.2/24 in prefix 10.64.5.0/24 Reserving IP 10.64.5.3/24 in prefix 10.64.5.0/24 Reserving IP 10.64.5.4/24 in prefix 10.64.5.0/24 Reserving IP 10.64.5.5/24 in prefix 10.64.5.0/24 Prefix 10.64.5.0/24 has all first 5 IPs assigned or reserved Reserving IP 10.64.16.1/22 in prefix 10.64.16.0/22 Reserving IP 10.64.16.2/22 in prefix 10.64.16.0/22 Reserving IP 10.64.16.3/22 in prefix 10.64.16.0/22 Reserving IP 10.64.16.4/22 in prefix 10.64.16.0/22 Reserving IP 10.64.16.5/22 in prefix 10.64.16.0/22 Prefix 10.64.16.0/22 has all first 5 IPs assigned or reserved Reserving IP 10.64.20.1/24 in prefix 10.64.20.0/24 Reserving IP 10.64.20.2/24 in prefix 10.64.20.0/24 Reserving IP 10.64.20.3/24 in prefix 10.64.20.0/24 Reserving IP 10.64.20.4/24 in prefix 10.64.20.0/24 Reserving IP 10.64.20.5/24 in prefix 10.64.20.0/24 Prefix 10.64.20.0/24 has all first 5 IPs assigned or reserved Reserving IP 10.64.21.1/24 in prefix 10.64.21.0/24 Reserving IP 10.64.21.2/24 in prefix 10.64.21.0/24 Reserving IP 10.64.21.3/24 in prefix 10.64.21.0/24 Reserving IP 10.64.21.4/24 in prefix 10.64.21.0/24 Reserving IP 10.64.21.5/24 in prefix 10.64.21.0/24 Prefix 10.64.21.0/24 has all first 5 IPs assigned or reserved Reserving IP 10.64.32.1/22 in prefix 10.64.32.0/22 Reserving IP 10.64.32.2/22 in prefix 10.64.32.0/22 Reserving IP 10.64.32.3/22 in prefix 10.64.32.0/22 Reserving IP 10.64.32.4/22 in prefix 10.64.32.0/22 Reserving IP 10.64.32.5/22 in prefix 10.64.32.0/22 Prefix 10.64.32.0/22 has all first 5 IPs assigned or reserved Reserving IP 10.64.36.1/24 in prefix 10.64.36.0/24 Reserving IP 10.64.36.2/24 in prefix 10.64.36.0/24 Reserving IP 10.64.36.3/24 in prefix 10.64.36.0/24 Reserving IP 10.64.36.4/24 in prefix 10.64.36.0/24 Reserving IP 10.64.36.5/24 in prefix 10.64.36.0/24 Prefix 10.64.36.0/24 has all first 5 IPs assigned or reserved Reserving IP 10.64.37.1/24 in prefix 10.64.37.0/24 Reserving IP 10.64.37.2/24 in prefix 10.64.37.0/24 Reserving IP 10.64.37.3/24 in prefix 10.64.37.0/24 Reserving IP 10.64.37.4/24 in prefix 10.64.37.0/24 Reserving IP 10.64.37.5/24 in prefix 10.64.37.0/24 Prefix 10.64.37.0/24 has all first 5 IPs assigned or reserved Reserving IP 10.64.40.1/27 in prefix 10.64.40.0/27 Reserving IP 10.64.40.2/27 in prefix 10.64.40.0/27 Reserving IP 10.64.40.3/27 in prefix 10.64.40.0/27 Reserving IP 10.64.40.4/27 in prefix 10.64.40.0/27 Reserving IP 10.64.40.5/27 in prefix 10.64.40.0/27 Prefix 10.64.40.0/27 has all first 5 IPs assigned or reserved Reserving IP 10.64.40.33/27 in prefix 10.64.40.32/27 Reserving IP 10.64.40.34/27 in prefix 10.64.40.32/27 Reserving IP 10.64.40.35/27 in prefix 10.64.40.32/27 Reserving IP 10.64.40.36/27 in prefix 10.64.40.32/27 Reserving IP 10.64.40.37/27 in prefix 10.64.40.32/27 Prefix 10.64.40.32/27 has all first 5 IPs assigned or reserved Reserving IP 10.64.40.65/27 in prefix 10.64.40.64/27 Reserving IP 10.64.40.66/27 in prefix 10.64.40.64/27 Reserving IP 10.64.40.67/27 in prefix 10.64.40.64/27 Reserving IP 10.64.40.68/27 in prefix 10.64.40.64/27 Reserving IP 10.64.40.69/27 in prefix 10.64.40.64/27 Prefix 10.64.40.64/27 has all first 5 IPs assigned or reserved Reserving IP 10.64.40.97/27 in prefix 10.64.40.96/27 Reserving IP 10.64.40.98/27 in prefix 10.64.40.96/27 Reserving IP 10.64.40.99/27 in prefix 10.64.40.96/27 Reserving IP 10.64.40.100/27 in prefix 10.64.40.96/27 Reserving IP 10.64.40.101/27 in prefix 10.64.40.96/27 Prefix 10.64.40.96/27 has all first 5 IPs assigned or reserved Reserving IP 10.64.40.129/27 in prefix 10.64.40.128/27 Reserving IP 10.64.40.130/27 in prefix 10.64.40.128/27 Reserving IP 10.64.40.131/27 in prefix 10.64.40.128/27 Reserving IP 10.64.40.132/27 in prefix 10.64.40.128/27 Reserving IP 10.64.40.133/27 in prefix 10.64.40.128/27 Prefix 10.64.40.128/27 has all first 5 IPs assigned or reserved Reserving IP 10.64.40.161/27 in prefix 10.64.40.160/27 Reserving IP 10.64.40.162/27 in prefix 10.64.40.160/27 Reserving IP 10.64.40.163/27 in prefix 10.64.40.160/27 Reserving IP 10.64.40.164/27 in prefix 10.64.40.160/27 Reserving IP 10.64.40.165/27 in prefix 10.64.40.160/27 Prefix 10.64.40.160/27 has all first 5 IPs assigned or reserved Prefix 10.64.40.192/26 has all first 5 IPs assigned or reserved Reserving IP 10.64.48.1/22 in prefix 10.64.48.0/22 Reserving IP 10.64.48.2/22 in prefix 10.64.48.0/22 Reserving IP 10.64.48.3/22 in prefix 10.64.48.0/22 Reserving IP 10.64.48.4/22 in prefix 10.64.48.0/22 Reserving IP 10.64.48.5/22 in prefix 10.64.48.0/22 Prefix 10.64.48.0/22 has all first 5 IPs assigned or reserved Reserving IP 10.64.53.1/24 in prefix 10.64.53.0/24 Reserving IP 10.64.53.2/24 in prefix 10.64.53.0/24 Reserving IP 10.64.53.3/24 in prefix 10.64.53.0/24 Reserving IP 10.64.53.4/24 in prefix 10.64.53.0/24 Reserving IP 10.64.53.5/24 in prefix 10.64.53.0/24 Prefix 10.64.53.0/24 has all first 5 IPs assigned or reserved Prefix 10.65.0.0/16 has all first 5 IPs assigned or reserved Reserving IP 10.128.0.4/24 in prefix 10.128.0.0/24 Reserving IP 10.128.0.5/24 in prefix 10.128.0.0/24 Prefix 10.128.0.0/24 has all first 5 IPs assigned or reserved Reserving IP 10.128.128.2/17 in prefix 10.128.128.0/17 Reserving IP 10.128.128.3/17 in prefix 10.128.128.0/17 Prefix 10.128.128.0/17 has all first 5 IPs assigned or reserved Reserving IP 10.132.0.1/24 in prefix 10.132.0.0/24 Reserving IP 10.132.0.2/24 in prefix 10.132.0.0/24 Reserving IP 10.132.0.3/24 in prefix 10.132.0.0/24 Reserving IP 10.132.0.4/24 in prefix 10.132.0.0/24 Reserving IP 10.132.0.5/24 in prefix 10.132.0.0/24 Prefix 10.132.0.0/24 has all first 5 IPs assigned or reserved Prefix 10.132.128.0/17 has all first 5 IPs assigned or reserved Reserving IP 10.192.0.1/22 in prefix 10.192.0.0/22 Reserving IP 10.192.0.2/22 in prefix 10.192.0.0/22 Reserving IP 10.192.0.3/22 in prefix 10.192.0.0/22 Reserving IP 10.192.0.4/22 in prefix 10.192.0.0/22 Reserving IP 10.192.0.5/22 in prefix 10.192.0.0/22 Prefix 10.192.0.0/22 has all first 5 IPs assigned or reserved Reserving IP 10.192.16.1/22 in prefix 10.192.16.0/22 Reserving IP 10.192.16.2/22 in prefix 10.192.16.0/22 Reserving IP 10.192.16.3/22 in prefix 10.192.16.0/22 Reserving IP 10.192.16.4/22 in prefix 10.192.16.0/22 Reserving IP 10.192.16.5/22 in prefix 10.192.16.0/22 Prefix 10.192.16.0/22 has all first 5 IPs assigned or reserved Reserving IP 10.192.20.1/24 in prefix 10.192.20.0/24 Reserving IP 10.192.20.2/24 in prefix 10.192.20.0/24 Reserving IP 10.192.20.3/24 in prefix 10.192.20.0/24 Reserving IP 10.192.20.4/24 in prefix 10.192.20.0/24 Reserving IP 10.192.20.5/24 in prefix 10.192.20.0/24 Prefix 10.192.20.0/24 has all first 5 IPs assigned or reserved Reserving IP 10.192.21.1/24 in prefix 10.192.21.0/24 Reserving IP 10.192.21.2/24 in prefix 10.192.21.0/24 Reserving IP 10.192.21.3/24 in prefix 10.192.21.0/24 Reserving IP 10.192.21.4/24 in prefix 10.192.21.0/24 Reserving IP 10.192.21.5/24 in prefix 10.192.21.0/24 Prefix 10.192.21.0/24 has all first 5 IPs assigned or reserved Reserving IP 10.192.32.1/22 in prefix 10.192.32.0/22 Reserving IP 10.192.32.2/22 in prefix 10.192.32.0/22 Reserving IP 10.192.32.3/22 in prefix 10.192.32.0/22 Reserving IP 10.192.32.4/22 in prefix 10.192.32.0/22 Reserving IP 10.192.32.5/22 in prefix 10.192.32.0/22 Prefix 10.192.32.0/22 has all first 5 IPs assigned or reserved Reserving IP 10.192.48.1/22 in prefix 10.192.48.0/22 Reserving IP 10.192.48.2/22 in prefix 10.192.48.0/22 Reserving IP 10.192.48.3/22 in prefix 10.192.48.0/22 Reserving IP 10.192.48.4/22 in prefix 10.192.48.0/22 Reserving IP 10.192.48.5/22 in prefix 10.192.48.0/22 Prefix 10.192.48.0/22 has all first 5 IPs assigned or reserved Reserving IP 10.193.0.2/16 in prefix 10.193.0.0/16 Reserving IP 10.193.0.4/16 in prefix 10.193.0.0/16 Reserving IP 10.193.0.5/16 in prefix 10.193.0.0/16 Prefix 10.193.0.0/16 has all first 5 IPs assigned or reserved Reserving IP 10.195.0.1/27 in prefix 10.195.0.0/27 Reserving IP 10.195.0.2/27 in prefix 10.195.0.0/27 Reserving IP 10.195.0.3/27 in prefix 10.195.0.0/27 Reserving IP 10.195.0.4/27 in prefix 10.195.0.0/27 Reserving IP 10.195.0.5/27 in prefix 10.195.0.0/27 Prefix 10.195.0.0/27 has all first 5 IPs assigned or reserved Reserving IP 10.195.0.33/27 in prefix 10.195.0.32/27 Reserving IP 10.195.0.34/27 in prefix 10.195.0.32/27 Reserving IP 10.195.0.35/27 in prefix 10.195.0.32/27 Reserving IP 10.195.0.36/27 in prefix 10.195.0.32/27 Reserving IP 10.195.0.37/27 in prefix 10.195.0.32/27 Prefix 10.195.0.32/27 has all first 5 IPs assigned or reserved Reserving IP 10.195.0.65/28 in prefix 10.195.0.64/28 Reserving IP 10.195.0.66/28 in prefix 10.195.0.64/28 Reserving IP 10.195.0.67/28 in prefix 10.195.0.64/28 Reserving IP 10.195.0.68/28 in prefix 10.195.0.64/28 Reserving IP 10.195.0.69/28 in prefix 10.195.0.64/28 Prefix 10.195.0.64/28 has all first 5 IPs assigned or reserved Reserving IP 10.195.0.97/27 in prefix 10.195.0.96/27 Reserving IP 10.195.0.98/27 in prefix 10.195.0.96/27 Reserving IP 10.195.0.99/27 in prefix 10.195.0.96/27 Reserving IP 10.195.0.100/27 in prefix 10.195.0.96/27 Reserving IP 10.195.0.101/27 in prefix 10.195.0.96/27 Prefix 10.195.0.96/27 has all first 5 IPs assigned or reserved Reserving IP 91.198.174.1/25 in prefix 91.198.174.0/25 Reserving IP 91.198.174.2/25 in prefix 91.198.174.0/25 Reserving IP 91.198.174.3/25 in prefix 91.198.174.0/25 Reserving IP 91.198.174.4/25 in prefix 91.198.174.0/25 Reserving IP 91.198.174.5/25 in prefix 91.198.174.0/25 Prefix 91.198.174.0/25 has all first 5 IPs assigned or reserved Reserving IP 91.198.174.129/28 in prefix 91.198.174.128/28 Reserving IP 91.198.174.130/28 in prefix 91.198.174.128/28 Reserving IP 91.198.174.131/28 in prefix 91.198.174.128/28 Reserving IP 91.198.174.132/28 in prefix 91.198.174.128/28 Reserving IP 91.198.174.133/28 in prefix 91.198.174.128/28 Prefix 91.198.174.128/28 has all first 5 IPs assigned or reserved Reserving IP 103.102.166.1/28 in prefix 103.102.166.0/28 Reserving IP 103.102.166.2/28 in prefix 103.102.166.0/28 Reserving IP 103.102.166.3/28 in prefix 103.102.166.0/28 Reserving IP 103.102.166.4/28 in prefix 103.102.166.0/28 Reserving IP 103.102.166.5/28 in prefix 103.102.166.0/28 Prefix 103.102.166.0/28 has all first 5 IPs assigned or reserved Reserving IP 103.102.166.17/28 in prefix 103.102.166.16/28 Reserving IP 103.102.166.18/28 in prefix 103.102.166.16/28 Reserving IP 103.102.166.19/28 in prefix 103.102.166.16/28 Reserving IP 103.102.166.20/28 in prefix 103.102.166.16/28 Reserving IP 103.102.166.21/28 in prefix 103.102.166.16/28 Prefix 103.102.166.16/28 has all first 5 IPs assigned or reserved Reserving IP 198.35.26.4/28 in prefix 198.35.26.0/28 Reserving IP 198.35.26.5/28 in prefix 198.35.26.0/28 Prefix 198.35.26.0/28 has all first 5 IPs assigned or reserved Reserving IP 198.35.26.244/28 in prefix 198.35.26.240/28 Reserving IP 198.35.26.245/28 in prefix 198.35.26.240/28 Prefix 198.35.26.240/28 has all first 5 IPs assigned or reserved Reserving IP 208.80.152.241/28 in prefix 208.80.152.240/28 Reserving IP 208.80.152.242/28 in prefix 208.80.152.240/28 Reserving IP 208.80.152.243/28 in prefix 208.80.152.240/28 Reserving IP 208.80.152.244/28 in prefix 208.80.152.240/28 Reserving IP 208.80.152.245/28 in prefix 208.80.152.240/28 Prefix 208.80.152.240/28 has all first 5 IPs assigned or reserved Reserving IP 208.80.153.1/27 in prefix 208.80.153.0/27 Reserving IP 208.80.153.2/27 in prefix 208.80.153.0/27 Reserving IP 208.80.153.3/27 in prefix 208.80.153.0/27 Reserving IP 208.80.153.4/27 in prefix 208.80.153.0/27 Reserving IP 208.80.153.5/27 in prefix 208.80.153.0/27 Prefix 208.80.153.0/27 has all first 5 IPs assigned or reserved Reserving IP 208.80.153.33/27 in prefix 208.80.153.32/27 Reserving IP 208.80.153.34/27 in prefix 208.80.153.32/27 Reserving IP 208.80.153.35/27 in prefix 208.80.153.32/27 Reserving IP 208.80.153.36/27 in prefix 208.80.153.32/27 Reserving IP 208.80.153.37/27 in prefix 208.80.153.32/27 Prefix 208.80.153.32/27 has all first 5 IPs assigned or reserved Reserving IP 208.80.153.65/27 in prefix 208.80.153.64/27 Reserving IP 208.80.153.66/27 in prefix 208.80.153.64/27 Reserving IP 208.80.153.67/27 in prefix 208.80.153.64/27 Reserving IP 208.80.153.68/27 in prefix 208.80.153.64/27 Reserving IP 208.80.153.69/27 in prefix 208.80.153.64/27 Prefix 208.80.153.64/27 has all first 5 IPs assigned or reserved Reserving IP 208.80.153.97/27 in prefix 208.80.153.96/27 Reserving IP 208.80.153.98/27 in prefix 208.80.153.96/27 Reserving IP 208.80.153.99/27 in prefix 208.80.153.96/27 Reserving IP 208.80.153.100/27 in prefix 208.80.153.96/27 Reserving IP 208.80.153.101/27 in prefix 208.80.153.96/27 Prefix 208.80.153.96/27 has all first 5 IPs assigned or reserved Reserving IP 208.80.154.1/26 in prefix 208.80.154.0/26 Reserving IP 208.80.154.2/26 in prefix 208.80.154.0/26 Reserving IP 208.80.154.3/26 in prefix 208.80.154.0/26 Reserving IP 208.80.154.4/26 in prefix 208.80.154.0/26 Prefix 208.80.154.0/26 has all first 5 IPs assigned or reserved Reserving IP 208.80.154.65/26 in prefix 208.80.154.64/26 Reserving IP 208.80.154.66/26 in prefix 208.80.154.64/26 Reserving IP 208.80.154.67/26 in prefix 208.80.154.64/26 Reserving IP 208.80.154.68/26 in prefix 208.80.154.64/26 Reserving IP 208.80.154.69/26 in prefix 208.80.154.64/26 Prefix 208.80.154.64/26 has all first 5 IPs assigned or reserved Reserving IP 208.80.154.129/26 in prefix 208.80.154.128/26 Reserving IP 208.80.154.130/26 in prefix 208.80.154.128/26 Reserving IP 208.80.154.131/26 in prefix 208.80.154.128/26 Reserving IP 208.80.154.132/26 in prefix 208.80.154.128/26 Reserving IP 208.80.154.133/26 in prefix 208.80.154.128/26 Prefix 208.80.154.128/26 has all first 5 IPs assigned or reserved Reserving IP 208.80.155.65/28 in prefix 208.80.155.64/28 Reserving IP 208.80.155.66/28 in prefix 208.80.155.64/28 Reserving IP 208.80.155.67/28 in prefix 208.80.155.64/28 Reserving IP 208.80.155.68/28 in prefix 208.80.155.64/28 Reserving IP 208.80.155.69/28 in prefix 208.80.155.64/28 Prefix 208.80.155.64/28 has all first 5 IPs assigned or reserved Reserving IP 208.80.155.97/27 in prefix 208.80.155.96/27 Reserving IP 208.80.155.98/27 in prefix 208.80.155.96/27 Reserving IP 208.80.155.99/27 in prefix 208.80.155.96/27 Reserving IP 208.80.155.100/27 in prefix 208.80.155.96/27 Reserving IP 208.80.155.101/27 in prefix 208.80.155.96/27 Prefix 208.80.155.96/27 has all first 5 IPs assigned or reserved >>>