Merge branch '21535-multi-wf-delete'
[arvados.git] / services / ws / event.go
index fa2a5df1b064c2d1b1bfc59a4cea63d54b471150..8b6a2e81bbccafb75f0b7c3f70e362dc027a2b5d 100644 (file)
@@ -1,12 +1,17 @@
-package main
+// Copyright (C) The Arvados Authors. All rights reserved.
+//
+// SPDX-License-Identifier: AGPL-3.0
+
+package ws
 
 import (
        "database/sql"
        "sync"
        "time"
 
-       "git.curoverse.com/arvados.git/sdk/go/arvados"
+       "git.arvados.org/arvados.git/sdk/go/arvados"
        "github.com/ghodss/yaml"
+       "github.com/sirupsen/logrus"
 )
 
 type eventSink interface {
@@ -17,15 +22,17 @@ type eventSink interface {
 type eventSource interface {
        NewSink() eventSink
        DB() *sql.DB
+       DBHealth() error
 }
 
 type event struct {
-       LogID    uint64
+       LogID    int64
        Received time.Time
        Ready    time.Time
        Serial   uint64
 
        db     *sql.DB
+       logger logrus.FieldLogger
        logRow *arvados.Log
        err    error
        mtx    sync.Mutex
@@ -42,21 +49,22 @@ func (e *event) Detail() *arvados.Log {
        }
        var logRow arvados.Log
        var propYAML []byte
-       e.err = e.db.QueryRow(`SELECT id, uuid, object_uuid, COALESCE(object_owner_uuid,''), COALESCE(event_type,''), created_at, properties FROM logs WHERE id = $1`, e.LogID).Scan(
+       e.err = e.db.QueryRow(`SELECT id, uuid, object_uuid, COALESCE(object_owner_uuid,''), COALESCE(event_type,''), event_at, created_at, properties FROM logs WHERE id = $1`, e.LogID).Scan(
                &logRow.ID,
                &logRow.UUID,
                &logRow.ObjectUUID,
                &logRow.ObjectOwnerUUID,
                &logRow.EventType,
+               &logRow.EventAt,
                &logRow.CreatedAt,
                &propYAML)
        if e.err != nil {
-               logger(nil).WithField("LogID", e.LogID).WithError(e.err).Error("QueryRow failed")
+               e.logger.WithField("LogID", e.LogID).WithError(e.err).Error("QueryRow failed")
                return nil
        }
        e.err = yaml.Unmarshal(propYAML, &logRow.Properties)
        if e.err != nil {
-               logger(nil).WithField("LogID", e.LogID).WithError(e.err).Error("yaml decode failed")
+               e.logger.WithField("LogID", e.LogID).WithError(e.err).Error("yaml decode failed")
                return nil
        }
        e.logRow = &logRow