quary filter tag__n

This commit is contained in:
Шрамко Илья Александрович
2026-02-06 17:16:19 +03:00
parent 6e535242dc
commit 3767880f2a

View File

@@ -7,9 +7,10 @@ from dcim.models import VirtualChassis, Interface
from netbox.choices import ColorChoices from netbox.choices import ColorChoices
from utilities.exceptions import AbortScript from utilities.exceptions import AbortScript
TAGS = "sync:vchas_interface"
class Vchassis_checker(Script): class Vchassis_checker(Script):
TAGS = "sync:vchas_interface"
IFACE_RE = re.compile( IFACE_RE = re.compile(
r"^(?P<prefix>[A-Za-z]+)\s?(?:(?P<slot>\d+)/)?(?P<rest>\d+/\d+)$" r"^(?P<prefix>[A-Za-z]+)\s?(?:(?P<slot>\d+)/)?(?P<rest>\d+/\d+)$"
) )
@@ -23,18 +24,18 @@ class Vchassis_checker(Script):
virtual_chassis = ObjectVar( virtual_chassis = ObjectVar(
model=VirtualChassis, model=VirtualChassis,
description="Виртуальное шасси без тегов", description="Виртуальное шасси без тегов",
query_params={"tags": []}, query_params={"tag__n": TAGS},
) )
def run(self, data, commit): def run(self, data, commit):
if Tag.objects.filter(name=self.TAGS).exists(): if Tag.objects.filter(name=TAGS).exists():
tag = Tag.objects.get(name=self.TAGS) tag = Tag.objects.get(name=TAGS)
else: else:
self.log_warning(f"Отсутствует tag {self.TAGS}") self.log_warning(f"Отсутствует tag {TAGS}")
tag_data = { tag_data = {
"color": ColorChoices.COLOR_LIGHT_BLUE, "color": ColorChoices.COLOR_LIGHT_BLUE,
"name": self.TAGS, "name": TAGS,
"slug": self.TAGS.replace(":", "_"), "slug": TAGS.replace(":", "_"),
"description": "тег для автоматического назначения на синхронизированные интерфейсы vchassis", "description": "тег для автоматического назначения на синхронизированные интерфейсы vchassis",
} }
tag = Tag(**tag_data) tag = Tag(**tag_data)
@@ -42,7 +43,7 @@ class Vchassis_checker(Script):
tag.full_clean() tag.full_clean()
tag.save() tag.save()
self.log_success( self.log_success(
f"Создан тег: {self.TAGS}", f"Создан тег: {TAGS}",
obj=tag, obj=tag,
) )
vc = data["virtual_chassis"] vc = data["virtual_chassis"]