mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-24 09:28:38 -06:00
Fixes #5419: Update parent device/VM when deleting a primary IP
This commit is contained in:
parent
c249cd4ffd
commit
1fba4b7e32
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|
||||||
|
* [#5419](https://github.com/netbox-community/netbox/issues/5419) - Update parent device/VM when deleting a primary IP
|
||||||
* [#6144](https://github.com/netbox-community/netbox/issues/6144) - Fix MAC address field display in VM interfaces search form
|
* [#6144](https://github.com/netbox-community/netbox/issues/6144) - Fix MAC address field display in VM interfaces search form
|
||||||
* [#6152](https://github.com/netbox-community/netbox/issues/6152) - Fix custom field filtering for cables, virtual chassis
|
* [#6152](https://github.com/netbox-community/netbox/issues/6152) - Fix custom field filtering for cables, virtual chassis
|
||||||
|
|
||||||
|
@ -4,3 +4,6 @@ from django.apps import AppConfig
|
|||||||
class IPAMConfig(AppConfig):
|
class IPAMConfig(AppConfig):
|
||||||
name = "ipam"
|
name = "ipam"
|
||||||
verbose_name = "IPAM"
|
verbose_name = "IPAM"
|
||||||
|
|
||||||
|
def ready(self):
|
||||||
|
import ipam.signals
|
||||||
|
21
netbox/ipam/signals.py
Normal file
21
netbox/ipam/signals.py
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
from django.db.models.signals import pre_delete
|
||||||
|
from django.dispatch import receiver
|
||||||
|
|
||||||
|
from dcim.models import Device
|
||||||
|
from virtualization.models import VirtualMachine
|
||||||
|
from .models import IPAddress
|
||||||
|
|
||||||
|
|
||||||
|
@receiver(pre_delete, sender=IPAddress)
|
||||||
|
def clear_primary_ip(instance, **kwargs):
|
||||||
|
"""
|
||||||
|
When an IPAddress is deleted, trigger save() on any Devices/VirtualMachines for which it
|
||||||
|
was a primary IP.
|
||||||
|
"""
|
||||||
|
field_name = f'primary_ip{instance.family}'
|
||||||
|
device = Device.objects.filter(**{field_name: instance}).first()
|
||||||
|
if device:
|
||||||
|
device.save()
|
||||||
|
virtualmachine = VirtualMachine.objects.filter(**{field_name: instance}).first()
|
||||||
|
if virtualmachine:
|
||||||
|
virtualmachine.save()
|
Loading…
Reference in New Issue
Block a user