mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
38 lines
881 B
Python
38 lines
881 B
Python
|
import sys
|
||
|
from django.db import migrations
|
||
|
|
||
|
from ipam.utils import rebuild_prefixes
|
||
|
|
||
|
|
||
|
def populate_prefix_hierarchy(apps, schema_editor):
|
||
|
"""
|
||
|
Populate _depth and _children attrs for all Prefixes.
|
||
|
"""
|
||
|
Prefix = apps.get_model('ipam', 'Prefix')
|
||
|
VRF = apps.get_model('ipam', 'VRF')
|
||
|
|
||
|
total_count = Prefix.objects.count()
|
||
|
if 'test' not in sys.argv:
|
||
|
print(f'\nUpdating {total_count} prefixes...')
|
||
|
|
||
|
# Rebuild the global table
|
||
|
rebuild_prefixes(None)
|
||
|
|
||
|
# Iterate through all VRFs, rebuilding each
|
||
|
for vrf in VRF.objects.all():
|
||
|
rebuild_prefixes(vrf.pk)
|
||
|
|
||
|
|
||
|
class Migration(migrations.Migration):
|
||
|
|
||
|
dependencies = [
|
||
|
('ipam', '0047_prefix_depth_children'),
|
||
|
]
|
||
|
|
||
|
operations = [
|
||
|
migrations.RunPython(
|
||
|
code=populate_prefix_hierarchy,
|
||
|
reverse_code=migrations.RunPython.noop
|
||
|
),
|
||
|
]
|