##// END OF EJS Templates
Fix bugs and add revoke tasks method
Juan C. Espinoza -
r330:9627993550b8
parent child
Show More
@@ -61,6 +61,7 urlpatterns = (
61 61
62 62 url(r'^operation/$', views.operation, name='url_operation'),
63 63 url(r'^operation/(?P<id_camp>-?\d+)/$', views.operation, name='url_operation'),
64 url(r'^operation/(?P<id_camp>-?\d+)/revoke$', views.revoke_tasks, name='url_operation_revoke'),
64 65 url(r'^operation/(?P<id_camp>-?\d+)/radar/(?P<id_radar>-?\d+)/start/$', views.radar_start, name='url_radar_start'),
65 66 url(r'^operation/(?P<id_camp>-?\d+)/radar/(?P<id_radar>-?\d+)/stop/$', views.radar_stop, name='url_radar_stop'),
66 67 url(r'^operation/(?P<id_camp>-?\d+)/radar/(?P<id_radar>-?\d+)/refresh/$', views.radar_refresh, name='url_radar_refresh'),
@@ -1261,7 +1261,7 def parse_mask(l):
1261 1261 def dev_confs(request):
1262 1262
1263 1263 page = request.GET.get('page')
1264 order = ('programmed_date', )
1264 order = ('-programmed_date', )
1265 1265 filters = request.GET.copy()
1266 1266 if 'my configurations' in filters:
1267 1267 filters.pop('my configurations', None)
@@ -1795,10 +1795,10 def radar_start(request, id_camp, id_radar):
1795 1795 if start > campaign.end_date or start < campaign.start_date:
1796 1796 messages.warning(request, 'Experiment {} out of date'.format(exp))
1797 1797 continue
1798
1798
1799 app.control.revoke(exp.task)
1800
1799 1801 if now > start and now <= end:
1800 exp.status = 3
1801 exp.save()
1802 1802 task = task_start.delay(exp.id)
1803 1803 exp.status = task.wait()
1804 1804 if exp.status == 0:
@@ -1844,21 +1844,38 def radar_refresh(request, id_camp, id_radar):
1844 1844 experiments = campaign.get_experiments_by_radar(id_radar)[0]['experiments']
1845 1845
1846 1846 i = app.control.inspect()
1847 scheduled = i.scheduled().values[0]
1848 revoked = i.revoked().values[0]
1847 scheduled = i.scheduled().values()[0]
1848 revoked = i.revoked().values()[0]
1849 1849
1850 1850 for exp in experiments:
1851 1851 if exp.task in revoked:
1852 1852 exp.status = 1
1853 elif exp.task in [t['request']['id'] for t in scheduled if 'task_start' in t['request']['name']]:
1854 exp.status = 2
1855 1853 elif exp.task in [t['request']['id'] for t in scheduled if 'task_stop' in t['request']['name']]:
1854 exp.status = 2
1855 elif exp.task in [t['request']['id'] for t in scheduled if 'task_start' in t['request']['name']]:
1856 1856 exp.status = 3
1857 1857 else:
1858 1858 exp.status = 4
1859 1859 exp.save()
1860 1860 return HttpResponseRedirect(reverse('url_operation', args=[id_camp]))
1861 1861
1862 @login_required
1863 def revoke_tasks(request, id_camp):
1864
1865 i = app.control.inspect()
1866 scheduled = i.scheduled().values()[0]
1867 revoked = i.revoked().values()[0]
1868
1869 for t in scheduled:
1870 if t['request']['id'] in revoked:
1871 continue
1872 app.control.revoke(t['request']['id'])
1873 exp = Experiment.objects.get(pk=eval(t['request']['args'])[0])
1874 eta = t['eta']
1875 task = t['request']['name'].split('.')[-1]
1876 messages.warning(request, 'Scheduled {} at {} for experiment {} revoked'.format(task, eta, exp.name))
1877
1878 return HttpResponseRedirect(reverse('url_operation', args=[id_camp]))
1862 1879
1863 1880 def real_time(request):
1864 1881
@@ -10,7 +10,7 function str2hz(s){
10 10
11 11
12 12 function str2unit(s){
13 var km2unit = (20/3)*(parseFloat($('#id_clock_in').val())/parseFloat($('#id_clock_divider').val()));
13 var km2unit = (20/3)*(parseFloat($('#id_frequency').val())/parseFloat($('#id_clock_divider').val()));
14 14 var ret = "";
15 15 values = s.split(",");
16 16 for (i=0; i<values.length; i++) {
@@ -33,7 +33,7 function str2int(s){
33 33
34 34
35 35 function str2km(s){
36 var km2unit = (20/3)*(parseFloat($('#id_clock_in').val())/parseFloat($('#id_clock_divider').val()));
36 var km2unit = (20/3)*(parseFloat($('#id_frequency').val())/parseFloat($('#id_clock_divider').val()));
37 37 var ret = "";
38 38 values = s.split(",");
39 39 for (i=0; i<values.length; i++) {
@@ -18,7 +18,10 def conf(request, conf_id):
18 18 conf = get_object_or_404(RCConfiguration, pk=conf_id)
19 19
20 20 lines = RCLine.objects.filter(rc_configuration=conf).order_by('channel')
21 clk = RCClock.objects.get(rc_configuration=conf)
21 clk = RCClock.objects.filter(rc_configuration=conf).first()
22 if clk is None:
23 clk = RCClock(rc_configuration=conf)
24 clk.save()
22 25
23 26 for line in lines:
24 27 params = json.loads(line.params)
General Comments 0
You need to be logged in to leave comments. Login now