metropolis/proto: move log-related types to common
Having them in API is kinda weird, especially as we're
generating/parsing them from a few libraries already.
Change-Id: I87b4b51f151443c60b87e3e50753c395fcf6e845
Reviewed-on: https://review.monogon.dev/c/monogon/+/1437
Tested-by: Jenkins CI
Reviewed-by: Lorenz Brun <lorenz@monogon.tech>
diff --git a/metropolis/pkg/logbuffer/BUILD.bazel b/metropolis/pkg/logbuffer/BUILD.bazel
index cd0e3af..e890df8 100644
--- a/metropolis/pkg/logbuffer/BUILD.bazel
+++ b/metropolis/pkg/logbuffer/BUILD.bazel
@@ -8,7 +8,7 @@
],
importpath = "source.monogon.dev/metropolis/pkg/logbuffer",
visibility = ["//metropolis:__subpackages__"],
- deps = ["//metropolis/proto/api"],
+ deps = ["//metropolis/proto/common"],
)
go_test(
diff --git a/metropolis/pkg/logbuffer/linebuffer.go b/metropolis/pkg/logbuffer/linebuffer.go
index 6fd9a62..16f7b1a 100644
--- a/metropolis/pkg/logbuffer/linebuffer.go
+++ b/metropolis/pkg/logbuffer/linebuffer.go
@@ -22,7 +22,7 @@
"strings"
"sync"
- apb "source.monogon.dev/metropolis/proto/api"
+ cpb "source.monogon.dev/metropolis/proto/common"
)
// Line is a line stored in the log buffer - a string, that has been perhaps
@@ -47,15 +47,15 @@
}
// ProtoLog returns a Logging-specific protobuf structure.
-func (l *Line) ProtoLog() *apb.LogEntry_Raw {
- return &apb.LogEntry_Raw{
+func (l *Line) ProtoLog() *cpb.LogEntry_Raw {
+ return &cpb.LogEntry_Raw{
Data: l.Data,
OriginalLength: int64(l.OriginalLength),
}
}
// LineFromLogProto converts a Logging-specific protobuf message back into a Line.
-func LineFromLogProto(raw *apb.LogEntry_Raw) (*Line, error) {
+func LineFromLogProto(raw *cpb.LogEntry_Raw) (*Line, error) {
if raw.OriginalLength < int64(len(raw.Data)) {
return nil, fmt.Errorf("original_length smaller than length of data")
}
diff --git a/metropolis/pkg/logtree/BUILD.bazel b/metropolis/pkg/logtree/BUILD.bazel
index 5c4237c..2e2f07e 100644
--- a/metropolis/pkg/logtree/BUILD.bazel
+++ b/metropolis/pkg/logtree/BUILD.bazel
@@ -20,7 +20,7 @@
visibility = ["//metropolis:__subpackages__"],
deps = [
"//metropolis/pkg/logbuffer",
- "//metropolis/proto/api",
+ "//metropolis/proto/common",
"@com_github_mitchellh_go_wordwrap//:go-wordwrap",
"@org_golang_google_protobuf//types/known/timestamppb",
],
diff --git a/metropolis/pkg/logtree/leveled.go b/metropolis/pkg/logtree/leveled.go
index 6e44ef4..5c57222 100644
--- a/metropolis/pkg/logtree/leveled.go
+++ b/metropolis/pkg/logtree/leveled.go
@@ -19,7 +19,7 @@
import (
"fmt"
- apb "source.monogon.dev/metropolis/proto/api"
+ cpb "source.monogon.dev/metropolis/proto/common"
)
// LeveledLogger is a generic interface for glog-style logging. There are four
@@ -144,32 +144,32 @@
}
}
-func SeverityFromProto(s apb.LeveledLogSeverity) (Severity, error) {
+func SeverityFromProto(s cpb.LeveledLogSeverity) (Severity, error) {
switch s {
- case apb.LeveledLogSeverity_INFO:
+ case cpb.LeveledLogSeverity_INFO:
return INFO, nil
- case apb.LeveledLogSeverity_WARNING:
+ case cpb.LeveledLogSeverity_WARNING:
return WARNING, nil
- case apb.LeveledLogSeverity_ERROR:
+ case cpb.LeveledLogSeverity_ERROR:
return ERROR, nil
- case apb.LeveledLogSeverity_FATAL:
+ case cpb.LeveledLogSeverity_FATAL:
return FATAL, nil
default:
return "", fmt.Errorf("unknown severity value %d", s)
}
}
-func (s Severity) ToProto() apb.LeveledLogSeverity {
+func (s Severity) ToProto() cpb.LeveledLogSeverity {
switch s {
case INFO:
- return apb.LeveledLogSeverity_INFO
+ return cpb.LeveledLogSeverity_INFO
case WARNING:
- return apb.LeveledLogSeverity_WARNING
+ return cpb.LeveledLogSeverity_WARNING
case ERROR:
- return apb.LeveledLogSeverity_ERROR
+ return cpb.LeveledLogSeverity_ERROR
case FATAL:
- return apb.LeveledLogSeverity_FATAL
+ return cpb.LeveledLogSeverity_FATAL
default:
- return apb.LeveledLogSeverity_INVALID
+ return cpb.LeveledLogSeverity_INVALID
}
}
diff --git a/metropolis/pkg/logtree/leveled_payload.go b/metropolis/pkg/logtree/leveled_payload.go
index 909d88a..c0852ae 100644
--- a/metropolis/pkg/logtree/leveled_payload.go
+++ b/metropolis/pkg/logtree/leveled_payload.go
@@ -24,7 +24,7 @@
tpb "google.golang.org/protobuf/types/known/timestamppb"
- apb "source.monogon.dev/metropolis/proto/api"
+ cpb "source.monogon.dev/metropolis/proto/common"
)
// LeveledPayload is a log entry for leveled logs (as per leveled.go). It contains
@@ -66,8 +66,9 @@
// unified with a rowspan- like mechanism.
//
// For example, this function can return:
-// prefix = "I1102 17:20:06.921395 foo.go:42] "
-// lines = []string{"current tags:", " - one", " - two"}
+//
+// prefix = "I1102 17:20:06.921395 foo.go:42] "
+// lines = []string{"current tags:", " - one", " - two"}
//
// With this data, the result should be presented to users this way in text form:
// I1102 17:20:06.921395 foo.go:42] current tags:
@@ -113,8 +114,8 @@
func (p *LeveledPayload) Severity() Severity { return p.severity }
// Proto converts a LeveledPayload to protobuf format.
-func (p *LeveledPayload) Proto() *apb.LogEntry_Leveled {
- return &apb.LogEntry_Leveled{
+func (p *LeveledPayload) Proto() *cpb.LogEntry_Leveled {
+ return &cpb.LogEntry_Leveled{
Lines: p.Messages(),
Timestamp: tpb.New(p.Timestamp()),
Severity: p.Severity().ToProto(),
@@ -123,7 +124,7 @@
}
// LeveledPayloadFromProto parses a protobuf message into the internal format.
-func LeveledPayloadFromProto(p *apb.LogEntry_Leveled) (*LeveledPayload, error) {
+func LeveledPayloadFromProto(p *cpb.LogEntry_Leveled) (*LeveledPayload, error) {
severity, err := SeverityFromProto(p.Severity)
if err != nil {
return nil, fmt.Errorf("could not convert severity: %w", err)
diff --git a/metropolis/pkg/logtree/logtree_entry.go b/metropolis/pkg/logtree/logtree_entry.go
index a020910..72cc409 100644
--- a/metropolis/pkg/logtree/logtree_entry.go
+++ b/metropolis/pkg/logtree/logtree_entry.go
@@ -23,7 +23,7 @@
"github.com/mitchellh/go-wordwrap"
"source.monogon.dev/metropolis/pkg/logbuffer"
- apb "source.monogon.dev/metropolis/proto/api"
+ cpb "source.monogon.dev/metropolis/proto/common"
)
// LogEntry contains a log entry, combining both leveled and raw logging into a
@@ -207,19 +207,19 @@
// Convert this LogEntry to proto. Returned value may be nil if given LogEntry is
// invalid, eg. contains neither a Raw nor Leveled entry.
-func (l *LogEntry) Proto() *apb.LogEntry {
- p := &apb.LogEntry{
+func (l *LogEntry) Proto() *cpb.LogEntry {
+ p := &cpb.LogEntry{
Dn: string(l.DN),
}
switch {
case l.Leveled != nil:
leveled := l.Leveled
- p.Kind = &apb.LogEntry_Leveled_{
+ p.Kind = &cpb.LogEntry_Leveled_{
Leveled: leveled.Proto(),
}
case l.Raw != nil:
raw := l.Raw
- p.Kind = &apb.LogEntry_Raw_{
+ p.Kind = &cpb.LogEntry_Raw_{
Raw: raw.ProtoLog(),
}
default:
@@ -230,7 +230,7 @@
// Parse a proto LogEntry back into internal structure. This can be used in log
// proto API consumers to easily print received log entries.
-func LogEntryFromProto(l *apb.LogEntry) (*LogEntry, error) {
+func LogEntryFromProto(l *cpb.LogEntry) (*LogEntry, error) {
dn := DN(l.Dn)
if _, err := dn.Path(); err != nil {
return nil, fmt.Errorf("could not convert DN: %w", err)
@@ -239,13 +239,13 @@
DN: dn,
}
switch inner := l.Kind.(type) {
- case *apb.LogEntry_Leveled_:
+ case *cpb.LogEntry_Leveled_:
leveled, err := LeveledPayloadFromProto(inner.Leveled)
if err != nil {
return nil, fmt.Errorf("could not convert leveled entry: %w", err)
}
res.Leveled = leveled
- case *apb.LogEntry_Raw_:
+ case *cpb.LogEntry_Raw_:
line, err := logbuffer.LineFromLogProto(inner.Raw)
if err != nil {
return nil, fmt.Errorf("could not convert raw entry: %w", err)