mirror of
https://github.com/grafana/grafana.git
synced 2025-02-14 01:23:32 -06:00
remove eventID
This commit is contained in:
parent
abacd9aef2
commit
8c1f60aa8b
@ -54,7 +54,7 @@ func (a *dashboardSqlAccess) WriteEvent(ctx context.Context, event resource.Writ
|
|||||||
case resource.WatchEvent_DELETED:
|
case resource.WatchEvent_DELETED:
|
||||||
{
|
{
|
||||||
_, _, err = a.DeleteDashboard(ctx, info.OrgID, event.Key.Name)
|
_, _, err = a.DeleteDashboard(ctx, info.OrgID, event.Key.Name)
|
||||||
rv = event.EventID
|
//rv = ???
|
||||||
}
|
}
|
||||||
// The difference depends on embedded internal ID
|
// The difference depends on embedded internal ID
|
||||||
case resource.WatchEvent_ADDED, resource.WatchEvent_MODIFIED:
|
case resource.WatchEvent_ADDED, resource.WatchEvent_MODIFIED:
|
||||||
|
@ -5,14 +5,12 @@ import (
|
|||||||
context "context"
|
context "context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"math/rand"
|
|
||||||
"sort"
|
"sort"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/bwmarrin/snowflake"
|
|
||||||
"go.opentelemetry.io/otel/trace"
|
"go.opentelemetry.io/otel/trace"
|
||||||
"go.opentelemetry.io/otel/trace/noop"
|
"go.opentelemetry.io/otel/trace/noop"
|
||||||
"gocloud.dev/blob"
|
"gocloud.dev/blob"
|
||||||
@ -28,12 +26,7 @@ type CDKAppenderOptions struct {
|
|||||||
Bucket *blob.Bucket
|
Bucket *blob.Bucket
|
||||||
RootFolder string
|
RootFolder string
|
||||||
|
|
||||||
// When running in a cluster, each node should have a different ID
|
NextResourceVersion NextResourceVersion
|
||||||
// This is used for snowflake generation and log identification
|
|
||||||
NodeID int64
|
|
||||||
|
|
||||||
// Get the next ResourceVersion. When not set, this will default to snowflake IDs
|
|
||||||
NextResourceVersion func() int64
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewCDKAppendingStore(ctx context.Context, opts CDKAppenderOptions) (AppendingStore, error) {
|
func NewCDKAppendingStore(ctx context.Context, opts CDKAppenderOptions) (AppendingStore, error) {
|
||||||
@ -56,19 +49,9 @@ func NewCDKAppendingStore(ctx context.Context, opts CDKAppenderOptions) (Appendi
|
|||||||
return nil, fmt.Errorf("the root folder does not exist")
|
return nil, fmt.Errorf("the root folder does not exist")
|
||||||
}
|
}
|
||||||
|
|
||||||
// This is not totally safe when running in HA
|
// This is not safe when running in HA!
|
||||||
if opts.NextResourceVersion == nil {
|
if opts.NextResourceVersion == nil {
|
||||||
if opts.NodeID == 0 {
|
opts.NextResourceVersion = newResourceVersionCounter(time.Now().UnixMilli())
|
||||||
opts.NodeID = rand.Int63n(1024)
|
|
||||||
}
|
|
||||||
eventNode, err := snowflake.NewNode(opts.NodeID)
|
|
||||||
if err != nil {
|
|
||||||
return nil, apierrors.NewInternalError(
|
|
||||||
fmt.Errorf("error initializing snowflake id generator :: %w", err))
|
|
||||||
}
|
|
||||||
opts.NextResourceVersion = func() int64 {
|
|
||||||
return eventNode.Generate().Int64()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return &cdkAppender{
|
return &cdkAppender{
|
||||||
@ -83,7 +66,7 @@ type cdkAppender struct {
|
|||||||
tracer trace.Tracer
|
tracer trace.Tracer
|
||||||
bucket *blob.Bucket
|
bucket *blob.Bucket
|
||||||
root string
|
root string
|
||||||
nextRV func() int64
|
nextRV NextResourceVersion
|
||||||
mutex sync.Mutex
|
mutex sync.Mutex
|
||||||
|
|
||||||
// Typically one... the server wrapper
|
// Typically one... the server wrapper
|
||||||
|
@ -10,7 +10,6 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type WriteEvent struct {
|
type WriteEvent struct {
|
||||||
EventID int64
|
|
||||||
Type WatchEvent_Type // ADDED, MODIFIED, DELETED
|
Type WatchEvent_Type // ADDED, MODIFIED, DELETED
|
||||||
Key *ResourceKey // the request key
|
Key *ResourceKey // the request key
|
||||||
PreviousRV int64 // only for Update+Delete
|
PreviousRV int64 // only for Update+Delete
|
||||||
@ -84,7 +83,6 @@ func newEventFromBytes(value, oldValue []byte) (*writeEventBuilder, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (b *writeEventBuilder) toEvent() (event WriteEvent, err error) {
|
func (b *writeEventBuilder) toEvent() (event WriteEvent, err error) {
|
||||||
event.EventID = b.EventID
|
|
||||||
event.Key = b.Key
|
event.Key = b.Key
|
||||||
event.Type = b.Type
|
event.Type = b.Type
|
||||||
event.ObjectOld = b.OldMeta
|
event.ObjectOld = b.OldMeta
|
||||||
|
@ -6,11 +6,9 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"log/slog"
|
"log/slog"
|
||||||
"math/rand"
|
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/bwmarrin/snowflake"
|
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
"go.opentelemetry.io/otel/trace"
|
"go.opentelemetry.io/otel/trace"
|
||||||
"go.opentelemetry.io/otel/trace/noop"
|
"go.opentelemetry.io/otel/trace/noop"
|
||||||
@ -82,13 +80,6 @@ type ResourceServerOptions struct {
|
|||||||
// OTel tracer
|
// OTel tracer
|
||||||
Tracer trace.Tracer
|
Tracer trace.Tracer
|
||||||
|
|
||||||
// When running in a cluster, each node should have a different ID
|
|
||||||
// This is used for snowflake generation and log identification
|
|
||||||
NodeID int64
|
|
||||||
|
|
||||||
// Get the next EventID. When not set, this will default to snowflake IDs
|
|
||||||
NextEventID func() int64
|
|
||||||
|
|
||||||
// Real storage backend
|
// Real storage backend
|
||||||
Store AppendingStore
|
Store AppendingStore
|
||||||
|
|
||||||
@ -117,20 +108,6 @@ func NewResourceServer(opts ResourceServerOptions) (ResourceServer, error) {
|
|||||||
opts.Tracer = noop.NewTracerProvider().Tracer("resource-server")
|
opts.Tracer = noop.NewTracerProvider().Tracer("resource-server")
|
||||||
}
|
}
|
||||||
|
|
||||||
if opts.NextEventID == nil {
|
|
||||||
if opts.NodeID == 0 {
|
|
||||||
opts.NodeID = rand.Int63n(1024)
|
|
||||||
}
|
|
||||||
eventNode, err := snowflake.NewNode(opts.NodeID)
|
|
||||||
if err != nil {
|
|
||||||
return nil, apierrors.NewInternalError(
|
|
||||||
fmt.Errorf("error initializing snowflake id generator :: %w", err))
|
|
||||||
}
|
|
||||||
opts.NextEventID = func() int64 {
|
|
||||||
return eventNode.Generate().Int64()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if opts.Store == nil {
|
if opts.Store == nil {
|
||||||
return nil, fmt.Errorf("missing AppendingStore implementation")
|
return nil, fmt.Errorf("missing AppendingStore implementation")
|
||||||
}
|
}
|
||||||
@ -160,7 +137,6 @@ func NewResourceServer(opts ResourceServerOptions) (ResourceServer, error) {
|
|||||||
return &server{
|
return &server{
|
||||||
tracer: opts.Tracer,
|
tracer: opts.Tracer,
|
||||||
log: slog.Default().With("logger", "resource-server"),
|
log: slog.Default().With("logger", "resource-server"),
|
||||||
nextEventID: opts.NextEventID,
|
|
||||||
store: opts.Store,
|
store: opts.Store,
|
||||||
search: opts.Search,
|
search: opts.Search,
|
||||||
diagnostics: opts.Diagnostics,
|
diagnostics: opts.Diagnostics,
|
||||||
@ -177,7 +153,6 @@ var _ ResourceServer = &server{}
|
|||||||
type server struct {
|
type server struct {
|
||||||
tracer trace.Tracer
|
tracer trace.Tracer
|
||||||
log *slog.Logger
|
log *slog.Logger
|
||||||
nextEventID func() int64
|
|
||||||
store AppendingStore
|
store AppendingStore
|
||||||
search ResourceIndexServer
|
search ResourceIndexServer
|
||||||
blob BlobStore
|
blob BlobStore
|
||||||
@ -239,7 +214,6 @@ func (s *server) newEventBuilder(ctx context.Context, key *ResourceKey, value, o
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
event.EventID = s.nextEventID()
|
|
||||||
event.Key = key
|
event.Key = key
|
||||||
event.Requester, err = identity.GetRequester(ctx)
|
event.Requester, err = identity.GetRequester(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -460,7 +434,6 @@ func (s *server) Delete(ctx context.Context, req *DeleteRequest) (*DeleteRespons
|
|||||||
|
|
||||||
now := metav1.NewTime(time.UnixMilli(s.now()))
|
now := metav1.NewTime(time.UnixMilli(s.now()))
|
||||||
event := WriteEvent{
|
event := WriteEvent{
|
||||||
EventID: s.nextEventID(),
|
|
||||||
Key: req.Key,
|
Key: req.Key,
|
||||||
Type: WatchEvent_DELETED,
|
Type: WatchEvent_DELETED,
|
||||||
PreviousRV: latest.ResourceVersion,
|
PreviousRV: latest.ResourceVersion,
|
||||||
|
@ -44,7 +44,6 @@ func ProvideSQLResourceServer(db db.EntityDBInterface, tracer tracing.Tracer) (r
|
|||||||
return resource.NewResourceServer(resource.ResourceServerOptions{
|
return resource.NewResourceServer(resource.ResourceServerOptions{
|
||||||
Tracer: tracer,
|
Tracer: tracer,
|
||||||
Store: store,
|
Store: store,
|
||||||
NodeID: 234, // from config? used for snowflake ID
|
|
||||||
Diagnostics: store,
|
Diagnostics: store,
|
||||||
Lifecycle: store,
|
Lifecycle: store,
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user