Revision b500da65 flowspec/models.py
b/flowspec/models.py | ||
---|---|---|
4 | 4 |
from django.db import models |
5 | 5 |
from django.conf import settings |
6 | 6 |
from django.contrib.auth.models import User |
7 |
from django.db.models.query import QuerySet |
|
7 | 8 |
from utils import proxy as PR |
8 | 9 |
from ipaddr import * |
9 | 10 |
import datetime |
... | ... | |
102 | 103 |
ordering = ['action', 'action_value'] |
103 | 104 |
unique_together = ("action", "action_value") |
104 | 105 |
|
106 |
class QuerySetManager(models.Manager): |
|
107 |
def get_query_set(self): |
|
108 |
return self.model.QuerySet(self.model) |
|
109 |
|
|
105 | 110 |
class Route(models.Model): |
106 | 111 |
name = models.SlugField(max_length=128) |
107 | 112 |
applier = models.ForeignKey(User, blank=True, null=True) |
... | ... | |
127 | 132 |
response = models.CharField(max_length=512, blank=True, null=True) |
128 | 133 |
comments = models.TextField(null=True, blank=True, verbose_name="Comments") |
129 | 134 |
|
135 |
objects = QuerySetManager() |
|
130 | 136 |
|
137 |
class QuerySet(QuerySet): |
|
138 |
def add_route_set(self): |
|
139 |
route_list = [] |
|
140 |
route_names = '' |
|
141 |
for route in self: |
|
142 |
peer = route.applier.get_profile().peer.domain_name |
|
143 |
route_list.append(route) |
|
144 |
route_names = "%s, %s" %(route.name, route_names) |
|
145 |
send_message("[%s] Adding rules: %s. Please wait..." %(route.applier.username, route_names.rstrip(',')), peer) |
|
146 |
response = add_set.delay(route_list) |
|
147 |
logger.info("Got add job id: %s" %response) |
|
148 |
|
|
131 | 149 |
def __unicode__(self): |
132 | 150 |
return self.name |
133 | 151 |
|
Also available in: Unified diff