Skip to content

Commit 410befd

Browse files
committed
Fix bug that blocked control screen if muon veto failed.
1 parent bfc64ec commit 410befd

File tree

8 files changed

+69
-44
lines changed

8 files changed

+69
-44
lines changed

api/api/resources.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,7 @@ class Meta:
345345
allowed_methods = ['get', 'post', 'put']
346346
authorization = Authorization()
347347
authentication = ApiKeyAuthentication()
348-
throttle = CacheThrottle(throttle_at=500, timeframe=60)
348+
throttle = CacheThrottle(throttle_at=50, timeframe=60)
349349

350350
def _db(self):
351351
try:

components/emo/js/daqcontrol.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -344,12 +344,14 @@ function UpdateDetectorTextPretty(dataUrl, nodesUrl, tpc_div, mv_div, tpc_title,
344344
document.getElementById(tpc_div).innerHTML = tpcstr;
345345
document.getElementById(mv_div).innerHTML = mvstr;
346346

347-
347+
348348
// Update general info
349349
var aliases = {"tpc": "TPC", "muon_veto": "Muon Veto"};
350350
for ( var status_id = 0; status_id < detector_data['status'].length;
351351
status_id += 1){
352-
352+
353+
if(!detector_data['status'][status_id])
354+
continue;
353355
// If we have a nicer name to display set it
354356
var display_name = detector_data['status'][status_id]['detector'];
355357
var det_name = display_name;

components/emo/js/emo_runs_streamer.js

Lines changed: 39 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -248,8 +248,10 @@ function DrawDetailWindow(url, params, header_template, header_div,
248248
function GetColor(string){
249249
if (string=="transferred" || string=="processing")
250250
return "#36bc98";
251-
if(string=="transferring" || string=="checking" || string=="verifying")
251+
if(string=="transferring")
252252
return "#f9a100";
253+
if(string == "checking" || string == "verifying")
254+
return "#8f58f1";
253255
else
254256
return "#ec2c35";
255257
}
@@ -260,13 +262,15 @@ function DrawCommentsWindow(data, comment_template, comments_template){
260262
Mustache.parse(commenttemplate);
261263

262264
var comments = "";
263-
for(i=0; i<data['comments'].length; i+=1){
264-
pars = {
265-
"user": data['comments'][i]['user'],
266-
"date": DateToString(data['comments'][i]['date']),
267-
"text": data['comments'][i]['text']
265+
if('comments' in data){
266+
for(i=0; i<data['comments'].length; i+=1){
267+
pars = {
268+
"user": data['comments'][i]['user'],
269+
"date": DateToString(data['comments'][i]['date']),
270+
"text": data['comments'][i]['text']
271+
}
272+
comments+=(Mustache.render(commenttemplate, pars));
268273
}
269-
comments+=(Mustache.render(commenttemplate, pars));
270274
}
271275

272276
pars2 = {
@@ -355,14 +359,21 @@ function DrawTagWindow(data, tag_template, tagbutton_template){
355359
if("tags" in data){
356360
buttonhtml="<br style='margin:1px'><div style='width:100%'>";
357361
for(var i=0; i<data['tags'].length; i+=1){
362+
user = "autotagger";
363+
if ( 'user' in data['tags'][i] && data['tags'][i]['user'] != "" &&
364+
data['tags'][i]['user'] != null)
365+
user = data['tags'][i]['user'];
358366
bargs = {
359367
"tagname": data['tags'][i]['name'],
360368
'oid': data['_id']['$oid'],
361369
'detector': data['detector'],
362370
'name': data['name'],
371+
'user': user,
363372
'hideifnotme': 'style="display:none"'
364373
};
365-
if(document.whoami == data['tags'][i]['user'])
374+
console.log(document.whoami);
375+
if(document.whoami == data['tags'][i]['user'] ||
376+
document.whoami == "coderre")
366377
bargs['hideifnotme'] = "style='display:inline;'";
367378
buttonhtml += Mustache.render(tagbuttontemplate, bargs);
368379
}
@@ -400,38 +411,42 @@ function GetDataState(data){
400411
for(i=0; i<data.length; i+=1){
401412
if(!(data[i]['host'] in hosts))
402413
continue;
403-
if(data[i]['status'] == 'error' || hosts[data[i]['host']] == 5)
404-
hosts[data[i]['host']] = 5;
414+
if(data[i]['status'] == 'error' || hosts[data[i]['host']] == 6)
415+
hosts[data[i]['host']] = 6;
405416
else if(data[i]['type'] == 'raw' || data[i]['type'] == 'untriggered'){
406417
if((data[i]['status'] == 'transferring' ||
407418
data[i]['status']=='verifying')
408-
&& hosts[data[i]['host']]==0)
409-
hosts[data[i]['host']] = 1;
419+
&& hosts[data[i]['host']]==0){
420+
if(data[i]['status']=='verifying')
421+
hosts[data[i]['host']]=2;
422+
else
423+
hosts[data[i]['host']] = 1;
424+
}
410425
else if(data[i]['status'] == 'transferred' &&
411-
(hosts[data[i]['host']] < 2))
412-
hosts[data[i]['host']] = 2;
426+
(hosts[data[i]['host']] < 3))
427+
hosts[data[i]['host']] = 3;
413428
}
414429
else if(data[i]['type'] == 'processed'){
415430
if(data[i]['status'] == 'transferring' ||
416431
data[i]['status']=='verifying')
417-
hosts[data[i]['host']] = 3;
418-
else if(data[i]['status'] == 'transferred')
419432
hosts[data[i]['host']] = 4;
433+
else if(data[i]['status'] == 'transferred')
434+
hosts[data[i]['host']] = 5;
420435
}
421436
}// end for
422437
// Adjust DAQ
423-
if(hosts['xe1t-datamanager']==2 ||
438+
if(hosts['xe1t-datamanager']==3 ||
424439
(hosts['xe1t-datamanager']==1 && hosts['reader'] == 0))
425-
hosts['reader'] = 2;
440+
hosts['reader'] = 3;
426441

427442
// Now create the html glyphicon glyphicon-stop
428443
html = "";
429-
colors= ["#ff0000", "#ffcc00", "#006600", "#000099",
430-
"#3399ff", "#ff6600"];
431-
genstatus=["No data", "Transferring", "Transferred",
432-
"Processing", "Processed", "Error"];
433-
daqstatus=["Untriggered", "Triggering", "Triggered",
434-
"Processing", "Processed", "Error"];
444+
colors= ["#ff0000", "#ffcc00", "#9652f1", "#006600", "#000099",
445+
"#3399ff", "#ff6600", "#9652F1"];
446+
genstatus=["No data", "Transferring", "Verifying", "Transferred",
447+
"Processing", "Processed", "Error", "Verifying"];
448+
daqstatus=["Untriggered", "Triggering", "Triggered", "Verified",
449+
"Processing", "Processed", "Error", "Verifying"];
435450
for(host in hosts){
436451
status = genstatus[hosts[host]];
437452
type="glyphicon-stop";

control/templates/control/controlPanelNew.html

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ <h4 style="padding:3px;margin:0">
113113
<div class="row" style="overflow-y:auto">
114114
<!-- Quick status funny face -->
115115
<div class="col-sm-2 col-xs-12">
116-
<strong>Quick Status</strong>
116+
<strong>Trigger Status (Beta)</strong>
117117
<hr style="margin:0;padding:0;margin-bottom:20px">
118118
<div id="theimage" style="width:100%;height:90%">
119119
</div>
@@ -134,9 +134,9 @@ <h4 style="padding:3px;margin:0">
134134
<strong>Event rate: </strong>
135135
<span id="trigger_event_rate"></span> events/s
136136
<div class="row">
137-
<div class="col-xs-2"><strong>Buffer</strong></div>
137+
<!--<div class="col-xs-2"><strong>Buffer</strong></div>
138138
<div class="col-xs-10 progress" style="margin-bottom:5px;padding:0;position:relative;"
139-
id="eb_lag_progress"></div>
139+
id="eb_lag_progress"></div>-->
140140
<div class="col-xs-12"><strong>Triggering: </strong>
141141
<span id="eb_working"></span>
142142
</div>
@@ -527,9 +527,9 @@ <h3>Muon Veto</h3>
527527
document.getElementById("busy_tot_progress").innerHTML = GetGradProgress(data['deadtime_total'],
528528
"dead time", 0.1, 0.5, data['deadtime_total']*100, "%");
529529
document.getElementById("busy_progress").innerHTML=GetGradProgress(busy, "dead time", 0.1, 0.5, busy*100, "%");
530-
document.getElementById("eb_lag_progress").innerHTML = GetGradProgress(
531-
data['eventbuilder_info']['eventbuilder_queue_size']/10000, "in queue",
532-
0.3, 0.7, data['eventbuilder_info']['eventbuilder_queue_size'], " events");
530+
//document.getElementById("eb_lag_progress").innerHTML = GetGradProgress(
531+
// data['eventbuilder_info']['eventbuilder_queue_size']/10000, "in queue",
532+
// 0.3, 0.7, data['eventbuilder_info']['eventbuilder_queue_size'], " events");
533533
if(data['eventbuilder_info']['working_on_run']==true)
534534
document.getElementById("eb_working").innerHTML="Yes";
535535
else

control/views.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -61,19 +61,21 @@ def GetTPCEventRate(request):
6161
doc = monDB[collection].find_one({"data_type": "batch_info"},
6262
sort=[("_id", -1)])
6363
newest = collection
64-
if doc is not None:
64+
rundoc = runsDB.find_one({"name": newest, "detector": "tpc"})
65+
66+
if doc is not None and rundoc is not None:
6567
break
68+
6669
if doc is not None:
6770
rnum = newest
68-
rundoc = runsDB.find_one({"name": rnum, "detector": "tpc"})
6971
start = rundoc['start']
7072
timestamp = (start - datetime.datetime(1970,1,1)).total_seconds()
7173
retdoc['rate'] = doc['events_built']/21.
7274
retdoc['time'] = str(timestamp+doc['last_time_searched']/1000000000.),
7375
retdoc['rname'] = rnum
7476
retdoc['rnumber'] = rundoc['number']
7577
except Exception as e:
76-
logger.error("Error " + str(e))
78+
logger.error("Error status:" + str(e)+" "+str(newest))
7779

7880
try:
7981
dead_time_doc = monDB[newest].find({"data_type":
@@ -91,7 +93,7 @@ def GetTPCEventRate(request):
9193
"busytime": "$count", "totaltime": "$tot"}}])))[0]
9294
retdoc['deadtime_total'] = dead_time_doc['deadtime']
9395
except Exception as e:
94-
logger.error("Error " + str(e))
96+
logger.error("Error deadtime run:" + str(e))
9597

9698
# Pipeline status this run
9799
try:
@@ -101,7 +103,7 @@ def GetTPCEventRate(request):
101103
retdoc['eb1:27000'] = dead_time_doc["eb1:27000"]
102104
retdoc['eb2:27000'] = dead_time_doc["eb2:27000"]
103105
except Exception as e:
104-
logger.error("Error " + str(e))
106+
logger.error("Error deadtime: " + str(e))
105107

106108
# Eventbuilder queue and checkin
107109
try:
@@ -111,7 +113,7 @@ def GetTPCEventRate(request):
111113
retdoc['eventbuilder_info']['time'] = (retdoc['eventbuilder_info']['time']- datetime.datetime(1970,1,1)).total_seconds()
112114

113115
except Exception as e:
114-
logger.error("Error " + str(e))
116+
logger.error("Error pipeline: " + str(e))
115117

116118
return HttpResponse(dumps(retdoc),
117119
content_type="application/json")

management/templates/management/user_management.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
<!--<h3>User Management</h3>-->
4545
</div>
4646
<div class="col-xs-1 col-sm-1 col-xs-offset-8">
47-
{% if request.user.username == "messina" or request.user.username == "coderre" %}
47+
{% if request.user.username == "messina" or request.user.username == "coderre" or request.user.username == "murra" %}
4848
<button data-toggle="modal" onclick="NewUser()" class="btn btn-info pull-right" style="margin-top:10px;">+ NewUser </button>
4949
{% endif %}
5050
</div>

monitor/views.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1513,7 +1513,8 @@ def getWaveform(request):
15131513
cursor = database[collection].find(searchdict).limit(30)
15141514
if cursor.count() < 10:
15151515
continue
1516-
1516+
1517+
logger.error(str(cursor.count()) + " events in collection " + collection)
15171518
# Found something, fill ret dictionary
15181519
retdict = {"collection": collection, "waveforms": [],
15191520
"ret": 'success'}

runs/templates/runs/runs_new.html

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,8 @@
6666
<input type="text" id="form_query"></input> </div>
6767
<div class="col-xs-1">
6868
<button class="btn btn-info btn-sm" onclick="RefreshTable()" style="height:30%;padding-left:50px;padding-right:50px;margin:8px;">Search</button>
69-
<!--<a class="btn btn-warning btn-sm" href="/runs/?startdate=&enddate=&detector=tpc&custom=%7B%22trigger.events_built%22%3A+%7B%22%24gt%22%3A+0%7D%2C+%22%24or%22%3A%09%5B%7B%22data.host%22%3A+%7B+%22%24nin%22%3A+%5B%22midway-login1%22%5D%7D%7D%2C%7B%22data.host%22%3A+%7B+%22%24nin%22%3A+%5B%22tegner-login-1%22%5D%7D%7D%2C+%7B%22data.status%22%3A+%22error%22%7D%5D%2C%22number%22%3A+%7B%22%24gt%22%3A+1000%7D%7D&submit=">Show transfer errors</a>-->
69+
<button class="btn btn-warning btn-sm"
70+
onclick="ShowTransferErrors()">Show transfer errors</button>
7071

7172
</div>
7273
</div>
@@ -220,8 +221,12 @@ <h4 class="modal-title">Help</h4>
220221

221222
});
222223

224+
function ShowTransferErrors(){
225+
$("#form_query").val('{"data": {"$elemMatch": {"status": "error"}}}');
226+
RefreshTable();
227+
}
223228
function RefreshTable(){
224-
229+
console.log("Refresh");
225230
runs_url = "/runs/runs_stream";
226231
// Get Options
227232
var detector = $('#form_detector').find(":selected").val();
@@ -312,7 +317,7 @@ <h4 class="modal-title">Help</h4>
312317
<script id="template_tagbutton" type="text/html">
313318

314319
<span class="tagButton">
315-
<a style="color:white;cursor:pointer;" onclick="ShowTag('{% verbatim %}{{ name }}{% endverbatim %}')">{% verbatim %}{{ tagname }}{% endverbatim %} </a>
320+
<a style="color:white;cursor:pointer;" data-toggle="tooltip" title="Added by {% verbatim %}{{ user }}{% endverbatim %}" onclick="ShowTag('{% verbatim %}{{ name }}{% endverbatim %}')">{% verbatim %}{{ tagname }}{% endverbatim %} </a>
316321
<div {% verbatim %}{{{ hideifnotme }}}{% endverbatim %}>
317322

318323
<span class="badge" style="cursor:hand;cursor:pointer;"

0 commit comments

Comments
 (0)