Statistics
| Branch: | Tag: | Revision:

root / flowspec / tasks.py @ 3e99e2d1

History | View | Annotate | Download (2.6 kB)

1
from utils import proxy as PR
2
from celery.task import task
3
from celery.task.sets import subtask
4
import logging
5
from celery.task.http import *
6
from flowspy.utils import beanstalkc
7
from django.conf import settings
8

    
9
FORMAT = '%(asctime)s %(levelname)s: %(message)s'
10
logging.basicConfig(format=FORMAT)
11
logger = logging.getLogger(__name__)
12
logger.setLevel(logging.DEBUG)
13

    
14
@task
15
def add(route, callback=None):
16
    applier = PR.Applier(route_object=route)
17
    commit, response = applier.apply()
18
    if commit:
19
        is_online = True
20
        is_active = True
21
    else:
22
        is_online = False
23
        is_active = True
24
    route.is_online = is_online
25
    route.is_active = is_active
26
    route.response = response
27
    subtask(announce).delay("Route add: %s - Result: %s" %(route.name, response))
28
    route.save()
29

    
30
@task
31
def edit(route, callback=None):
32
    applier = PR.Applier(route_object=route)
33
    commit, response = applier.apply(operation="replace")
34
    if commit:
35
        is_online = True
36
    else:
37
        is_online = False
38
    route.is_active = True
39
    route.is_online = is_online
40
    route.response = response
41
    route.save()
42
    subtask(announce).delay("Route edit: %s - Result: %s" %(route.name, response))
43

    
44

    
45

    
46
@task
47
def delete(route, callback=None):
48
    applier = PR.Applier(route_object=route)
49
    commit, response = applier.apply(operation="delete")
50
    if commit:
51
        is_online = False
52
        is_active = False
53
    else:
54
        is_online = route.is_online
55
        is_active = route.is_active
56
    route.is_online = is_online
57
    route.is_active = is_active
58
    route.response = response
59
    route.save()
60
    subtask(announce).delay("Route delete: %s - Result %s" %(route.name, response))
61

    
62

    
63

    
64
@task
65
def announce(messg):
66
    messg = str(messg)
67
    b = beanstalkc.Connection()
68
    b.use(settings.POLLS_TUBE)
69
    b.put(messg)
70
    b.close()
71

    
72

    
73
#def delete(route):
74
#    
75
#    applier = PR.Applier(route_object=route)
76
#    commit, response = applier.apply(configuration=applier.delete_routes())
77
#    if commit:
78
#            rows = queryset.update(is_online=False, is_active=False)
79
#            queryset.update(response="Successfully removed route from network")
80
#            self.message_user(request, "Successfully removed %s routes from network" % rows)
81
#        else:
82
#            self.message_user(request, "Could not remove routes from network")
83
#    if commit:
84
#        is_online = False
85
#        is_active = False
86
#        response = "Successfully removed route from network"
87
#    else:
88
#        is_online = False
89
#        is_active = True
90
#    route.is_online = is_online
91
#    route.is_active = is_active
92
#    route.response = response
93
#    route.save()