Add scheduling models and fields for peer management

This commit is contained in:
Eduardo Silva
2026-01-28 11:57:54 -03:00
parent 35e2899b3c
commit d3033d3936
11 changed files with 182 additions and 1 deletions

View File

@@ -119,6 +119,10 @@ class Peer(models.Model):
'routing_templates.RoutingTemplate', on_delete=models.SET_NULL, blank=True, null=True, related_name='peers'
)
enabled_by_schedule = models.BooleanField(default=True)
suspended = models.BooleanField(default=False)
suspend_reason = models.TextField(blank=True, null=True)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
uuid = models.UUIDField(primary_key=True, editable=False, default=uuid.uuid4)
@@ -129,6 +133,10 @@ class Peer(models.Model):
else:
return self.public_key[:16] + "..."
@property
def enabled(self) -> bool:
return self.enabled_by_schedule and not self.suspended
@property
def announced_networks(self):
prefetched = getattr(self, "_prefetched_objects_cache", {})