Skip to content

Commit 670965e

Browse files
claireguyotteo
authored andcommitted
[core] O2 End and TRG End timestamps can be set as late as DESTROY if the info was not available before.
1 parent 2512df4 commit 670965e

File tree

1 file changed

+19
-11
lines changed

1 file changed

+19
-11
lines changed

core/integration/bookkeeping/plugin.go

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ type Plugin struct {
4848
bookkeepingClient *BookkeepingWrapper
4949

5050
pendingRunStops map[string] /*envId*/ int64
51+
pendingO2Stops map[string] /*envId*/ string
52+
pendingTrgStops map[string] /*envId*/ string
5153
}
5254

5355
func NewPlugin(endpoint string) integration.Plugin {
@@ -66,6 +68,8 @@ func NewPlugin(endpoint string) integration.Plugin {
6668
bookkeepingPort: portNumber,
6769
bookkeepingClient: nil,
6870
pendingRunStops: make(map[string]int64),
71+
pendingO2Stops: make(map[string]string),
72+
pendingTrgStops: make(map[string]string),
6973
}
7074
}
7175

@@ -260,6 +264,8 @@ func (p *Plugin) CallStack(data interface{}) (stack map[string]interface{}) {
260264
return
261265
} else {
262266
p.pendingRunStops[envId] = runNumber64
267+
p.pendingO2Stops[envId] = ""
268+
p.pendingTrgStops[envId] = ""
263269
log.WithField("runNumber", runNumber).
264270
WithField("partition", envId).
265271
Debug("CreateRun call successful")
@@ -345,15 +351,6 @@ func (p *Plugin) CallStack(data interface{}) (stack map[string]interface{}) {
345351
Warning("cannot acquire PDP topology description library file")
346352
}
347353
tfbMode := env.GetKV("", "tfb_dd_mode")
348-
/*
349-
odcTopologyFull, ok := env.Workflow().GetVars().Get("odc_topology_fullname")
350-
if !ok {
351-
log.WithField("runNumber", runNumber64).
352-
WithField("partition", envId).
353-
WithField("call", "UpdateRun").
354-
Warning("cannot acquire ODC topology fullname")
355-
}
356-
*/
357354
lhcPeriod := env.GetKV("", "lhc_period")
358355
err = p.bookkeepingClient.UpdateRun(int32(runNumber64), state, timeO2Start, timeO2End, timeTrgStart, timeTrgEnd, trg, pdpConfig, pdpTopology, tfbMode, lhcPeriod)
359356
if err != nil {
@@ -369,8 +366,17 @@ func (p *Plugin) CallStack(data interface{}) (stack map[string]interface{}) {
369366
} else {
370367
var updatedRun string
371368
if function, ok := varStack["__call_func"]; ok && strings.Contains(function, "UpdateRunStop") {
372-
updatedRun = "STOPPED"
373-
delete(p.pendingRunStops, envId)
369+
if p.pendingO2Stops[envId] == "" || (trgEnabled && p.pendingTrgStops[envId] == "") {
370+
updatedRun = "INCOMPLETE"
371+
log.WithField("runNumber", runNumber64).
372+
WithField("partition", envId).
373+
Debug("UpdateRun call: run information incomplete")
374+
} else {
375+
updatedRun = "STOPPED"
376+
delete(p.pendingRunStops, envId)
377+
delete(p.pendingO2Stops, envId)
378+
delete(p.pendingTrgStops, envId)
379+
}
374380
} else {
375381
updatedRun = "STARTED"
376382
}
@@ -457,9 +463,11 @@ func (p *Plugin) CallStack(data interface{}) (stack map[string]interface{}) {
457463

458464
O2StartTime := varStack["run_start_time_ms"]
459465
O2EndTime := varStack["run_end_time_ms"]
466+
p.pendingO2Stops[envId] = O2EndTime
460467

461468
TrgStartTime := varStack["trg_start_time_ms"]
462469
TrgEndTime := varStack["trg_end_time_ms"]
470+
p.pendingTrgStops[envId] = TrgEndTime
463471

464472
if _, ok := p.pendingRunStops[envId]; ok {
465473
return updateRunFunc(runNumber64, "test", O2StartTime, O2EndTime, TrgStartTime, TrgEndTime)

0 commit comments

Comments
 (0)