Statistics
| Branch: | Tag: | Revision:

root / flowspec / tasks.py @ 3e99e2d1

History | View | Annotate | Download (2.6 kB)

1 9cad4715 Leonidas Poulopoulos
from utils import proxy as PR
2 9cad4715 Leonidas Poulopoulos
from celery.task import task
3 3e99e2d1 Leonidas Poulopoulos
from celery.task.sets import subtask
4 3e99e2d1 Leonidas Poulopoulos
import logging
5 3e99e2d1 Leonidas Poulopoulos
from celery.task.http import *
6 3e99e2d1 Leonidas Poulopoulos
from flowspy.utils import beanstalkc
7 3e99e2d1 Leonidas Poulopoulos
from django.conf import settings
8 3e99e2d1 Leonidas Poulopoulos
9 3e99e2d1 Leonidas Poulopoulos
FORMAT = '%(asctime)s %(levelname)s: %(message)s'
10 3e99e2d1 Leonidas Poulopoulos
logging.basicConfig(format=FORMAT)
11 3e99e2d1 Leonidas Poulopoulos
logger = logging.getLogger(__name__)
12 3e99e2d1 Leonidas Poulopoulos
logger.setLevel(logging.DEBUG)
13 9cad4715 Leonidas Poulopoulos
14 9cad4715 Leonidas Poulopoulos
@task
15 3e99e2d1 Leonidas Poulopoulos
def add(route, callback=None):
16 9cad4715 Leonidas Poulopoulos
    applier = PR.Applier(route_object=route)
17 9cad4715 Leonidas Poulopoulos
    commit, response = applier.apply()
18 9cad4715 Leonidas Poulopoulos
    if commit:
19 9cad4715 Leonidas Poulopoulos
        is_online = True
20 9cad4715 Leonidas Poulopoulos
        is_active = True
21 9cad4715 Leonidas Poulopoulos
    else:
22 9cad4715 Leonidas Poulopoulos
        is_online = False
23 9cad4715 Leonidas Poulopoulos
        is_active = True
24 9cad4715 Leonidas Poulopoulos
    route.is_online = is_online
25 9cad4715 Leonidas Poulopoulos
    route.is_active = is_active
26 9cad4715 Leonidas Poulopoulos
    route.response = response
27 3e99e2d1 Leonidas Poulopoulos
    subtask(announce).delay("Route add: %s - Result: %s" %(route.name, response))
28 3e99e2d1 Leonidas Poulopoulos
    route.save()
29 3e99e2d1 Leonidas Poulopoulos
30 3e99e2d1 Leonidas Poulopoulos
@task
31 3e99e2d1 Leonidas Poulopoulos
def edit(route, callback=None):
32 3e99e2d1 Leonidas Poulopoulos
    applier = PR.Applier(route_object=route)
33 3e99e2d1 Leonidas Poulopoulos
    commit, response = applier.apply(operation="replace")
34 3e99e2d1 Leonidas Poulopoulos
    if commit:
35 3e99e2d1 Leonidas Poulopoulos
        is_online = True
36 3e99e2d1 Leonidas Poulopoulos
    else:
37 3e99e2d1 Leonidas Poulopoulos
        is_online = False
38 3e99e2d1 Leonidas Poulopoulos
    route.is_active = True
39 3e99e2d1 Leonidas Poulopoulos
    route.is_online = is_online
40 3e99e2d1 Leonidas Poulopoulos
    route.response = response
41 9cad4715 Leonidas Poulopoulos
    route.save()
42 3e99e2d1 Leonidas Poulopoulos
    subtask(announce).delay("Route edit: %s - Result: %s" %(route.name, response))
43 3e99e2d1 Leonidas Poulopoulos
44 3e99e2d1 Leonidas Poulopoulos
45 971645d6 Leonidas Poulopoulos
46 971645d6 Leonidas Poulopoulos
@task
47 3e99e2d1 Leonidas Poulopoulos
def delete(route, callback=None):
48 3e99e2d1 Leonidas Poulopoulos
    applier = PR.Applier(route_object=route)
49 3e99e2d1 Leonidas Poulopoulos
    commit, response = applier.apply(operation="delete")
50 3e99e2d1 Leonidas Poulopoulos
    if commit:
51 3e99e2d1 Leonidas Poulopoulos
        is_online = False
52 3e99e2d1 Leonidas Poulopoulos
        is_active = False
53 3e99e2d1 Leonidas Poulopoulos
    else:
54 3e99e2d1 Leonidas Poulopoulos
        is_online = route.is_online
55 3e99e2d1 Leonidas Poulopoulos
        is_active = route.is_active
56 3e99e2d1 Leonidas Poulopoulos
    route.is_online = is_online
57 3e99e2d1 Leonidas Poulopoulos
    route.is_active = is_active
58 3e99e2d1 Leonidas Poulopoulos
    route.response = response
59 3e99e2d1 Leonidas Poulopoulos
    route.save()
60 3e99e2d1 Leonidas Poulopoulos
    subtask(announce).delay("Route delete: %s - Result %s" %(route.name, response))
61 3e99e2d1 Leonidas Poulopoulos
62 3e99e2d1 Leonidas Poulopoulos
63 3e99e2d1 Leonidas Poulopoulos
64 3e99e2d1 Leonidas Poulopoulos
@task
65 3e99e2d1 Leonidas Poulopoulos
def announce(messg):
66 3e99e2d1 Leonidas Poulopoulos
    messg = str(messg)
67 3e99e2d1 Leonidas Poulopoulos
    b = beanstalkc.Connection()
68 3e99e2d1 Leonidas Poulopoulos
    b.use(settings.POLLS_TUBE)
69 3e99e2d1 Leonidas Poulopoulos
    b.put(messg)
70 3e99e2d1 Leonidas Poulopoulos
    b.close()
71 3e99e2d1 Leonidas Poulopoulos
72 3e99e2d1 Leonidas Poulopoulos
73 9cad4715 Leonidas Poulopoulos
#def delete(route):
74 9cad4715 Leonidas Poulopoulos
#    
75 9cad4715 Leonidas Poulopoulos
#    applier = PR.Applier(route_object=route)
76 9cad4715 Leonidas Poulopoulos
#    commit, response = applier.apply(configuration=applier.delete_routes())
77 9cad4715 Leonidas Poulopoulos
#    if commit:
78 9cad4715 Leonidas Poulopoulos
#            rows = queryset.update(is_online=False, is_active=False)
79 9cad4715 Leonidas Poulopoulos
#            queryset.update(response="Successfully removed route from network")
80 9cad4715 Leonidas Poulopoulos
#            self.message_user(request, "Successfully removed %s routes from network" % rows)
81 9cad4715 Leonidas Poulopoulos
#        else:
82 9cad4715 Leonidas Poulopoulos
#            self.message_user(request, "Could not remove routes from network")
83 9cad4715 Leonidas Poulopoulos
#    if commit:
84 9cad4715 Leonidas Poulopoulos
#        is_online = False
85 9cad4715 Leonidas Poulopoulos
#        is_active = False
86 9cad4715 Leonidas Poulopoulos
#        response = "Successfully removed route from network"
87 9cad4715 Leonidas Poulopoulos
#    else:
88 9cad4715 Leonidas Poulopoulos
#        is_online = False
89 9cad4715 Leonidas Poulopoulos
#        is_active = True
90 9cad4715 Leonidas Poulopoulos
#    route.is_online = is_online
91 9cad4715 Leonidas Poulopoulos
#    route.is_active = is_active
92 9cad4715 Leonidas Poulopoulos
#    route.response = response
93 9cad4715 Leonidas Poulopoulos
#    route.save()