Skip to content

Commit 0eadca0

Browse files
claireguyotteo
authored andcommitted
[OCTRL-679] O2 times and Trg times should be the correct ones for BK run details.
1 parent daaf1ff commit 0eadca0

3 files changed

Lines changed: 53 additions & 14 deletions

File tree

core/integration/bookkeeping/api.go

Lines changed: 34 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ package bookkeeping
2727
import (
2828
"net/url"
2929
"path"
30+
"strconv"
3031
"sync"
3132
"time"
3233

@@ -85,7 +86,7 @@ func (bk *BookkeepingWrapper) CreateRun(activityId string, nDetectors int, nEpns
8586
return err
8687
}
8788

88-
func (bk *BookkeepingWrapper) UpdateRun(runNumber int32, runResult string, timeO2Start time.Time, timeO2End time.Time, timeTrgStart time.Time, timeTrgEnd time.Time, trgGlobal bool, trg bool, pdpConfig string, pdpTopology string, tfbMode string /*, odcFullname string, lhcPeriod string*/) error {
89+
func (bk *BookkeepingWrapper) UpdateRun(runNumber int32, runResult string, timeO2Start string, timeO2End string, timeTrgStart string, timeTrgEnd string, trgGlobal bool, trg bool, pdpConfig string, pdpTopology string, tfbMode string /*, odcFullname string, lhcPeriod string*/) error {
8990
var runquality sw.RunQuality
9091
switch runResult {
9192
case string(sw.GOOD_RunQuality):
@@ -96,20 +97,44 @@ func (bk *BookkeepingWrapper) UpdateRun(runNumber int32, runResult string, timeO
9697
runquality = sw.TEST_RunQuality
9798
}
9899

99-
timeO2S := timeO2Start.UnixMilli()
100-
if (timeO2Start == time.Time{} || timeO2S < 0) {
100+
timeO2S, ok := strconv.ParseInt(timeO2Start, 10, 64)
101+
if ok != nil {
102+
log.WithField("runNumber", runNumber).
103+
WithField("time", timeO2Start).
104+
Warning("cannot parse O2 start time")
101105
timeO2S = -1
102106
}
103-
timeO2E := timeO2End.UnixMilli()
104-
if (timeO2End == time.Time{} || timeO2E < 0) {
107+
if timeO2Start == "" || timeO2S <= 0 {
108+
timeO2S = -1
109+
}
110+
timeO2E, ok := strconv.ParseInt(timeO2End, 10, 64)
111+
if ok != nil {
112+
log.WithField("runNumber", runNumber).
113+
WithField("time", timeO2End).
114+
Warning("cannot parse O2 end time")
115+
timeO2E = -1
116+
}
117+
if timeO2End == "" || timeO2E <= 0 {
105118
timeO2E = -1
106119
}
107-
timeTrgS := timeTrgStart.UnixMilli()
108-
if (timeTrgStart == time.Time{} || timeTrgS < 0) {
120+
timeTrgS, ok := strconv.ParseInt(timeTrgStart, 10, 64)
121+
if ok != nil {
122+
log.WithField("runNumber", runNumber).
123+
WithField("time", timeTrgStart).
124+
Warning("cannot parse Trg start time")
109125
timeTrgS = -1
110126
}
111-
timeTrgE := timeTrgEnd.UnixMilli()
112-
if (timeTrgEnd == time.Time{} || timeTrgE < 0) {
127+
if timeTrgStart == "" || timeTrgS <= 0 {
128+
timeTrgS = -1
129+
}
130+
timeTrgE, ok := strconv.ParseInt(timeTrgEnd, 10, 64)
131+
if ok != nil {
132+
log.WithField("runNumber", runNumber).
133+
WithField("time", timeTrgEnd).
134+
Warning("cannot parse Trg end time")
135+
timeTrgE = -1
136+
}
137+
if timeTrgEnd == "" || timeTrgE <= 0 {
113138
timeTrgE = -1
114139
}
115140

core/integration/bookkeeping/plugin.go

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,7 @@ func (p *Plugin) CallStack(data interface{}) (stack map[string]interface{}) {
296296
}
297297
return
298298
}
299-
updateRunFunc := func(runNumber64 int64, state string, timeO2Start time.Time, timeO2End time.Time, timeTrgStart time.Time, timeTrgEnd time.Time) (out string) {
299+
updateRunFunc := func(runNumber64 int64, state string, timeO2Start string, timeO2End string, timeTrgStart string, timeTrgEnd string) (out string) {
300300
callFailedStr := "Bookkeeping UpdateRun call failed"
301301
trgGlobalRunEnabled, err := strconv.ParseBool(env.GetKV("", "trg_global_run_enabled"))
302302
if err != nil {
@@ -344,8 +344,7 @@ func (p *Plugin) CallStack(data interface{}) (stack map[string]interface{}) {
344344
return
345345
} else {
346346
var updatedRun string
347-
emptyTime := time.Time{}
348-
if timeO2Start == emptyTime {
347+
if function, ok := varStack["__call_func"]; ok && function == "UpdateRunStop" {
349348
updatedRun = "STOPPED"
350349
delete(p.pendingRunStops, envId)
351350
} else {
@@ -390,7 +389,10 @@ func (p *Plugin) CallStack(data interface{}) (stack map[string]interface{}) {
390389
return
391390
}
392391

393-
return updateRunFunc(runNumber64, "test", time.Now(), time.Time{}, time.Now(), time.Time{})
392+
O2StartTime := varStack["run_start_time_ms"]
393+
TrgStartTime := varStack["trg_start_time_ms"]
394+
395+
return updateRunFunc(runNumber64, "test", O2StartTime, "", TrgStartTime, "")
394396
}
395397
stack["UpdateRunStop"] = func() (out string) {
396398
callFailedStr := "Bookkeeping UpdateRunStop call failed"
@@ -429,8 +431,14 @@ func (p *Plugin) CallStack(data interface{}) (stack map[string]interface{}) {
429431
return
430432
}
431433

434+
O2StartTime := varStack["run_start_time_ms"]
435+
O2EndTime := varStack["run_end_time_ms"]
436+
437+
TrgStartTime := varStack["trg_start_time_ms"]
438+
TrgEndTime := varStack["trg_end_time_ms"]
439+
432440
if _, ok := p.pendingRunStops[envId]; ok {
433-
return updateRunFunc(runNumber64, "test", time.Time{}, time.Now(), time.Time{}, time.Now())
441+
return updateRunFunc(runNumber64, "test", O2StartTime, O2EndTime, TrgStartTime, TrgEndTime)
434442
} else {
435443
log.WithField("partition", envId).
436444
Warning("skipping UpdateRun call, no pending run number found")

core/integration/trg/plugin.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -598,6 +598,9 @@ func (p *Plugin) CallStack(data interface{}) (stack map[string]interface{}) {
598598
WithField("runNumber", runNumber64).
599599
Debug("TRG RunStart success")
600600

601+
trgStartTime := strconv.FormatInt(time.Now().UnixMilli(), 10)
602+
call.GetParentRole().(callable.ParentRole).SetRuntimeVar("trg_start_time_ms", trgStartTime)
603+
601604
return
602605
}
603606
runStopFunc := func(runNumber64 int64) (out string) {
@@ -702,6 +705,9 @@ func (p *Plugin) CallStack(data interface{}) (stack map[string]interface{}) {
702705
WithField("runNumber", runNumber64).
703706
Debug("TRG RunStop success")
704707

708+
trgEndTime := strconv.FormatInt(time.Now().UnixMilli(), 10)
709+
call.GetParentRole().(callable.ParentRole).SetRuntimeVar("trg_end_time_ms", trgEndTime)
710+
705711
return
706712
}
707713
runUnloadFunc := func(runNumber64 int64) (out string) {

0 commit comments

Comments
 (0)