1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Prefetch installed components when adding modules

This commit is contained in:
kkthxbye-code
2022-05-04 23:21:03 +02:00
parent 81c7fe2084
commit c52aa2196d

View File

@ -1086,13 +1086,17 @@ class Module(NetBoxModel, ConfigContextModel):
create_instances = []
update_instances = []
# Prefetch installed components
installed_components = {
component.name: component for component in getattr(self.device, component_attribute).filter(module__isnull=True)
}
# Get the template for the module type.
for template in getattr(self.module_type, templates).all():
template_instance = template.instantiate(device=self.device, module=self)
if adopt_components:
existing_item = getattr(self.device, component_attribute).filter(
module__isnull=True, name=template_instance.name).first()
existing_item = installed_components.get(template_instance.name)
# Check if there's a component with the same name already
if existing_item: