From 8951aa815fe49922b3be5f6f87f82c495aef4b04 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 13 Dec 2024 05:02:21 +0000 Subject: [PATCH 01/11] Update source translation strings --- netbox/translations/en/LC_MESSAGES/django.po | 126 +++++++++---------- 1 file changed, 63 insertions(+), 63 deletions(-) diff --git a/netbox/translations/en/LC_MESSAGES/django.po b/netbox/translations/en/LC_MESSAGES/django.po index 9bb609694..5f49057fb 100644 --- a/netbox/translations/en/LC_MESSAGES/django.po +++ b/netbox/translations/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-12 05:02+0000\n" +"POT-Creation-Date: 2024-12-13 05:02+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -145,7 +145,7 @@ msgstr "" #: netbox/dcim/filtersets.py:464 netbox/dcim/filtersets.py:1021 #: netbox/dcim/filtersets.py:1368 netbox/dcim/filtersets.py:1903 #: netbox/dcim/filtersets.py:2146 netbox/dcim/filtersets.py:2204 -#: netbox/ipam/filtersets.py:339 netbox/ipam/filtersets.py:959 +#: netbox/ipam/filtersets.py:341 netbox/ipam/filtersets.py:961 #: netbox/virtualization/filtersets.py:45 #: netbox/virtualization/filtersets.py:173 netbox/vpn/filtersets.py:358 msgid "Region (ID)" @@ -157,8 +157,8 @@ msgstr "" #: netbox/dcim/filtersets.py:471 netbox/dcim/filtersets.py:1028 #: netbox/dcim/filtersets.py:1375 netbox/dcim/filtersets.py:1910 #: netbox/dcim/filtersets.py:2153 netbox/dcim/filtersets.py:2211 -#: netbox/extras/filtersets.py:509 netbox/ipam/filtersets.py:346 -#: netbox/ipam/filtersets.py:966 netbox/virtualization/filtersets.py:52 +#: netbox/extras/filtersets.py:509 netbox/ipam/filtersets.py:348 +#: netbox/ipam/filtersets.py:968 netbox/virtualization/filtersets.py:52 #: netbox/virtualization/filtersets.py:180 netbox/vpn/filtersets.py:353 msgid "Region (slug)" msgstr "" @@ -168,8 +168,8 @@ msgstr "" #: netbox/dcim/filtersets.py:346 netbox/dcim/filtersets.py:477 #: netbox/dcim/filtersets.py:1034 netbox/dcim/filtersets.py:1381 #: netbox/dcim/filtersets.py:1916 netbox/dcim/filtersets.py:2159 -#: netbox/dcim/filtersets.py:2217 netbox/ipam/filtersets.py:352 -#: netbox/ipam/filtersets.py:972 netbox/virtualization/filtersets.py:58 +#: netbox/dcim/filtersets.py:2217 netbox/ipam/filtersets.py:354 +#: netbox/ipam/filtersets.py:974 netbox/virtualization/filtersets.py:58 #: netbox/virtualization/filtersets.py:186 msgid "Site group (ID)" msgstr "" @@ -180,7 +180,7 @@ msgstr "" #: netbox/dcim/filtersets.py:1041 netbox/dcim/filtersets.py:1388 #: netbox/dcim/filtersets.py:1923 netbox/dcim/filtersets.py:2166 #: netbox/dcim/filtersets.py:2224 netbox/extras/filtersets.py:515 -#: netbox/ipam/filtersets.py:359 netbox/ipam/filtersets.py:979 +#: netbox/ipam/filtersets.py:361 netbox/ipam/filtersets.py:981 #: netbox/virtualization/filtersets.py:65 #: netbox/virtualization/filtersets.py:193 msgid "Site group (slug)" @@ -250,8 +250,8 @@ msgstr "" #: netbox/circuits/filtersets.py:62 netbox/circuits/filtersets.py:229 #: netbox/circuits/filtersets.py:274 netbox/dcim/filtersets.py:242 #: netbox/dcim/filtersets.py:363 netbox/dcim/filtersets.py:458 -#: netbox/extras/filtersets.py:531 netbox/ipam/filtersets.py:238 -#: netbox/ipam/filtersets.py:369 netbox/ipam/filtersets.py:989 +#: netbox/extras/filtersets.py:531 netbox/ipam/filtersets.py:240 +#: netbox/ipam/filtersets.py:371 netbox/ipam/filtersets.py:991 #: netbox/virtualization/filtersets.py:75 #: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:363 msgid "Site (slug)" @@ -270,13 +270,13 @@ msgstr "" #: netbox/circuits/filtersets.py:95 netbox/circuits/filtersets.py:122 #: netbox/circuits/filtersets.py:156 netbox/circuits/filtersets.py:283 -#: netbox/circuits/filtersets.py:325 netbox/ipam/filtersets.py:243 +#: netbox/circuits/filtersets.py:325 netbox/ipam/filtersets.py:245 msgid "Provider (ID)" msgstr "" #: netbox/circuits/filtersets.py:101 netbox/circuits/filtersets.py:128 #: netbox/circuits/filtersets.py:162 netbox/circuits/filtersets.py:289 -#: netbox/circuits/filtersets.py:331 netbox/ipam/filtersets.py:249 +#: netbox/circuits/filtersets.py:331 netbox/ipam/filtersets.py:251 msgid "Provider (slug)" msgstr "" @@ -305,8 +305,8 @@ msgstr "" #: netbox/dcim/filtersets.py:452 netbox/dcim/filtersets.py:1045 #: netbox/dcim/filtersets.py:1393 netbox/dcim/filtersets.py:1928 #: netbox/dcim/filtersets.py:2170 netbox/dcim/filtersets.py:2229 -#: netbox/ipam/filtersets.py:232 netbox/ipam/filtersets.py:363 -#: netbox/ipam/filtersets.py:983 netbox/virtualization/filtersets.py:69 +#: netbox/ipam/filtersets.py:234 netbox/ipam/filtersets.py:365 +#: netbox/ipam/filtersets.py:985 netbox/virtualization/filtersets.py:69 #: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:368 msgid "Site (ID)" msgstr "" @@ -1081,7 +1081,7 @@ msgstr "" #: netbox/circuits/tables/circuits.py:155 netbox/dcim/forms/bulk_edit.py:118 #: netbox/dcim/forms/bulk_import.py:100 netbox/dcim/forms/model_forms.py:117 #: netbox/dcim/tables/sites.py:89 netbox/extras/forms/filtersets.py:480 -#: netbox/ipam/filtersets.py:999 netbox/ipam/forms/bulk_edit.py:493 +#: netbox/ipam/filtersets.py:1001 netbox/ipam/forms/bulk_edit.py:493 #: netbox/ipam/forms/bulk_import.py:460 netbox/ipam/forms/model_forms.py:561 #: netbox/ipam/tables/fhrp.py:67 netbox/ipam/tables/vlans.py:122 #: netbox/ipam/tables/vlans.py:226 @@ -2891,7 +2891,7 @@ msgid "Parent site group (slug)" msgstr "" #: netbox/dcim/filtersets.py:164 netbox/extras/filtersets.py:364 -#: netbox/ipam/filtersets.py:841 netbox/ipam/filtersets.py:993 +#: netbox/ipam/filtersets.py:843 netbox/ipam/filtersets.py:995 msgid "Group (ID)" msgstr "" @@ -2949,15 +2949,15 @@ msgstr "" #: netbox/dcim/filtersets.py:411 netbox/dcim/filtersets.py:892 #: netbox/dcim/filtersets.py:994 netbox/dcim/filtersets.py:1850 -#: netbox/ipam/filtersets.py:381 netbox/ipam/filtersets.py:493 -#: netbox/ipam/filtersets.py:1003 netbox/virtualization/filtersets.py:210 +#: netbox/ipam/filtersets.py:383 netbox/ipam/filtersets.py:495 +#: netbox/ipam/filtersets.py:1005 netbox/virtualization/filtersets.py:210 msgid "Role (ID)" msgstr "" #: netbox/dcim/filtersets.py:417 netbox/dcim/filtersets.py:898 #: netbox/dcim/filtersets.py:1000 netbox/dcim/filtersets.py:1856 -#: netbox/extras/filtersets.py:558 netbox/ipam/filtersets.py:387 -#: netbox/ipam/filtersets.py:499 netbox/ipam/filtersets.py:1009 +#: netbox/extras/filtersets.py:558 netbox/ipam/filtersets.py:389 +#: netbox/ipam/filtersets.py:501 netbox/ipam/filtersets.py:1011 #: netbox/virtualization/filtersets.py:216 msgid "Role (slug)" msgstr "" @@ -3155,7 +3155,7 @@ msgstr "" msgid "Device model" msgstr "" -#: netbox/dcim/filtersets.py:1267 netbox/ipam/filtersets.py:632 +#: netbox/dcim/filtersets.py:1267 netbox/ipam/filtersets.py:634 #: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:401 msgid "Interface (ID)" msgstr "" @@ -3169,8 +3169,8 @@ msgid "Module bay (ID)" msgstr "" #: netbox/dcim/filtersets.py:1333 netbox/dcim/filtersets.py:1425 -#: netbox/ipam/filtersets.py:611 netbox/ipam/filtersets.py:851 -#: netbox/ipam/filtersets.py:1115 netbox/virtualization/filtersets.py:161 +#: netbox/ipam/filtersets.py:613 netbox/ipam/filtersets.py:853 +#: netbox/ipam/filtersets.py:1117 netbox/virtualization/filtersets.py:161 #: netbox/vpn/filtersets.py:379 msgid "Device (ID)" msgstr "" @@ -3179,8 +3179,8 @@ msgstr "" msgid "Rack (name)" msgstr "" -#: netbox/dcim/filtersets.py:1431 netbox/ipam/filtersets.py:606 -#: netbox/ipam/filtersets.py:846 netbox/ipam/filtersets.py:1121 +#: netbox/dcim/filtersets.py:1431 netbox/ipam/filtersets.py:608 +#: netbox/ipam/filtersets.py:848 netbox/ipam/filtersets.py:1123 #: netbox/vpn/filtersets.py:374 msgid "Device (name)" msgstr "" @@ -3232,9 +3232,9 @@ msgstr "" #: netbox/dcim/forms/bulk_import.py:913 netbox/dcim/forms/filtersets.py:1428 #: netbox/dcim/forms/model_forms.py:1385 #: netbox/dcim/models/device_components.py:711 -#: netbox/dcim/tables/devices.py:626 netbox/ipam/filtersets.py:316 -#: netbox/ipam/filtersets.py:327 netbox/ipam/filtersets.py:483 -#: netbox/ipam/filtersets.py:584 netbox/ipam/filtersets.py:595 +#: netbox/dcim/tables/devices.py:626 netbox/ipam/filtersets.py:318 +#: netbox/ipam/filtersets.py:329 netbox/ipam/filtersets.py:485 +#: netbox/ipam/filtersets.py:586 netbox/ipam/filtersets.py:597 #: netbox/ipam/forms/bulk_edit.py:242 netbox/ipam/forms/bulk_edit.py:298 #: netbox/ipam/forms/bulk_edit.py:340 netbox/ipam/forms/bulk_import.py:157 #: netbox/ipam/forms/bulk_import.py:243 netbox/ipam/forms/bulk_import.py:279 @@ -3261,19 +3261,19 @@ msgstr "" msgid "VRF" msgstr "" -#: netbox/dcim/filtersets.py:1619 netbox/ipam/filtersets.py:322 -#: netbox/ipam/filtersets.py:333 netbox/ipam/filtersets.py:489 -#: netbox/ipam/filtersets.py:590 netbox/ipam/filtersets.py:601 +#: netbox/dcim/filtersets.py:1619 netbox/ipam/filtersets.py:324 +#: netbox/ipam/filtersets.py:335 netbox/ipam/filtersets.py:491 +#: netbox/ipam/filtersets.py:592 netbox/ipam/filtersets.py:603 msgid "VRF (RD)" msgstr "" -#: netbox/dcim/filtersets.py:1624 netbox/ipam/filtersets.py:1030 +#: netbox/dcim/filtersets.py:1624 netbox/ipam/filtersets.py:1032 #: netbox/vpn/filtersets.py:342 msgid "L2VPN (ID)" msgstr "" #: netbox/dcim/filtersets.py:1630 netbox/dcim/forms/filtersets.py:1433 -#: netbox/dcim/tables/devices.py:570 netbox/ipam/filtersets.py:1036 +#: netbox/dcim/tables/devices.py:570 netbox/ipam/filtersets.py:1038 #: netbox/ipam/forms/filtersets.py:518 netbox/ipam/tables/vlans.py:137 #: netbox/templates/dcim/interface.html:93 netbox/templates/ipam/vlan.html:66 #: netbox/templates/vpn/l2vpntermination.html:12 @@ -9010,129 +9010,129 @@ msgstr "" msgid "Exporting L2VPN (identifier)" msgstr "" -#: netbox/ipam/filtersets.py:155 netbox/ipam/filtersets.py:281 +#: netbox/ipam/filtersets.py:155 netbox/ipam/filtersets.py:283 #: netbox/ipam/forms/model_forms.py:229 netbox/ipam/tables/ip.py:212 #: netbox/templates/ipam/prefix.html:12 msgid "Prefix" msgstr "" #: netbox/ipam/filtersets.py:159 netbox/ipam/filtersets.py:198 -#: netbox/ipam/filtersets.py:221 +#: netbox/ipam/filtersets.py:223 msgid "RIR (ID)" msgstr "" #: netbox/ipam/filtersets.py:165 netbox/ipam/filtersets.py:204 -#: netbox/ipam/filtersets.py:227 +#: netbox/ipam/filtersets.py:229 msgid "RIR (slug)" msgstr "" -#: netbox/ipam/filtersets.py:285 +#: netbox/ipam/filtersets.py:287 msgid "Within prefix" msgstr "" -#: netbox/ipam/filtersets.py:289 +#: netbox/ipam/filtersets.py:291 msgid "Within and including prefix" msgstr "" -#: netbox/ipam/filtersets.py:293 +#: netbox/ipam/filtersets.py:295 msgid "Prefixes which contain this prefix or IP" msgstr "" -#: netbox/ipam/filtersets.py:304 netbox/ipam/filtersets.py:572 +#: netbox/ipam/filtersets.py:306 netbox/ipam/filtersets.py:574 #: netbox/ipam/forms/bulk_edit.py:343 netbox/ipam/forms/filtersets.py:196 #: netbox/ipam/forms/filtersets.py:331 msgid "Mask length" msgstr "" -#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:427 +#: netbox/ipam/filtersets.py:375 netbox/vpn/filtersets.py:427 msgid "VLAN (ID)" msgstr "" -#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:422 +#: netbox/ipam/filtersets.py:379 netbox/vpn/filtersets.py:422 msgid "VLAN number (1-4094)" msgstr "" -#: netbox/ipam/filtersets.py:471 netbox/ipam/filtersets.py:475 -#: netbox/ipam/filtersets.py:567 netbox/ipam/forms/model_forms.py:496 +#: netbox/ipam/filtersets.py:473 netbox/ipam/filtersets.py:477 +#: netbox/ipam/filtersets.py:569 netbox/ipam/forms/model_forms.py:496 #: netbox/templates/tenancy/contact.html:53 #: netbox/tenancy/forms/bulk_edit.py:113 msgid "Address" msgstr "" -#: netbox/ipam/filtersets.py:479 +#: netbox/ipam/filtersets.py:481 msgid "Ranges which contain this prefix or IP" msgstr "" -#: netbox/ipam/filtersets.py:507 netbox/ipam/filtersets.py:563 +#: netbox/ipam/filtersets.py:509 netbox/ipam/filtersets.py:565 msgid "Parent prefix" msgstr "" -#: netbox/ipam/filtersets.py:616 netbox/ipam/filtersets.py:856 -#: netbox/ipam/filtersets.py:1131 netbox/vpn/filtersets.py:385 +#: netbox/ipam/filtersets.py:618 netbox/ipam/filtersets.py:858 +#: netbox/ipam/filtersets.py:1133 netbox/vpn/filtersets.py:385 msgid "Virtual machine (name)" msgstr "" -#: netbox/ipam/filtersets.py:621 netbox/ipam/filtersets.py:861 -#: netbox/ipam/filtersets.py:1125 netbox/virtualization/filtersets.py:282 +#: netbox/ipam/filtersets.py:623 netbox/ipam/filtersets.py:863 +#: netbox/ipam/filtersets.py:1127 netbox/virtualization/filtersets.py:282 #: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:390 msgid "Virtual machine (ID)" msgstr "" -#: netbox/ipam/filtersets.py:627 netbox/vpn/filtersets.py:97 +#: netbox/ipam/filtersets.py:629 netbox/vpn/filtersets.py:97 #: netbox/vpn/filtersets.py:396 msgid "Interface (name)" msgstr "" -#: netbox/ipam/filtersets.py:638 netbox/vpn/filtersets.py:108 +#: netbox/ipam/filtersets.py:640 netbox/vpn/filtersets.py:108 #: netbox/vpn/filtersets.py:407 msgid "VM interface (name)" msgstr "" -#: netbox/ipam/filtersets.py:643 netbox/vpn/filtersets.py:113 +#: netbox/ipam/filtersets.py:645 netbox/vpn/filtersets.py:113 msgid "VM interface (ID)" msgstr "" -#: netbox/ipam/filtersets.py:648 +#: netbox/ipam/filtersets.py:650 msgid "FHRP group (ID)" msgstr "" -#: netbox/ipam/filtersets.py:652 +#: netbox/ipam/filtersets.py:654 msgid "Is assigned to an interface" msgstr "" -#: netbox/ipam/filtersets.py:656 +#: netbox/ipam/filtersets.py:658 msgid "Is assigned" msgstr "" -#: netbox/ipam/filtersets.py:668 +#: netbox/ipam/filtersets.py:670 msgid "Service (ID)" msgstr "" -#: netbox/ipam/filtersets.py:673 +#: netbox/ipam/filtersets.py:675 msgid "NAT inside IP address (ID)" msgstr "" -#: netbox/ipam/filtersets.py:1041 netbox/ipam/forms/bulk_import.py:322 +#: netbox/ipam/filtersets.py:1043 netbox/ipam/forms/bulk_import.py:322 msgid "Assigned interface" msgstr "" -#: netbox/ipam/filtersets.py:1046 +#: netbox/ipam/filtersets.py:1048 msgid "Assigned VM interface" msgstr "" -#: netbox/ipam/filtersets.py:1136 +#: netbox/ipam/filtersets.py:1138 msgid "IP address (ID)" msgstr "" -#: netbox/ipam/filtersets.py:1142 netbox/ipam/models/ip.py:788 +#: netbox/ipam/filtersets.py:1144 netbox/ipam/models/ip.py:788 msgid "IP address" msgstr "" -#: netbox/ipam/filtersets.py:1167 +#: netbox/ipam/filtersets.py:1169 msgid "Primary IPv4 (ID)" msgstr "" -#: netbox/ipam/filtersets.py:1172 +#: netbox/ipam/filtersets.py:1174 msgid "Primary IPv6 (ID)" msgstr "" From fff4ec78ad0c14d80cb1f4619e401ac3bcfc4d2e Mon Sep 17 00:00:00 2001 From: Pieter Lambrecht Date: Fri, 13 Dec 2024 16:23:49 +0100 Subject: [PATCH 02/11] set disabled interface backgroundcolor to $gray-400 --- netbox/project-static/dist/netbox.css | Bin 554811 -> 554811 bytes .../styles/custom/_interfaces.scss | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/netbox/project-static/dist/netbox.css b/netbox/project-static/dist/netbox.css index cd66ffa0fc5dd4feecb08942203ae83d8d2c3549..cee6eda688f62b50695a128811bbdd7c68cfffca 100644 GIT binary patch delta 43 zcmdn}PI31;#fBEf7N!>F7M2#)7Pc1lEgTC9*(?$*%@dQR_Z4tRY~NSNQOgPdZsiY= delta 41 xcmdn}PI31;#fBEf7N!>F7M2#)7Pc1lEgTC9r#IwtuubnP;E>q9uaKjb6#!XL4^sdD diff --git a/netbox/project-static/styles/custom/_interfaces.scss b/netbox/project-static/styles/custom/_interfaces.scss index 2c363e7ff..9e6baa7e5 100644 --- a/netbox/project-static/styles/custom/_interfaces.scss +++ b/netbox/project-static/styles/custom/_interfaces.scss @@ -17,7 +17,7 @@ tr[data-virtual=true] { background-color: rgba(map.get($theme-colors, "primary"), 0.15); } tr[data-enabled=disabled] { - background-color: rgba(map.get($theme-colors, "danger"), 0.15); + background-color: rgba($gray-400, 0.15); } // Only show the correct button depending on the cable status From 382e246b2c0ac1726d3d23847319dbebde80c893 Mon Sep 17 00:00:00 2001 From: Kay Schroeder Date: Wed, 4 Dec 2024 17:25:07 +0100 Subject: [PATCH 03/11] Added the cable -> CableType-Annotation in CableTerminationType. --- netbox/dcim/graphql/types.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netbox/dcim/graphql/types.py b/netbox/dcim/graphql/types.py index bce6f06ac..da219c754 100644 --- a/netbox/dcim/graphql/types.py +++ b/netbox/dcim/graphql/types.py @@ -116,7 +116,7 @@ class ModularComponentTemplateType(ComponentTemplateType): filters=CableTerminationFilter ) class CableTerminationType(NetBoxObjectType): - + cable: Annotated["CableType", strawberry.lazy('dcim.graphql.types')] | None termination: Annotated[Union[ Annotated["CircuitTerminationType", strawberry.lazy('circuits.graphql.types')], Annotated["ConsolePortType", strawberry.lazy('dcim.graphql.types')], From c0fec28b2ab6a0a74d04f7a13e7e4890d5da4e8c Mon Sep 17 00:00:00 2001 From: Brian Tiemann Date: Fri, 13 Dec 2024 08:37:55 -0500 Subject: [PATCH 04/11] Handle editing IPAddresses on VMInterfaces without parent.oob_ip --- netbox/ipam/forms/model_forms.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netbox/ipam/forms/model_forms.py b/netbox/ipam/forms/model_forms.py index f595bf459..c7aeaa8e5 100644 --- a/netbox/ipam/forms/model_forms.py +++ b/netbox/ipam/forms/model_forms.py @@ -361,7 +361,7 @@ class IPAddressForm(TenancyForm, NetBoxModelForm): ): self.initial['primary_for_parent'] = True - if parent and (parent.oob_ip_id == self.instance.pk): + if parent and getattr(parent, 'oob_ip_id', None) == self.instance.pk: self.initial['oob_for_parent'] = True if type(instance.assigned_object) is Interface: From 0b9ead3e8b6cb4b3ee51ea4c36ec8fef4b40852b Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 12 Dec 2024 14:53:42 -0500 Subject: [PATCH 05/11] Closes #18224: Apply all registered request processors when running custom scripts --- netbox/extras/jobs.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/netbox/extras/jobs.py b/netbox/extras/jobs.py index 190166b5b..10d76e3aa 100644 --- a/netbox/extras/jobs.py +++ b/netbox/extras/jobs.py @@ -1,14 +1,14 @@ import logging import traceback -from contextlib import nullcontext +from contextlib import ExitStack from django.db import transaction from django.utils.translation import gettext as _ from core.signals import clear_events from extras.models import Script as ScriptModel -from netbox.context_managers import event_tracking from netbox.jobs import JobRunner +from netbox.registry import registry from utilities.exceptions import AbortScript, AbortTransaction from .utils import is_report @@ -100,5 +100,7 @@ class ScriptJob(JobRunner): # Execute the script. If commit is True, wrap it with the event_tracking context manager to ensure we process # change logging, event rules, etc. - with event_tracking(request) if commit else nullcontext(): + with ExitStack() as stack: + for request_processor in registry['request_processors']: + stack.enter_context(request_processor(request)) self.run_script(script, request, data, commit) From e7fcbffaf3e66c955a3e5c9a07dea0460caa401c Mon Sep 17 00:00:00 2001 From: bctiemann Date: Tue, 17 Dec 2024 14:46:52 -0500 Subject: [PATCH 06/11] Fixes: #16757 - Use table_htmx.html for assigning ipaddresses (#18226) * Use table_htmx.html for assigning ipaddresses * Add disable_htmx property on ObjectChildrenView to allow IP assignment flow to avoid htmx fragmentary rendering on object save * Revert "Add disable_htmx property on ObjectChildrenView to allow IP assignment flow to avoid htmx fragmentary rendering on object save" This reverts commit fa8f2ac3773780bdf9f2555843dae72ab1f185cc. --- netbox/templates/ipam/ipaddress_assign.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netbox/templates/ipam/ipaddress_assign.html b/netbox/templates/ipam/ipaddress_assign.html index d96ad7452..4711b286a 100644 --- a/netbox/templates/ipam/ipaddress_assign.html +++ b/netbox/templates/ipam/ipaddress_assign.html @@ -34,7 +34,7 @@

{% trans "Search Results" %}

- {% render_table table 'inc/table.html' %} + {% render_table table 'inc/table_htmx.html' %}
From 8d6cec408cb8a50a1c98284185456ff6a96efd47 Mon Sep 17 00:00:00 2001 From: bctiemann Date: Tue, 17 Dec 2024 15:39:29 -0500 Subject: [PATCH 07/11] Fixes: #17868 - Handle orphaned cable condition gracefully in SVG rendering (#18244) * Handle condition gracefully where an empty object list is passed in to draw_far_objects (e.g. orphaned cable where attached device has been deleted) * Move continue statement to right after draw_far_objects * Preferable falsy syntax Co-authored-by: Jeremy Stretch * Check far_ends rather than altering draw_far_objects --------- Co-authored-by: Jeremy Stretch --- netbox/dcim/svg/cables.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netbox/dcim/svg/cables.py b/netbox/dcim/svg/cables.py index 4e0f7aea6..58fa27c6b 100644 --- a/netbox/dcim/svg/cables.py +++ b/netbox/dcim/svg/cables.py @@ -362,7 +362,7 @@ class CableTraceSVG: self.cursor += CABLE_HEIGHT # Connector (a Cable or WirelessLink) - if links: + if links and far_ends: obj_list = {end.parent_object for end in far_ends} parent_object_nodes, far_terminations = self.draw_far_objects(obj_list, far_ends) From e396097f3c362a319eb47a46a537ca5ae2e7e4d6 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Tue, 17 Dec 2024 15:59:39 -0500 Subject: [PATCH 08/11] Release v4.1.9 --- docs/release-notes/version-4.1.md | 16 ++ netbox/release.yaml | 4 +- netbox/translations/pt/LC_MESSAGES/django.mo | Bin 232267 -> 235682 bytes netbox/translations/pt/LC_MESSAGES/django.po | 176 ++++++++++--------- requirements.txt | 8 +- 5 files changed, 118 insertions(+), 86 deletions(-) diff --git a/docs/release-notes/version-4.1.md b/docs/release-notes/version-4.1.md index 06ff12fef..f843f676f 100644 --- a/docs/release-notes/version-4.1.md +++ b/docs/release-notes/version-4.1.md @@ -1,5 +1,21 @@ # NetBox v4.1 +## v4.1.9 (2024-12-17) + +### Enhancements + +* [#17215](https://github.com/netbox-community/netbox/issues/17215) - Change the highlighted color of disabled interfaces in interface lists +* [#18224](https://github.com/netbox-community/netbox/issues/18224) - Apply all registered request processors when running custom scripts + +### Bug Fixes + +* [#16757](https://github.com/netbox-community/netbox/issues/16757) - Fix rendering of IP addresses table when assigning an existing IP address to an interface with global HTMX navigation enabled +* [#17868](https://github.com/netbox-community/netbox/issues/17868) - Fix `ZeroDivisionError` exception under specific circumstances when generating a cable trace +* [#18124](https://github.com/netbox-community/netbox/issues/18124) - Enable referencing cable attributes when querying a `cabletermination_set` via the GraphQL API +* [#18230](https://github.com/netbox-community/netbox/issues/18230) - Fix `AttributeError` exception when attempting to edit an IP address assigned to a virtual machine interface + +--- + ## v4.1.8 (2024-12-12) ### Enhancements diff --git a/netbox/release.yaml b/netbox/release.yaml index f93458475..5055defb3 100644 --- a/netbox/release.yaml +++ b/netbox/release.yaml @@ -1,3 +1,3 @@ -version: "4.1.8" +version: "4.1.9" edition: "Community" -published: "2024-12-12" +published: "2024-12-17" diff --git a/netbox/translations/pt/LC_MESSAGES/django.mo b/netbox/translations/pt/LC_MESSAGES/django.mo index 644e274a473c9fbb8f592ed13e013bcac865cfd8..e6d410f9aded3682f2deff92278b880cc7ebea54 100644 GIT binary patch delta 68863 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 delta 66368 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[ge,xe]-0/0/[0-9]). O token {module}, se presente," +" será automaticamente substituído pelo valor da posição ao criar um novo " +"módulo." #: netbox/dcim/forms/model_forms.py:1094 msgid "Console port template" @@ -6498,7 +6504,7 @@ msgstr "função do rack" #: netbox/dcim/models/racks.py:231 msgid "rack roles" -msgstr "funções de rack" +msgstr "funções do rack" #: netbox/dcim/models/racks.py:274 msgid "facility ID" @@ -9346,129 +9352,129 @@ msgstr "Exportando L2VPN" msgid "Exporting L2VPN (identifier)" msgstr "Exportando L2VPN (identificador)" -#: netbox/ipam/filtersets.py:155 netbox/ipam/filtersets.py:281 +#: netbox/ipam/filtersets.py:155 netbox/ipam/filtersets.py:283 #: netbox/ipam/forms/model_forms.py:229 netbox/ipam/tables/ip.py:212 #: netbox/templates/ipam/prefix.html:12 msgid "Prefix" msgstr "Prefixo" #: netbox/ipam/filtersets.py:159 netbox/ipam/filtersets.py:198 -#: netbox/ipam/filtersets.py:221 +#: netbox/ipam/filtersets.py:223 msgid "RIR (ID)" msgstr "RIR (ID)" #: netbox/ipam/filtersets.py:165 netbox/ipam/filtersets.py:204 -#: netbox/ipam/filtersets.py:227 +#: netbox/ipam/filtersets.py:229 msgid "RIR (slug)" msgstr "RIR (slug)" -#: netbox/ipam/filtersets.py:285 +#: netbox/ipam/filtersets.py:287 msgid "Within prefix" msgstr "Dentro do prefixo" -#: netbox/ipam/filtersets.py:289 +#: netbox/ipam/filtersets.py:291 msgid "Within and including prefix" msgstr "Dentro e incluindo o prefixo" -#: netbox/ipam/filtersets.py:293 +#: netbox/ipam/filtersets.py:295 msgid "Prefixes which contain this prefix or IP" msgstr "Prefixos que contêm este prefixo ou IP" -#: netbox/ipam/filtersets.py:304 netbox/ipam/filtersets.py:572 +#: netbox/ipam/filtersets.py:306 netbox/ipam/filtersets.py:574 #: netbox/ipam/forms/bulk_edit.py:343 netbox/ipam/forms/filtersets.py:196 #: netbox/ipam/forms/filtersets.py:331 msgid "Mask length" msgstr "Tamanho da máscara" -#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:427 +#: netbox/ipam/filtersets.py:375 netbox/vpn/filtersets.py:427 msgid "VLAN (ID)" msgstr "VLAN (ID)" -#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:422 +#: netbox/ipam/filtersets.py:379 netbox/vpn/filtersets.py:422 msgid "VLAN number (1-4094)" msgstr "Número da VLAN (1-4094)" -#: netbox/ipam/filtersets.py:471 netbox/ipam/filtersets.py:475 -#: netbox/ipam/filtersets.py:567 netbox/ipam/forms/model_forms.py:496 +#: netbox/ipam/filtersets.py:473 netbox/ipam/filtersets.py:477 +#: netbox/ipam/filtersets.py:569 netbox/ipam/forms/model_forms.py:496 #: netbox/templates/tenancy/contact.html:53 #: netbox/tenancy/forms/bulk_edit.py:113 msgid "Address" msgstr "Endereço" -#: netbox/ipam/filtersets.py:479 +#: netbox/ipam/filtersets.py:481 msgid "Ranges which contain this prefix or IP" msgstr "Faixas que contêm este prefixo ou IP" -#: netbox/ipam/filtersets.py:507 netbox/ipam/filtersets.py:563 +#: netbox/ipam/filtersets.py:509 netbox/ipam/filtersets.py:565 msgid "Parent prefix" msgstr "Prefixo pai" -#: netbox/ipam/filtersets.py:616 netbox/ipam/filtersets.py:856 -#: netbox/ipam/filtersets.py:1131 netbox/vpn/filtersets.py:385 +#: netbox/ipam/filtersets.py:618 netbox/ipam/filtersets.py:858 +#: netbox/ipam/filtersets.py:1133 netbox/vpn/filtersets.py:385 msgid "Virtual machine (name)" msgstr "Máquina virtual (nome)" -#: netbox/ipam/filtersets.py:621 netbox/ipam/filtersets.py:861 -#: netbox/ipam/filtersets.py:1125 netbox/virtualization/filtersets.py:282 +#: netbox/ipam/filtersets.py:623 netbox/ipam/filtersets.py:863 +#: netbox/ipam/filtersets.py:1127 netbox/virtualization/filtersets.py:282 #: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:390 msgid "Virtual machine (ID)" msgstr "Máquina virtual (ID)" -#: netbox/ipam/filtersets.py:627 netbox/vpn/filtersets.py:97 +#: netbox/ipam/filtersets.py:629 netbox/vpn/filtersets.py:97 #: netbox/vpn/filtersets.py:396 msgid "Interface (name)" msgstr "Interface (nome)" -#: netbox/ipam/filtersets.py:638 netbox/vpn/filtersets.py:108 +#: netbox/ipam/filtersets.py:640 netbox/vpn/filtersets.py:108 #: netbox/vpn/filtersets.py:407 msgid "VM interface (name)" msgstr "Interface da VM (nome)" -#: netbox/ipam/filtersets.py:643 netbox/vpn/filtersets.py:113 +#: netbox/ipam/filtersets.py:645 netbox/vpn/filtersets.py:113 msgid "VM interface (ID)" msgstr "Interface da VM (ID)" -#: netbox/ipam/filtersets.py:648 +#: netbox/ipam/filtersets.py:650 msgid "FHRP group (ID)" msgstr "Grupo FHRP (ID)" -#: netbox/ipam/filtersets.py:652 +#: netbox/ipam/filtersets.py:654 msgid "Is assigned to an interface" msgstr "Está associado a uma interface" -#: netbox/ipam/filtersets.py:656 +#: netbox/ipam/filtersets.py:658 msgid "Is assigned" msgstr "Está associado" -#: netbox/ipam/filtersets.py:668 +#: netbox/ipam/filtersets.py:670 msgid "Service (ID)" msgstr "Serviço (ID)" -#: netbox/ipam/filtersets.py:673 +#: netbox/ipam/filtersets.py:675 msgid "NAT inside IP address (ID)" msgstr "NAT dentro do endereço IP (ID)" -#: netbox/ipam/filtersets.py:1041 netbox/ipam/forms/bulk_import.py:322 +#: netbox/ipam/filtersets.py:1043 netbox/ipam/forms/bulk_import.py:322 msgid "Assigned interface" msgstr "Interface associada" -#: netbox/ipam/filtersets.py:1046 +#: netbox/ipam/filtersets.py:1048 msgid "Assigned VM interface" msgstr "Interface de VM atribuída" -#: netbox/ipam/filtersets.py:1136 +#: netbox/ipam/filtersets.py:1138 msgid "IP address (ID)" msgstr "Endereço IP (ID)" -#: netbox/ipam/filtersets.py:1142 netbox/ipam/models/ip.py:788 +#: netbox/ipam/filtersets.py:1144 netbox/ipam/models/ip.py:788 msgid "IP address" msgstr "Endereço IP" -#: netbox/ipam/filtersets.py:1167 +#: netbox/ipam/filtersets.py:1169 msgid "Primary IPv4 (ID)" msgstr "IPv4 Primário (ID)" -#: netbox/ipam/filtersets.py:1172 +#: netbox/ipam/filtersets.py:1174 msgid "Primary IPv6 (ID)" msgstr "IPv6 Primário (ID)" @@ -9692,11 +9698,12 @@ msgstr "Tornar este o IP primário do dispositivo associado" #: netbox/ipam/forms/bulk_import.py:330 msgid "Is out-of-band" -msgstr "" +msgstr "É out-of-band" #: netbox/ipam/forms/bulk_import.py:331 msgid "Designate this as the out-of-band IP address for the assigned device" msgstr "" +"Designar este como endereço IP out-f-band para o dispositvo associado." #: netbox/ipam/forms/bulk_import.py:371 msgid "No device or virtual machine specified; cannot set as primary IP" @@ -9707,10 +9714,11 @@ msgstr "" #: netbox/ipam/forms/bulk_import.py:375 msgid "No device specified; cannot set as out-of-band IP" msgstr "" +"Nenhum dispositivo especificado; não pode ser definido como IP out-of-band" #: netbox/ipam/forms/bulk_import.py:379 msgid "Cannot set out-of-band IP for virtual machines" -msgstr "" +msgstr "Não é possível definir IP out-of-band para máquinas virtuais" #: netbox/ipam/forms/bulk_import.py:383 msgid "No interface specified; cannot set as primary IP" @@ -9720,6 +9728,7 @@ msgstr "" #: netbox/ipam/forms/bulk_import.py:387 msgid "No interface specified; cannot set as out-of-band IP" msgstr "" +"Nenhuma interface especificada; não pode ser definido como IP out-of-band" #: netbox/ipam/forms/bulk_import.py:422 msgid "Auth type" @@ -9896,7 +9905,7 @@ msgstr "Torne este o IP primário do dispositivo/VM" #: netbox/ipam/forms/model_forms.py:314 msgid "Make this the out-of-band IP for the device" -msgstr "" +msgstr "Definir este como endereço IP out-of-band para o dispositivo" #: netbox/ipam/forms/model_forms.py:329 msgid "NAT IP (Inside)" @@ -9909,10 +9918,12 @@ msgstr "Um endereço IP só pode ser atribuído a um único objeto." #: netbox/ipam/forms/model_forms.py:398 msgid "Cannot reassign primary IP address for the parent device/VM" msgstr "" +"Não é possível reatribuir o endereço primário para o dispositivo/VM pai" #: netbox/ipam/forms/model_forms.py:402 msgid "Cannot reassign out-of-Band IP address for the parent device" msgstr "" +"Não é possível reatribuir o endereço IP out-of-band para o dispositivo pai" #: netbox/ipam/forms/model_forms.py:412 msgid "" @@ -9926,6 +9937,8 @@ msgid "" "Only IP addresses assigned to a device interface can be designated as the " "out-of-band IP for a device." msgstr "" +"Somente endereços IP atribuídos para uma interface podem ser designados como" +" IP out-of-band para o dispositivo." #: netbox/ipam/forms/model_forms.py:508 msgid "Virtual IP Address" @@ -10327,12 +10340,12 @@ msgstr "Não é possível definir scope_id sem scope_type." #: netbox/ipam/models/vlans.py:105 #, python-brace-format msgid "Starting VLAN ID in range ({value}) cannot be less than {minimum}" -msgstr "" +msgstr "VLAN ID inicial no intervalo {value} não pode ser menor que {minimum}" #: netbox/ipam/models/vlans.py:111 #, python-brace-format msgid "Ending VLAN ID in range ({value}) cannot exceed {maximum}" -msgstr "" +msgstr "VLAN ID final no intervalo {value} não pode ser maior que {maximum}" #: netbox/ipam/models/vlans.py:118 #, python-brace-format @@ -10340,6 +10353,8 @@ msgid "" "Ending VLAN ID in range must be greater than or equal to the starting VLAN " "ID ({range})" msgstr "" +"VLAN ID final do intervalo deve ser maior ou igual à VLAN ID inicial " +"({range})" #: netbox/ipam/models/vlans.py:124 msgid "Ranges cannot overlap." @@ -11007,7 +11022,7 @@ msgstr "Atribuições dos Contatos" #: netbox/netbox/navigation/menu.py:50 msgid "Rack Roles" -msgstr "Funções de Rack" +msgstr "Funções do Rack" #: netbox/netbox/navigation/menu.py:54 msgid "Elevations" @@ -12701,11 +12716,11 @@ msgstr "Baixar" #: netbox/templates/dcim/device/render_config.html:64 #: netbox/templates/virtualization/virtualmachine/render_config.html:64 msgid "Error rendering template" -msgstr "" +msgstr "Erro ao renderizar o modelo" #: netbox/templates/dcim/device/render_config.html:70 msgid "No configuration template has been assigned for this device." -msgstr "" +msgstr "Nenhum modelo de configuração foi atribuído para este dispositivo." #: netbox/templates/dcim/device_edit.html:44 msgid "Parent Bay" @@ -14388,6 +14403,7 @@ msgstr "Adicionar Disco Virtual" #: netbox/templates/virtualization/virtualmachine/render_config.html:70 msgid "No configuration template has been assigned for this virtual machine." msgstr "" +"Nenhum modelo de configuração foi atribuído para esta máquina virtual." #: netbox/templates/vpn/ikepolicy.html:10 #: netbox/templates/vpn/ipsecprofile.html:33 netbox/vpn/tables/crypto.py:166 @@ -15464,12 +15480,12 @@ msgstr "Memória (MB)" #: netbox/virtualization/forms/bulk_edit.py:174 msgid "Disk (MB)" -msgstr "" +msgstr "Disco (MB)" #: netbox/virtualization/forms/bulk_edit.py:334 #: netbox/virtualization/forms/filtersets.py:251 msgid "Size (MB)" -msgstr "" +msgstr "Tamanho (MB)" #: netbox/virtualization/forms/bulk_import.py:44 msgid "Type of cluster" @@ -15680,19 +15696,19 @@ msgstr "GRE" #: netbox/vpn/choices.py:39 msgid "WireGuard" -msgstr "" +msgstr "WireGuard" #: netbox/vpn/choices.py:40 msgid "OpenVPN" -msgstr "" +msgstr "OpenVPN" #: netbox/vpn/choices.py:41 msgid "L2TP" -msgstr "" +msgstr "L2TP" #: netbox/vpn/choices.py:42 msgid "PPTP" -msgstr "" +msgstr "PPTP" #: netbox/vpn/choices.py:64 msgid "Hub" diff --git a/requirements.txt b/requirements.txt index fb2a81dfa..08d06210c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -20,10 +20,10 @@ feedparser==6.0.11 gunicorn==23.0.0 Jinja2==3.1.4 Markdown==3.7 -mkdocs-material==9.5.48 +mkdocs-material==9.5.49 mkdocstrings[python-legacy]==0.27.0 netaddr==1.3.0 -nh3==0.2.19 +nh3==0.2.20 Pillow==11.0.0 psycopg[c,pool]==3.2.3 PyYAML==6.0.2 @@ -31,8 +31,8 @@ requests==2.32.3 rq==2.0 social-auth-app-django==5.4.2 social-auth-core==4.5.4 -strawberry-graphql==0.253.1 -strawberry-graphql-django==0.51.0 +strawberry-graphql==0.254.0 +strawberry-graphql-django==0.52.0 svgwrite==1.4.3 tablib==3.7.0 tzdata==2024.2 From 6ddd3cc779ec59106458fa96b613da5055e65ab9 Mon Sep 17 00:00:00 2001 From: Tobias Genannt Date: Thu, 19 Dec 2024 07:44:38 +0100 Subject: [PATCH 09/11] #18260 - Add context managers to registry --- netbox/core/apps.py | 1 + 1 file changed, 1 insertion(+) diff --git a/netbox/core/apps.py b/netbox/core/apps.py index 0811e5cb2..9674860b9 100644 --- a/netbox/core/apps.py +++ b/netbox/core/apps.py @@ -21,6 +21,7 @@ class CoreConfig(AppConfig): from core.api import schema # noqa: F401 from netbox.models.features import register_models from . import data_backends, events, search # noqa: F401 + from netbox import context_managers # noqa: F401 # Register models register_models(*self.get_models()) From 28eada13d32652cafad02cda60a66d18c0a78f6c Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Mon, 23 Dec 2024 10:42:24 -0500 Subject: [PATCH 10/11] Release v4.1.10 --- .../ISSUE_TEMPLATE/01-feature_request.yaml | 2 +- .github/ISSUE_TEMPLATE/02-bug_report.yaml | 2 +- docs/release-notes/version-4.1.md | 11 ++ netbox/release.yaml | 4 +- netbox/translations/ja/LC_MESSAGES/django.mo | Bin 251237 -> 254765 bytes netbox/translations/ja/LC_MESSAGES/django.po | 173 +++++++++--------- 6 files changed, 103 insertions(+), 89 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/01-feature_request.yaml b/.github/ISSUE_TEMPLATE/01-feature_request.yaml index 6714d1357..f486791e1 100644 --- a/.github/ISSUE_TEMPLATE/01-feature_request.yaml +++ b/.github/ISSUE_TEMPLATE/01-feature_request.yaml @@ -14,7 +14,7 @@ body: attributes: label: NetBox version description: What version of NetBox are you currently running? - placeholder: v4.1.8 + placeholder: v4.1.10 validations: required: true - type: dropdown diff --git a/.github/ISSUE_TEMPLATE/02-bug_report.yaml b/.github/ISSUE_TEMPLATE/02-bug_report.yaml index 72836017b..2e15c36cb 100644 --- a/.github/ISSUE_TEMPLATE/02-bug_report.yaml +++ b/.github/ISSUE_TEMPLATE/02-bug_report.yaml @@ -39,7 +39,7 @@ body: attributes: label: NetBox Version description: What version of NetBox are you currently running? - placeholder: v4.1.8 + placeholder: v4.1.10 validations: required: true - type: dropdown diff --git a/docs/release-notes/version-4.1.md b/docs/release-notes/version-4.1.md index f843f676f..e68aa2344 100644 --- a/docs/release-notes/version-4.1.md +++ b/docs/release-notes/version-4.1.md @@ -1,7 +1,18 @@ # NetBox v4.1 +## v4.1.10 (2024-12-23) + +### Bug Fixes + +* [#18260](https://github.com/netbox-community/netbox/issues/18260) - Fix object change logging + +--- + ## v4.1.9 (2024-12-17) +!!! danger "Do Not Use" + This release contains a regression which breaks change logging. Please use release v4.1.10 instead. + ### Enhancements * [#17215](https://github.com/netbox-community/netbox/issues/17215) - Change the highlighted color of disabled interfaces in interface lists diff --git a/netbox/release.yaml b/netbox/release.yaml index 5055defb3..e96c80cfa 100644 --- a/netbox/release.yaml +++ b/netbox/release.yaml @@ -1,3 +1,3 @@ -version: "4.1.9" +version: "4.1.10" edition: "Community" -published: "2024-12-17" +published: "2024-12-23" diff --git a/netbox/translations/ja/LC_MESSAGES/django.mo b/netbox/translations/ja/LC_MESSAGES/django.mo index f5dc65ae6652d8be288969d591d70deb979e0be0..c7b76e8cbea012b5cbbf5d3bf07a41e953b315b8 100644 GIT binary patch delta 68781 zcmXWkci`1iAHebZ`=wnf6s4uT_t2h78d^fqP&BAiBCAUz6&gmiN>s?EvMKQhNurGG z5DhCLJn#2CpXZ;~Ip=%6=X}oke($}h=i7%$t=Uv6yX&YUZq4w&<4a^R74f%`nM}>n znata-TAIm>%+Jfz#!*-d=VDX51>55$?2QEqOd;%mt+6|vf>&TK zd;>dSnZkLQ!8ia1;e$Al{xg4(=t04_B6*o{_!xG>>8t~%Ce~boPy##^Mf2JOZCO93P+6TiOXoJN{COe}ez8GDS zrQw@VegL~tUg5~JG-qQ?@^_+3_X;}oo3SWv!)!qkpOGklU!!aGT~s&_{)IMhM5%OR zDKuXmkH8vO2J2#3Y=;$a09M8e@Hm{0j(i1{#D`1eWpkTiJq32W35{?|RQL!>k^eUQ z9j#ZebZY2Gw4t(Lb#(7EMce6s≥K$Csc3or&Hzt8_Lmb2N#C6dZ*s&<56q8<1U^ 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 ab>eo6{3pk@e7QMC;(uO84lg$^D*8Xlu2x_G delta 66466 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[ge,xe]-0/0/[0-9]1)。トークン " +"{module}が存在する場合、新しいモジュールを作成する際に、自動的に位置の値に置き換えられます。" #: netbox/dcim/forms/model_forms.py:1094 msgid "Console port template" @@ -9131,129 +9134,129 @@ msgstr "L2VPN のエクスポート" msgid "Exporting L2VPN (identifier)" msgstr "L2VPN (識別子) のエクスポート" -#: netbox/ipam/filtersets.py:155 netbox/ipam/filtersets.py:281 +#: netbox/ipam/filtersets.py:155 netbox/ipam/filtersets.py:283 #: netbox/ipam/forms/model_forms.py:229 netbox/ipam/tables/ip.py:212 #: netbox/templates/ipam/prefix.html:12 msgid "Prefix" msgstr "プレフィックス" #: netbox/ipam/filtersets.py:159 netbox/ipam/filtersets.py:198 -#: netbox/ipam/filtersets.py:221 +#: netbox/ipam/filtersets.py:223 msgid "RIR (ID)" msgstr "RIR (ID)" #: netbox/ipam/filtersets.py:165 netbox/ipam/filtersets.py:204 -#: netbox/ipam/filtersets.py:227 +#: netbox/ipam/filtersets.py:229 msgid "RIR (slug)" msgstr "RIR (slug)" -#: netbox/ipam/filtersets.py:285 +#: netbox/ipam/filtersets.py:287 msgid "Within prefix" msgstr "プレフィックス内" -#: netbox/ipam/filtersets.py:289 +#: netbox/ipam/filtersets.py:291 msgid "Within and including prefix" msgstr "プレフィックス内およびプレフィックスを含む" -#: netbox/ipam/filtersets.py:293 +#: netbox/ipam/filtersets.py:295 msgid "Prefixes which contain this prefix or IP" msgstr "このプレフィックス / IP を含むプレフィックス" -#: netbox/ipam/filtersets.py:304 netbox/ipam/filtersets.py:572 +#: netbox/ipam/filtersets.py:306 netbox/ipam/filtersets.py:574 #: netbox/ipam/forms/bulk_edit.py:343 netbox/ipam/forms/filtersets.py:196 #: netbox/ipam/forms/filtersets.py:331 msgid "Mask length" msgstr "マスクの長さ" -#: netbox/ipam/filtersets.py:373 netbox/vpn/filtersets.py:427 +#: netbox/ipam/filtersets.py:375 netbox/vpn/filtersets.py:427 msgid "VLAN (ID)" msgstr "VLAN (ID)" -#: netbox/ipam/filtersets.py:377 netbox/vpn/filtersets.py:422 +#: netbox/ipam/filtersets.py:379 netbox/vpn/filtersets.py:422 msgid "VLAN number (1-4094)" msgstr "VLAN 番号 (1-4094)" -#: netbox/ipam/filtersets.py:471 netbox/ipam/filtersets.py:475 -#: netbox/ipam/filtersets.py:567 netbox/ipam/forms/model_forms.py:496 +#: netbox/ipam/filtersets.py:473 netbox/ipam/filtersets.py:477 +#: netbox/ipam/filtersets.py:569 netbox/ipam/forms/model_forms.py:496 #: netbox/templates/tenancy/contact.html:53 #: netbox/tenancy/forms/bulk_edit.py:113 msgid "Address" msgstr "アドレス" -#: netbox/ipam/filtersets.py:479 +#: netbox/ipam/filtersets.py:481 msgid "Ranges which contain this prefix or IP" msgstr "このプレフィックス / IP を含む範囲" -#: netbox/ipam/filtersets.py:507 netbox/ipam/filtersets.py:563 +#: netbox/ipam/filtersets.py:509 netbox/ipam/filtersets.py:565 msgid "Parent prefix" msgstr "親プレフィックス" -#: netbox/ipam/filtersets.py:616 netbox/ipam/filtersets.py:856 -#: netbox/ipam/filtersets.py:1131 netbox/vpn/filtersets.py:385 +#: netbox/ipam/filtersets.py:618 netbox/ipam/filtersets.py:858 +#: netbox/ipam/filtersets.py:1133 netbox/vpn/filtersets.py:385 msgid "Virtual machine (name)" msgstr "仮想マシン (名前)" -#: netbox/ipam/filtersets.py:621 netbox/ipam/filtersets.py:861 -#: netbox/ipam/filtersets.py:1125 netbox/virtualization/filtersets.py:282 +#: netbox/ipam/filtersets.py:623 netbox/ipam/filtersets.py:863 +#: netbox/ipam/filtersets.py:1127 netbox/virtualization/filtersets.py:282 #: netbox/virtualization/filtersets.py:321 netbox/vpn/filtersets.py:390 msgid "Virtual machine (ID)" msgstr "仮想マシン (ID)" -#: netbox/ipam/filtersets.py:627 netbox/vpn/filtersets.py:97 +#: netbox/ipam/filtersets.py:629 netbox/vpn/filtersets.py:97 #: netbox/vpn/filtersets.py:396 msgid "Interface (name)" msgstr "インタフェース (名前)" -#: netbox/ipam/filtersets.py:638 netbox/vpn/filtersets.py:108 +#: netbox/ipam/filtersets.py:640 netbox/vpn/filtersets.py:108 #: netbox/vpn/filtersets.py:407 msgid "VM interface (name)" msgstr "VM インタフェース (名前)" -#: netbox/ipam/filtersets.py:643 netbox/vpn/filtersets.py:113 +#: netbox/ipam/filtersets.py:645 netbox/vpn/filtersets.py:113 msgid "VM interface (ID)" msgstr "VM インタフェース (ID)" -#: netbox/ipam/filtersets.py:648 +#: netbox/ipam/filtersets.py:650 msgid "FHRP group (ID)" msgstr "FHRP グループ (ID)" -#: netbox/ipam/filtersets.py:652 +#: netbox/ipam/filtersets.py:654 msgid "Is assigned to an interface" msgstr "インタフェースに割り当てられているか" -#: netbox/ipam/filtersets.py:656 +#: netbox/ipam/filtersets.py:658 msgid "Is assigned" msgstr "割当済みか" -#: netbox/ipam/filtersets.py:668 +#: netbox/ipam/filtersets.py:670 msgid "Service (ID)" msgstr "サービス (ID)" -#: netbox/ipam/filtersets.py:673 +#: netbox/ipam/filtersets.py:675 msgid "NAT inside IP address (ID)" msgstr "NAT 内部の IP アドレス (ID)" -#: netbox/ipam/filtersets.py:1041 netbox/ipam/forms/bulk_import.py:322 +#: netbox/ipam/filtersets.py:1043 netbox/ipam/forms/bulk_import.py:322 msgid "Assigned interface" msgstr "割当インタフェース" -#: netbox/ipam/filtersets.py:1046 +#: netbox/ipam/filtersets.py:1048 msgid "Assigned VM interface" msgstr "割り当てられた VM インターフェイス" -#: netbox/ipam/filtersets.py:1136 +#: netbox/ipam/filtersets.py:1138 msgid "IP address (ID)" msgstr "IP アドレス (ID)" -#: netbox/ipam/filtersets.py:1142 netbox/ipam/models/ip.py:788 +#: netbox/ipam/filtersets.py:1144 netbox/ipam/models/ip.py:788 msgid "IP address" msgstr "IP アドレス" -#: netbox/ipam/filtersets.py:1167 +#: netbox/ipam/filtersets.py:1169 msgid "Primary IPv4 (ID)" msgstr "プライマリ IPv4 (ID)" -#: netbox/ipam/filtersets.py:1172 +#: netbox/ipam/filtersets.py:1174 msgid "Primary IPv6 (ID)" msgstr "プライマリ IPv6 (ID)" @@ -9477,11 +9480,11 @@ msgstr "割当デバイスのプライマリ IP アドレスにする" #: netbox/ipam/forms/bulk_import.py:330 msgid "Is out-of-band" -msgstr "" +msgstr "帯域外" #: netbox/ipam/forms/bulk_import.py:331 msgid "Designate this as the out-of-band IP address for the assigned device" -msgstr "" +msgstr "これを、割当デバイスの帯域外 IP アドレスとして指定します。" #: netbox/ipam/forms/bulk_import.py:371 msgid "No device or virtual machine specified; cannot set as primary IP" @@ -9489,11 +9492,11 @@ msgstr "デバイスまたは仮想マシンが指定されていないため、 #: netbox/ipam/forms/bulk_import.py:375 msgid "No device specified; cannot set as out-of-band IP" -msgstr "" +msgstr "デバイスが指定されていないため、帯域外IP として設定できません" #: netbox/ipam/forms/bulk_import.py:379 msgid "Cannot set out-of-band IP for virtual machines" -msgstr "" +msgstr "仮想マシンには帯域外 IP を設定できません" #: netbox/ipam/forms/bulk_import.py:383 msgid "No interface specified; cannot set as primary IP" @@ -9501,7 +9504,7 @@ msgstr "インタフェースが指定されていないため、プライマリ #: netbox/ipam/forms/bulk_import.py:387 msgid "No interface specified; cannot set as out-of-band IP" -msgstr "" +msgstr "インターフェイスが指定されていないため、帯域外IP として設定できません" #: netbox/ipam/forms/bulk_import.py:422 msgid "Auth type" @@ -9678,7 +9681,7 @@ msgstr "デバイス/VMのプライマリIPにする" #: netbox/ipam/forms/model_forms.py:314 msgid "Make this the out-of-band IP for the device" -msgstr "" +msgstr "これをデバイスの帯域外IPにする" #: netbox/ipam/forms/model_forms.py:329 msgid "NAT IP (Inside)" @@ -9690,11 +9693,11 @@ msgstr "IP アドレスは 1 つのオブジェクトにのみ割り当てるこ #: netbox/ipam/forms/model_forms.py:398 msgid "Cannot reassign primary IP address for the parent device/VM" -msgstr "" +msgstr "親デバイス/VMのプライマリ IP アドレスを再割り当てできません" #: netbox/ipam/forms/model_forms.py:402 msgid "Cannot reassign out-of-Band IP address for the parent device" -msgstr "" +msgstr "親デバイスに帯域外IP アドレスを再割り当てできません" #: netbox/ipam/forms/model_forms.py:412 msgid "" @@ -9705,7 +9708,7 @@ msgstr "プライマリ IP として指定できるのは、インタフェー msgid "" "Only IP addresses assigned to a device interface can be designated as the " "out-of-band IP for a device." -msgstr "" +msgstr "デバイスの帯域外 IP として指定できるのは、デバイスインタフェイスに割り当てられた IP アドレスのみです。" #: netbox/ipam/forms/model_forms.py:508 msgid "Virtual IP Address" @@ -10087,19 +10090,19 @@ msgstr "scope_typeなしでscope_idを設定することはできません。" #: netbox/ipam/models/vlans.py:105 #, python-brace-format msgid "Starting VLAN ID in range ({value}) cannot be less than {minimum}" -msgstr "" +msgstr "範囲の開始 VLAN ID ({value}) は{minimum}以下であってはなりません " #: netbox/ipam/models/vlans.py:111 #, python-brace-format msgid "Ending VLAN ID in range ({value}) cannot exceed {maximum}" -msgstr "" +msgstr "範囲の終了 VLAN ID ({value}) は{maximum}を超えることはできません " #: netbox/ipam/models/vlans.py:118 #, python-brace-format msgid "" "Ending VLAN ID in range must be greater than or equal to the starting VLAN " "ID ({range})" -msgstr "" +msgstr "範囲の終了 VLAN ID は、開始 VLAN ID ({range})以上である必要があります" #: netbox/ipam/models/vlans.py:124 msgid "Ranges cannot overlap." @@ -12434,11 +12437,11 @@ msgstr "ダウンロード" #: netbox/templates/dcim/device/render_config.html:64 #: netbox/templates/virtualization/virtualmachine/render_config.html:64 msgid "Error rendering template" -msgstr "" +msgstr "エラーレンダリングテンプレート" #: netbox/templates/dcim/device/render_config.html:70 msgid "No configuration template has been assigned for this device." -msgstr "" +msgstr "このデバイスには設定テンプレートが割り当てられていません。" #: netbox/templates/dcim/device_edit.html:44 msgid "Parent Bay" @@ -14091,7 +14094,7 @@ msgstr "仮想ディスクを追加" #: netbox/templates/virtualization/virtualmachine/render_config.html:70 msgid "No configuration template has been assigned for this virtual machine." -msgstr "" +msgstr "このVMには構成テンプレートが割り当てられていません。" #: netbox/templates/vpn/ikepolicy.html:10 #: netbox/templates/vpn/ipsecprofile.html:33 netbox/vpn/tables/crypto.py:166 @@ -15323,19 +15326,19 @@ msgstr "GRE" #: netbox/vpn/choices.py:39 msgid "WireGuard" -msgstr "" +msgstr "WireGuard" #: netbox/vpn/choices.py:40 msgid "OpenVPN" -msgstr "" +msgstr "OpenVPN" #: netbox/vpn/choices.py:41 msgid "L2TP" -msgstr "" +msgstr "L2TP" #: netbox/vpn/choices.py:42 msgid "PPTP" -msgstr "" +msgstr "PPTP" #: netbox/vpn/choices.py:64 msgid "Hub" From f03489f58ee6452f9b0c60d84364f0c67c96b41e Mon Sep 17 00:00:00 2001 From: Thor Selmer Dreier-Hansen <43479811+thordreier@users.noreply.github.com> Date: Fri, 27 Dec 2024 21:11:51 +0100 Subject: [PATCH 11/11] Add distinct() to filtering VLANs by assigned interface (#18274) --- netbox/ipam/filtersets.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/netbox/ipam/filtersets.py b/netbox/ipam/filtersets.py index 033f0a4dc..f65aba407 100644 --- a/netbox/ipam/filtersets.py +++ b/netbox/ipam/filtersets.py @@ -1080,7 +1080,7 @@ class VLANFilterSet(NetBoxModelFilterSet, TenancyFilterSet): return queryset.filter( Q(interfaces_as_tagged=value) | Q(interfaces_as_untagged=value) - ) + ).distinct() def filter_vminterface_id(self, queryset, name, value): if value is None: @@ -1088,7 +1088,7 @@ class VLANFilterSet(NetBoxModelFilterSet, TenancyFilterSet): return queryset.filter( Q(vminterfaces_as_tagged=value) | Q(vminterfaces_as_untagged=value) - ) + ).distinct() class ServiceTemplateFilterSet(NetBoxModelFilterSet):