quary filter tag__n
This commit is contained in:
@@ -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"]
|
||||||
|
|||||||
Reference in New Issue
Block a user