diff --git a/pkg/registry/apis/dashboard/legacy/sql_dashboards.go b/pkg/registry/apis/dashboard/legacy/sql_dashboards.go index a6183c096f1..80adcf19d82 100644 --- a/pkg/registry/apis/dashboard/legacy/sql_dashboards.go +++ b/pkg/registry/apis/dashboard/legacy/sql_dashboards.go @@ -196,10 +196,6 @@ func (r *rowsWrapper) ResourceVersion() int64 { return r.row.RV } -func (r *rowsWrapper) Folder() string { - return r.row.FolderUID -} - // Value implements resource.ListIterator. func (r *rowsWrapper) Value() []byte { b, err := json.Marshal(r.row.Dash) diff --git a/pkg/registry/apis/dashboard/legacy/storage.go b/pkg/registry/apis/dashboard/legacy/storage.go index 4a830dd2719..2f96178ca7f 100644 --- a/pkg/registry/apis/dashboard/legacy/storage.go +++ b/pkg/registry/apis/dashboard/legacy/storage.go @@ -128,8 +128,8 @@ func (a *dashboardSqlAccess) GetDashboard(ctx context.Context, orgId int64, uid } // Read implements ResourceStoreServer. -func (a *dashboardSqlAccess) ReadResource(ctx context.Context, req *resource.ReadRequest) *resource.BackendReadResponse { - rsp := &resource.BackendReadResponse{} +func (a *dashboardSqlAccess) ReadResource(ctx context.Context, req *resource.ReadRequest) *resource.ReadResponse { + rsp := &resource.ReadResponse{} info, err := claims.ParseNamespace(req.Key.Namespace) if err == nil { err = isDashboardKey(req.Key, true) @@ -242,7 +242,7 @@ func (a *dashboardSqlAccess) WatchWriteEvents(ctx context.Context) (<-chan *reso } // Simple wrapper for index implementation -func (a *dashboardSqlAccess) Read(ctx context.Context, req *resource.ReadRequest) (*resource.BackendReadResponse, error) { +func (a *dashboardSqlAccess) Read(ctx context.Context, req *resource.ReadRequest) (*resource.ReadResponse, error) { return a.ReadResource(ctx, req), nil } diff --git a/pkg/storage/unified/resource/cdk_backend.go b/pkg/storage/unified/resource/cdk_backend.go index baa882c081b..910a36c7096 100644 --- a/pkg/storage/unified/resource/cdk_backend.go +++ b/pkg/storage/unified/resource/cdk_backend.go @@ -134,7 +134,7 @@ func (s *cdkBackend) WriteEvent(ctx context.Context, event WriteEvent) (rv int64 return rv, err } -func (s *cdkBackend) ReadResource(ctx context.Context, req *ReadRequest) *BackendReadResponse { +func (s *cdkBackend) ReadResource(ctx context.Context, req *ReadRequest) *ReadResponse { rv := req.ResourceVersion path := s.getPath(req.Key, rv) @@ -162,7 +162,7 @@ func (s *cdkBackend) ReadResource(ctx context.Context, req *ReadRequest) *Backen raw, err := s.bucket.ReadAll(ctx, path) if raw == nil && req.ResourceVersion > 0 { if req.ResourceVersion > s.rv.Load() { - return &BackendReadResponse{ + return &ReadResponse{ Error: &ErrorResult{ Code: http.StatusGatewayTimeout, Reason: string(metav1.StatusReasonTimeout), // match etcd behavior @@ -191,11 +191,9 @@ func (s *cdkBackend) ReadResource(ctx context.Context, req *ReadRequest) *Backen raw = nil } if raw == nil { - return &BackendReadResponse{Error: NewNotFoundError(req.Key)} + return &ReadResponse{Error: NewNotFoundError(req.Key)} } - return &BackendReadResponse{ - Key: req.Key, - Folder: "", // TODO: implement this + return &ReadResponse{ ResourceVersion: rv, Value: raw, } @@ -320,10 +318,6 @@ func (c *cdkListIterator) Namespace() string { return c.currentKey // TODO (parse namespace from key) } -func (c *cdkListIterator) Folder() string { - return "" // TODO: implement this -} - var _ ListIterator = (*cdkListIterator)(nil) func buildTree(ctx context.Context, s *cdkBackend, key *ResourceKey) (*cdkListIterator, error) { diff --git a/pkg/storage/unified/resource/event.go b/pkg/storage/unified/resource/event.go index 91c9225ee0c..53d250d1b72 100644 --- a/pkg/storage/unified/resource/event.go +++ b/pkg/storage/unified/resource/event.go @@ -24,8 +24,6 @@ type WriteEvent struct { // WriteEvents after they include a resource version type WrittenEvent struct { WriteEvent - // Metadata - Folder string // The resource version ResourceVersion int64 diff --git a/pkg/storage/unified/resource/server.go b/pkg/storage/unified/resource/server.go index 0f374f788b8..f32b5a32c8d 100644 --- a/pkg/storage/unified/resource/server.go +++ b/pkg/storage/unified/resource/server.go @@ -49,27 +49,10 @@ type ListIterator interface { // Used for fast(er) authz filtering Name() string - // Folder of the current item - // Used for fast(er) authz filtering - Folder() string - // Value for the current item Value() []byte } -type BackendReadResponse struct { - // Metadata - Key *ResourceKey - Folder string - - // The new resource version - ResourceVersion int64 - // The properties - Value []byte - // Error details - Error *ErrorResult -} - // The StorageBackend is an internal abstraction that supports interacting with // the underlying raw storage medium. This interface is never exposed directly, // it is provided by concrete instances that actually write values. @@ -80,7 +63,7 @@ type StorageBackend interface { WriteEvent(context.Context, WriteEvent) (int64, error) // Read a resource from storage optionally at an explicit version - ReadResource(context.Context, *ReadRequest) *BackendReadResponse + ReadResource(context.Context, *ReadRequest) *ReadResponse // When the ResourceServer executes a List request, this iterator will // query the backend for potential results. All results will be @@ -555,11 +538,7 @@ func (s *server) Read(ctx context.Context, req *ReadRequest) (*ReadResponse, err rsp := s.backend.ReadResource(ctx, req) // TODO, check folder permissions etc - return &ReadResponse{ - ResourceVersion: rsp.ResourceVersion, - Value: rsp.Value, - Error: rsp.Error, - }, nil + return rsp, nil } func (s *server) List(ctx context.Context, req *ListRequest) (*ListResponse, error) { diff --git a/pkg/storage/unified/sql/backend.go b/pkg/storage/unified/sql/backend.go index 57e2fb30b04..1e9459336d4 100644 --- a/pkg/storage/unified/sql/backend.go +++ b/pkg/storage/unified/sql/backend.go @@ -143,15 +143,12 @@ func (b *backend) create(ctx context.Context, event resource.WriteEvent) (int64, var newVersion int64 guid := uuid.New().String() err := b.db.WithTx(ctx, ReadCommitted, func(ctx context.Context, tx db.Tx) error { - folder := "" - if event.Object != nil { - folder = event.Object.GetFolder() - } + // TODO: Set the Labels + // 1. Insert into resource if _, err := dbutil.Exec(ctx, tx, sqlResourceInsert, sqlResourceRequest{ SQLTemplate: sqltemplate.New(b.dialect), WriteEvent: event, - Folder: folder, GUID: guid, }); err != nil { return fmt.Errorf("insert into resource: %w", err) @@ -161,7 +158,6 @@ func (b *backend) create(ctx context.Context, event resource.WriteEvent) (int64, if _, err := dbutil.Exec(ctx, tx, sqlResourceHistoryInsert, sqlResourceRequest{ SQLTemplate: sqltemplate.New(b.dialect), WriteEvent: event, - Folder: folder, GUID: guid, }); err != nil { return fmt.Errorf("insert into resource history: %w", err) @@ -204,15 +200,12 @@ func (b *backend) update(ctx context.Context, event resource.WriteEvent) (int64, var newVersion int64 guid := uuid.New().String() err := b.db.WithTx(ctx, ReadCommitted, func(ctx context.Context, tx db.Tx) error { - folder := "" - if event.Object != nil { - folder = event.Object.GetFolder() - } + // TODO: Set the Labels + // 1. Update resource _, err := dbutil.Exec(ctx, tx, sqlResourceUpdate, sqlResourceRequest{ SQLTemplate: sqltemplate.New(b.dialect), WriteEvent: event, - Folder: folder, GUID: guid, }) if err != nil { @@ -223,7 +216,6 @@ func (b *backend) update(ctx context.Context, event resource.WriteEvent) (int64, if _, err := dbutil.Exec(ctx, tx, sqlResourceHistoryInsert, sqlResourceRequest{ SQLTemplate: sqltemplate.New(b.dialect), WriteEvent: event, - Folder: folder, GUID: guid, }); err != nil { return fmt.Errorf("insert into resource history: %w", err) @@ -268,10 +260,8 @@ func (b *backend) delete(ctx context.Context, event resource.WriteEvent) (int64, guid := uuid.New().String() err := b.db.WithTx(ctx, ReadCommitted, func(ctx context.Context, tx db.Tx) error { - folder := "" - if event.Object != nil { - folder = event.Object.GetFolder() - } + // TODO: Set the Labels + // 1. delete from resource _, err := dbutil.Exec(ctx, tx, sqlResourceDelete, sqlResourceRequest{ SQLTemplate: sqltemplate.New(b.dialect), @@ -286,7 +276,6 @@ func (b *backend) delete(ctx context.Context, event resource.WriteEvent) (int64, if _, err := dbutil.Exec(ctx, tx, sqlResourceHistoryInsert, sqlResourceRequest{ SQLTemplate: sqltemplate.New(b.dialect), WriteEvent: event, - Folder: folder, GUID: guid, }); err != nil { return fmt.Errorf("insert into resource history: %w", err) @@ -316,16 +305,16 @@ func (b *backend) delete(ctx context.Context, event resource.WriteEvent) (int64, return newVersion, err } -func (b *backend) ReadResource(ctx context.Context, req *resource.ReadRequest) *resource.BackendReadResponse { +func (b *backend) ReadResource(ctx context.Context, req *resource.ReadRequest) *resource.ReadResponse { _, span := b.tracer.Start(ctx, tracePrefix+".Read") defer span.End() // TODO: validate key ? readReq := &sqlResourceReadRequest{ - SQLTemplate: sqltemplate.New(b.dialect), - Request: req, - Response: NewReadResponse(), + SQLTemplate: sqltemplate.New(b.dialect), + Request: req, + readResponse: new(readResponse), } sr := sqlResourceRead @@ -334,21 +323,21 @@ func (b *backend) ReadResource(ctx context.Context, req *resource.ReadRequest) * sr = sqlResourceHistoryRead } - var res *resource.BackendReadResponse + var res *readResponse err := b.db.WithTx(ctx, ReadCommittedRO, func(ctx context.Context, tx db.Tx) error { var err error res, err = dbutil.QueryRow(ctx, tx, sr, readReq) return err }) if errors.Is(err, sql.ErrNoRows) { - return &resource.BackendReadResponse{ + return &resource.ReadResponse{ Error: resource.NewNotFoundError(req.Key), } } else if err != nil { - return &resource.BackendReadResponse{Error: resource.AsErrorResult(err)} + return &resource.ReadResponse{Error: resource.AsErrorResult(err)} } - return res + return &res.ReadResponse } func (b *backend) ListIterator(ctx context.Context, req *resource.ListRequest, cb func(resource.ListIterator) error) (int64, error) { @@ -382,7 +371,6 @@ type listIter struct { value []byte namespace string name string - folder string } // ContinueToken implements resource.ListIterator. @@ -390,22 +378,21 @@ func (l *listIter) ContinueToken() string { return ContinueToken{ResourceVersion: l.listRV, StartOffset: l.offset}.String() } +// Error implements resource.ListIterator. func (l *listIter) Error() error { return l.err } +// Name implements resource.ListIterator. func (l *listIter) Name() string { return l.name } +// Namespace implements resource.ListIterator. func (l *listIter) Namespace() string { return l.namespace } -func (l *listIter) Folder() string { - return l.folder -} - // ResourceVersion implements resource.ListIterator. func (l *listIter) ResourceVersion() int64 { return l.rv @@ -420,7 +407,7 @@ func (l *listIter) Value() []byte { func (l *listIter) Next() bool { if l.rows.Next() { l.offset++ - l.err = l.rows.Scan(&l.rv, &l.namespace, &l.name, &l.folder, &l.value) + l.err = l.rows.Scan(&l.rv, &l.namespace, &l.name, &l.value) return true } return false @@ -668,7 +655,6 @@ func (b *backend) poll(ctx context.Context, grp string, res string, since int64, Type: resource.WatchEvent_Type(rec.Action), PreviousRV: *prevRV, }, - Folder: rec.Folder, ResourceVersion: rec.ResourceVersion, // Timestamp: , // TODO: add timestamp } diff --git a/pkg/storage/unified/sql/backend_test.go b/pkg/storage/unified/sql/backend_test.go index fc25cf6c5e1..367c5b6941a 100644 --- a/pkg/storage/unified/sql/backend_test.go +++ b/pkg/storage/unified/sql/backend_test.go @@ -8,9 +8,7 @@ import ( sqlmock "github.com/DATA-DOG/go-sqlmock" "github.com/stretchr/testify/require" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "github.com/grafana/grafana/pkg/apimachinery/utils" "github.com/grafana/grafana/pkg/storage/unified/resource" "github.com/grafana/grafana/pkg/storage/unified/sql/db/dbimpl" "github.com/grafana/grafana/pkg/storage/unified/sql/test" @@ -283,14 +281,9 @@ func TestResourceVersionAtomicInc(t *testing.T) { func TestBackend_create(t *testing.T) { t.Parallel() - meta, err := utils.MetaAccessor(&unstructured.Unstructured{ - Object: map[string]any{}, - }) - require.NoError(t, err) event := resource.WriteEvent{ - Type: resource.WatchEvent_ADDED, - Key: resKey, - Object: meta, + Type: resource.WatchEvent_ADDED, + Key: resKey, } t.Run("happy path", func(t *testing.T) { @@ -393,15 +386,9 @@ func TestBackend_create(t *testing.T) { func TestBackend_update(t *testing.T) { t.Parallel() - meta, err := utils.MetaAccessor(&unstructured.Unstructured{ - Object: map[string]any{}, - }) - require.NoError(t, err) - meta.SetFolder("folderuid") event := resource.WriteEvent{ - Type: resource.WatchEvent_MODIFIED, - Key: resKey, - Object: meta, + Type: resource.WatchEvent_MODIFIED, + Key: resKey, } t.Run("happy path", func(t *testing.T) { @@ -504,14 +491,9 @@ func TestBackend_update(t *testing.T) { func TestBackend_delete(t *testing.T) { t.Parallel() - meta, err := utils.MetaAccessor(&unstructured.Unstructured{ - Object: map[string]any{}, - }) - require.NoError(t, err) event := resource.WriteEvent{ - Type: resource.WatchEvent_DELETED, - Key: resKey, - Object: meta, + Type: resource.WatchEvent_DELETED, + Key: resKey, } t.Run("happy path", func(t *testing.T) { diff --git a/pkg/storage/unified/sql/data/resource_history_insert.sql b/pkg/storage/unified/sql/data/resource_history_insert.sql index caaaa7a3c61..2669ef82447 100644 --- a/pkg/storage/unified/sql/data/resource_history_insert.sql +++ b/pkg/storage/unified/sql/data/resource_history_insert.sql @@ -5,7 +5,6 @@ INSERT INTO {{ .Ident "resource_history" }} {{ .Ident "resource" }}, {{ .Ident "namespace" }}, {{ .Ident "name" }}, - {{ .Ident "folder" }}, {{ .Ident "previous_resource_version"}}, {{ .Ident "value" }}, @@ -18,7 +17,6 @@ INSERT INTO {{ .Ident "resource_history" }} {{ .Arg .WriteEvent.Key.Resource }}, {{ .Arg .WriteEvent.Key.Namespace }}, {{ .Arg .WriteEvent.Key.Name }}, - {{ .Arg .Folder }}, {{ .Arg .WriteEvent.PreviousRV }}, {{ .Arg .WriteEvent.Value }}, diff --git a/pkg/storage/unified/sql/data/resource_history_list.sql b/pkg/storage/unified/sql/data/resource_history_list.sql index 5d4f91df2ca..5e5e9b507a4 100644 --- a/pkg/storage/unified/sql/data/resource_history_list.sql +++ b/pkg/storage/unified/sql/data/resource_history_list.sql @@ -2,7 +2,6 @@ SELECT kv.{{ .Ident "resource_version" }}, kv.{{ .Ident "namespace" }}, kv.{{ .Ident "name" }}, - kv.{{ .Ident "folder" }}, kv.{{ .Ident "value" }} FROM {{ .Ident "resource_history" }} as kv INNER JOIN ( diff --git a/pkg/storage/unified/sql/data/resource_history_poll.sql b/pkg/storage/unified/sql/data/resource_history_poll.sql index 235690d9975..8e4a7374fdb 100644 --- a/pkg/storage/unified/sql/data/resource_history_poll.sql +++ b/pkg/storage/unified/sql/data/resource_history_poll.sql @@ -4,7 +4,6 @@ SELECT {{ .Ident "group" | .Into .Response.Key.Group }}, {{ .Ident "resource" | .Into .Response.Key.Resource }}, {{ .Ident "name" | .Into .Response.Key.Name }}, - {{ .Ident "folder" | .Into .Response.Folder }}, {{ .Ident "value" | .Into .Response.Value }}, {{ .Ident "action" | .Into .Response.Action }}, {{ .Ident "previous_resource_version" | .Into .Response.PreviousRV }} diff --git a/pkg/storage/unified/sql/data/resource_history_read.sql b/pkg/storage/unified/sql/data/resource_history_read.sql index 3eb350e275d..e7e4e0561a5 100644 --- a/pkg/storage/unified/sql/data/resource_history_read.sql +++ b/pkg/storage/unified/sql/data/resource_history_read.sql @@ -1,11 +1,6 @@ SELECT - {{ .Ident "namespace" | .Into .Response.Key.Namespace }}, - {{ .Ident "group" | .Into .Response.Key.Group }}, - {{ .Ident "resource" | .Into .Response.Key.Resource }}, - {{ .Ident "name" | .Into .Response.Key.Name }}, - {{ .Ident "folder" | .Into .Response.Folder }}, - {{ .Ident "resource_version" | .Into .Response.ResourceVersion }}, - {{ .Ident "value" | .Into .Response.Value }} + {{ .Ident "resource_version" | .Into .ResourceVersion }}, + {{ .Ident "value" | .Into .Value }} FROM {{ .Ident "resource_history" }} diff --git a/pkg/storage/unified/sql/data/resource_insert.sql b/pkg/storage/unified/sql/data/resource_insert.sql index a3478ead4d2..ccaca2f12f7 100644 --- a/pkg/storage/unified/sql/data/resource_insert.sql +++ b/pkg/storage/unified/sql/data/resource_insert.sql @@ -6,7 +6,6 @@ INSERT INTO {{ .Ident "resource" }} {{ .Ident "resource" }}, {{ .Ident "namespace" }}, {{ .Ident "name" }}, - {{ .Ident "folder" }}, {{ .Ident "previous_resource_version" }}, {{ .Ident "value" }}, @@ -18,7 +17,6 @@ INSERT INTO {{ .Ident "resource" }} {{ .Arg .WriteEvent.Key.Resource }}, {{ .Arg .WriteEvent.Key.Namespace }}, {{ .Arg .WriteEvent.Key.Name }}, - {{ .Arg .Folder }}, {{ .Arg .WriteEvent.PreviousRV }}, {{ .Arg .WriteEvent.Value }}, diff --git a/pkg/storage/unified/sql/data/resource_list.sql b/pkg/storage/unified/sql/data/resource_list.sql index 80fdcc41273..07787335cfd 100644 --- a/pkg/storage/unified/sql/data/resource_list.sql +++ b/pkg/storage/unified/sql/data/resource_list.sql @@ -2,7 +2,6 @@ SELECT {{ .Ident "resource_version" }}, {{ .Ident "namespace" }}, {{ .Ident "name" }}, - {{ .Ident "folder" }}, {{ .Ident "value" }} FROM {{ .Ident "resource" }} WHERE 1 = 1 diff --git a/pkg/storage/unified/sql/data/resource_read.sql b/pkg/storage/unified/sql/data/resource_read.sql index d83f400b90b..410bf5f1e74 100644 --- a/pkg/storage/unified/sql/data/resource_read.sql +++ b/pkg/storage/unified/sql/data/resource_read.sql @@ -1,11 +1,6 @@ SELECT - {{ .Ident "namespace" | .Into .Response.Key.Namespace }}, - {{ .Ident "group" | .Into .Response.Key.Group }}, - {{ .Ident "resource" | .Into .Response.Key.Resource }}, - {{ .Ident "name" | .Into .Response.Key.Name }}, - {{ .Ident "folder" | .Into .Response.Folder }}, - {{ .Ident "resource_version" | .Into .Response.ResourceVersion }}, - {{ .Ident "value" | .Into .Response.Value }} + {{ .Ident "resource_version" | .Into .ResourceVersion }}, + {{ .Ident "value" | .Into .Value }} FROM {{ .Ident "resource" }} WHERE 1 = 1 AND {{ .Ident "namespace" }} = {{ .Arg .Request.Key.Namespace }} diff --git a/pkg/storage/unified/sql/data/resource_update.sql b/pkg/storage/unified/sql/data/resource_update.sql index 653fd820ccd..47ab9fabd5e 100644 --- a/pkg/storage/unified/sql/data/resource_update.sql +++ b/pkg/storage/unified/sql/data/resource_update.sql @@ -2,7 +2,6 @@ UPDATE {{ .Ident "resource" }} SET {{ .Ident "guid" }} = {{ .Arg .GUID }}, {{ .Ident "value" }} = {{ .Arg .WriteEvent.Value }}, - {{ .Ident "folder" }} = {{ .Arg .Folder }}, {{ .Ident "action" }} = {{ .Arg .WriteEvent.Type }} WHERE 1 = 1 AND {{ .Ident "group" }} = {{ .Arg .WriteEvent.Key.Group }} diff --git a/pkg/storage/unified/sql/db/migrations/resource_mig.go b/pkg/storage/unified/sql/db/migrations/resource_mig.go index 07e7fd16426..92466dd50c0 100644 --- a/pkg/storage/unified/sql/db/migrations/resource_mig.go +++ b/pkg/storage/unified/sql/db/migrations/resource_mig.go @@ -113,13 +113,5 @@ func initResourceTables(mg *migrator.Migrator) string { Cols: []string{"group", "resource"}, Type: migrator.IndexType, })) - mg.AddMigration("Add column folder in resource_history", migrator.NewAddColumnMigration(resource_history_table, &migrator.Column{ - Name: "folder", Type: migrator.DB_NVarchar, Length: 253, Nullable: true, - })) - - mg.AddMigration("Add column folder in resource", migrator.NewAddColumnMigration(resource_table, &migrator.Column{ - Name: "folder", Type: migrator.DB_NVarchar, Length: 253, Nullable: true, - })) - return marker } diff --git a/pkg/storage/unified/sql/queries.go b/pkg/storage/unified/sql/queries.go index da3646e4506..999d001a7e9 100644 --- a/pkg/storage/unified/sql/queries.go +++ b/pkg/storage/unified/sql/queries.go @@ -61,7 +61,6 @@ type sqlResourceRequest struct { sqltemplate.SQLTemplate GUID string WriteEvent resource.WriteEvent - Folder string } func (r sqlResourceRequest) Validate() error { @@ -74,7 +73,6 @@ type historyPollResponse struct { PreviousRV *int64 Value []byte Action int - Folder string } func (r *historyPollResponse) Results() (*historyPollResponse, error) { @@ -107,7 +105,6 @@ func (r *sqlResourceHistoryPollRequest) Results() (*historyPollResponse, error) Resource: r.Response.Key.Resource, Name: r.Response.Key.Name, }, - Folder: r.Response.Folder, ResourceVersion: r.Response.ResourceVersion, PreviousRV: prevRV, Value: r.Response.Value, @@ -116,24 +113,33 @@ func (r *sqlResourceHistoryPollRequest) Results() (*historyPollResponse, error) } // sqlResourceReadRequest can be used to retrieve a row fromthe "resource" tables. -func NewReadResponse() *resource.BackendReadResponse { - return &resource.BackendReadResponse{ - Key: &resource.ResourceKey{}, - } + +type readResponse struct { + resource.ReadResponse +} + +func (r *readResponse) Results() (*readResponse, error) { + return r, nil } type sqlResourceReadRequest struct { sqltemplate.SQLTemplate - Request *resource.ReadRequest - Response *resource.BackendReadResponse + Request *resource.ReadRequest + *readResponse } func (r *sqlResourceReadRequest) Validate() error { return nil // TODO } -func (r *sqlResourceReadRequest) Results() (*resource.BackendReadResponse, error) { - return r.Response, nil +func (r *sqlResourceReadRequest) Results() (*readResponse, error) { + return &readResponse{ + ReadResponse: resource.ReadResponse{ + Error: r.ReadResponse.Error, + ResourceVersion: r.ReadResponse.ResourceVersion, + Value: r.ReadResponse.Value, + }, + }, nil } // List @@ -148,7 +154,6 @@ func (r sqlResourceListRequest) Validate() error { type historyListRequest struct { ResourceVersion, Limit, Offset int64 - Folder string Options *resource.ListOptions } type sqlResourceHistoryListRequest struct { diff --git a/pkg/storage/unified/sql/queries_test.go b/pkg/storage/unified/sql/queries_test.go index 788abe95dad..5e2557af8c4 100644 --- a/pkg/storage/unified/sql/queries_test.go +++ b/pkg/storage/unified/sql/queries_test.go @@ -43,7 +43,6 @@ func TestUnifiedStorageQueries(t *testing.T) { Type: resource.WatchEvent_ADDED, PreviousRV: 123, }, - Folder: "fldr", }, }, }, @@ -60,7 +59,6 @@ func TestUnifiedStorageQueries(t *testing.T) { Name: "name", }, }, - Folder: "fldr", }, }, }, @@ -77,7 +75,7 @@ func TestUnifiedStorageQueries(t *testing.T) { Name: "name", }, }, - Response: NewReadResponse(), + readResponse: new(readResponse), }, }, }, @@ -145,14 +143,9 @@ func TestUnifiedStorageQueries(t *testing.T) { SQLTemplate: mocks.NewTestingSQLTemplate(), Request: &resource.ReadRequest{ ResourceVersion: 123, - Key: &resource.ResourceKey{ - Namespace: "ns", - Group: "gp", - Resource: "rs", - Name: "nm", - }, + Key: &resource.ResourceKey{}, }, - Response: NewReadResponse(), + readResponse: new(readResponse), }, }, }, @@ -180,7 +173,6 @@ func TestUnifiedStorageQueries(t *testing.T) { }, PreviousRV: 1234, }, - Folder: "fldr", }, }, }, diff --git a/pkg/storage/unified/sql/test/integration_test.go b/pkg/storage/unified/sql/test/integration_test.go index d36a9a93c7f..743ce01c0ca 100644 --- a/pkg/storage/unified/sql/test/integration_test.go +++ b/pkg/storage/unified/sql/test/integration_test.go @@ -9,13 +9,11 @@ import ( "github.com/stretchr/testify/require" "google.golang.org/grpc" "google.golang.org/grpc/credentials/insecure" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "github.com/grafana/authlib/claims" "github.com/grafana/dskit/services" "github.com/grafana/grafana/pkg/apimachinery/identity" - "github.com/grafana/grafana/pkg/apimachinery/utils" infraDB "github.com/grafana/grafana/pkg/infra/db" "github.com/grafana/grafana/pkg/infra/tracing" "github.com/grafana/grafana/pkg/services/featuremgmt" @@ -65,9 +63,9 @@ func newServer(t *testing.T, cfg *setting.Cfg) (sql.Backend, resource.ResourceSe } func TestIntegrationBackendHappyPath(t *testing.T) { - // if infraDB.IsTestDbSQLite() { - // t.Skip("TODO: test blocking, skipping to unblock Enterprise until we fix this") - // } + if infraDB.IsTestDbSQLite() { + t.Skip("TODO: test blocking, skipping to unblock Enterprise until we fix this") + } if testing.Short() { t.Skip("skipping integration test") } @@ -118,7 +116,6 @@ func TestIntegrationBackendHappyPath(t *testing.T) { require.Nil(t, resp.Error) require.Equal(t, rv4, resp.ResourceVersion) require.Equal(t, "item2 MODIFIED", string(resp.Value)) - require.Equal(t, "folderuid", resp.Folder) }) t.Run("Read early version of item2", func(t *testing.T) { @@ -154,13 +151,10 @@ func TestIntegrationBackendHappyPath(t *testing.T) { require.Equal(t, "item1", event.Key.Name) require.Equal(t, rv1, event.ResourceVersion) require.Equal(t, resource.WatchEvent_ADDED, event.Type) - require.Equal(t, "folderuid", event.Folder) - event = <-stream require.Equal(t, "item2", event.Key.Name) require.Equal(t, rv2, event.ResourceVersion) require.Equal(t, resource.WatchEvent_ADDED, event.Type) - require.Equal(t, "folderuid", event.Folder) event = <-stream require.Equal(t, "item3", event.Key.Name) @@ -424,14 +418,6 @@ func TestClientServer(t *testing.T) { } func writeEvent(ctx context.Context, store sql.Backend, name string, action resource.WatchEvent_Type) (int64, error) { - res := &unstructured.Unstructured{ - Object: map[string]any{}, - } - meta, err := utils.MetaAccessor(res) - if err != nil { - return 0, err - } - meta.SetFolder("folderuid") return store.WriteEvent(ctx, resource.WriteEvent{ Type: action, Value: []byte(name + " " + resource.WatchEvent_Type_name[int32(action)]), @@ -441,7 +427,6 @@ func writeEvent(ctx context.Context, store sql.Backend, name string, action reso Resource: "resource", Name: name, }, - Object: meta, }) } diff --git a/pkg/storage/unified/sql/testdata/mysql--resource_history_insert-insert into resource_history.sql b/pkg/storage/unified/sql/testdata/mysql--resource_history_insert-insert into resource_history.sql index 4f3d859d886..27f85926301 100755 --- a/pkg/storage/unified/sql/testdata/mysql--resource_history_insert-insert into resource_history.sql +++ b/pkg/storage/unified/sql/testdata/mysql--resource_history_insert-insert into resource_history.sql @@ -5,7 +5,6 @@ INSERT INTO `resource_history` `resource`, `namespace`, `name`, - `folder`, `previous_resource_version`, `value`, `action` @@ -16,7 +15,6 @@ INSERT INTO `resource_history` 'rr', 'nn', 'name', - 'fldr', 1234, '[]', 'UNKNOWN' diff --git a/pkg/storage/unified/sql/testdata/mysql--resource_history_list-single path.sql b/pkg/storage/unified/sql/testdata/mysql--resource_history_list-single path.sql index f57ad91ff02..1061626026f 100755 --- a/pkg/storage/unified/sql/testdata/mysql--resource_history_list-single path.sql +++ b/pkg/storage/unified/sql/testdata/mysql--resource_history_list-single path.sql @@ -2,7 +2,6 @@ SELECT kv.`resource_version`, kv.`namespace`, kv.`name`, - kv.`folder`, kv.`value` FROM `resource_history` as kv INNER JOIN ( diff --git a/pkg/storage/unified/sql/testdata/mysql--resource_history_poll-single path.sql b/pkg/storage/unified/sql/testdata/mysql--resource_history_poll-single path.sql index 12e16ee980a..a29cf35d4da 100755 --- a/pkg/storage/unified/sql/testdata/mysql--resource_history_poll-single path.sql +++ b/pkg/storage/unified/sql/testdata/mysql--resource_history_poll-single path.sql @@ -4,7 +4,6 @@ SELECT `group`, `resource`, `name`, - `folder`, `value`, `action`, `previous_resource_version` diff --git a/pkg/storage/unified/sql/testdata/mysql--resource_history_read-single path.sql b/pkg/storage/unified/sql/testdata/mysql--resource_history_read-single path.sql index 2fef4f54bd8..fa8b3ae3da6 100755 --- a/pkg/storage/unified/sql/testdata/mysql--resource_history_read-single path.sql +++ b/pkg/storage/unified/sql/testdata/mysql--resource_history_read-single path.sql @@ -1,17 +1,12 @@ SELECT - `namespace`, - `group`, - `resource`, - `name`, - `folder`, `resource_version`, `value` FROM `resource_history` WHERE 1 = 1 - AND `namespace` = 'ns' - AND `group` = 'gp' - AND `resource` = 'rs' - AND `name` = 'nm' + AND `namespace` = '' + AND `group` = '' + AND `resource` = '' + AND `name` = '' AND `resource_version` <= 123 ORDER BY `resource_version` DESC LIMIT 1 diff --git a/pkg/storage/unified/sql/testdata/mysql--resource_insert-simple.sql b/pkg/storage/unified/sql/testdata/mysql--resource_insert-simple.sql index e388def9f61..5bf3424e55b 100755 --- a/pkg/storage/unified/sql/testdata/mysql--resource_insert-simple.sql +++ b/pkg/storage/unified/sql/testdata/mysql--resource_insert-simple.sql @@ -5,7 +5,6 @@ INSERT INTO `resource` `resource`, `namespace`, `name`, - `folder`, `previous_resource_version`, `value`, `action` @@ -16,7 +15,6 @@ INSERT INTO `resource` 'rr', 'nn', 'name', - 'fldr', 123, '[]', 'ADDED' diff --git a/pkg/storage/unified/sql/testdata/mysql--resource_list-filter_on_namespace.sql b/pkg/storage/unified/sql/testdata/mysql--resource_list-filter_on_namespace.sql index a289cf2a2ec..85ed7223d79 100755 --- a/pkg/storage/unified/sql/testdata/mysql--resource_list-filter_on_namespace.sql +++ b/pkg/storage/unified/sql/testdata/mysql--resource_list-filter_on_namespace.sql @@ -2,7 +2,6 @@ SELECT `resource_version`, `namespace`, `name`, - `folder`, `value` FROM `resource` WHERE 1 = 1 diff --git a/pkg/storage/unified/sql/testdata/mysql--resource_read-without_resource_version.sql b/pkg/storage/unified/sql/testdata/mysql--resource_read-without_resource_version.sql index 6d7b2f412b5..10a19336dcd 100755 --- a/pkg/storage/unified/sql/testdata/mysql--resource_read-without_resource_version.sql +++ b/pkg/storage/unified/sql/testdata/mysql--resource_read-without_resource_version.sql @@ -1,9 +1,4 @@ SELECT - `namespace`, - `group`, - `resource`, - `name`, - `folder`, `resource_version`, `value` FROM `resource` diff --git a/pkg/storage/unified/sql/testdata/mysql--resource_update-single path.sql b/pkg/storage/unified/sql/testdata/mysql--resource_update-single path.sql index ed94a0d7e1d..34582a97d87 100755 --- a/pkg/storage/unified/sql/testdata/mysql--resource_update-single path.sql +++ b/pkg/storage/unified/sql/testdata/mysql--resource_update-single path.sql @@ -2,7 +2,6 @@ UPDATE `resource` SET `guid` = '', `value` = '[]', - `folder` = 'fldr', `action` = 'UNKNOWN' WHERE 1 = 1 AND `group` = 'gg' diff --git a/pkg/storage/unified/sql/testdata/postgres--resource_history_insert-insert into resource_history.sql b/pkg/storage/unified/sql/testdata/postgres--resource_history_insert-insert into resource_history.sql index 6014421cd7f..c7db6c75739 100755 --- a/pkg/storage/unified/sql/testdata/postgres--resource_history_insert-insert into resource_history.sql +++ b/pkg/storage/unified/sql/testdata/postgres--resource_history_insert-insert into resource_history.sql @@ -5,7 +5,6 @@ INSERT INTO "resource_history" "resource", "namespace", "name", - "folder", "previous_resource_version", "value", "action" @@ -16,7 +15,6 @@ INSERT INTO "resource_history" 'rr', 'nn', 'name', - 'fldr', 1234, '[]', 'UNKNOWN' diff --git a/pkg/storage/unified/sql/testdata/postgres--resource_history_list-single path.sql b/pkg/storage/unified/sql/testdata/postgres--resource_history_list-single path.sql index e576a9b778c..3f6d4e7206f 100755 --- a/pkg/storage/unified/sql/testdata/postgres--resource_history_list-single path.sql +++ b/pkg/storage/unified/sql/testdata/postgres--resource_history_list-single path.sql @@ -2,7 +2,6 @@ SELECT kv."resource_version", kv."namespace", kv."name", - kv."folder", kv."value" FROM "resource_history" as kv INNER JOIN ( diff --git a/pkg/storage/unified/sql/testdata/postgres--resource_history_poll-single path.sql b/pkg/storage/unified/sql/testdata/postgres--resource_history_poll-single path.sql index 90b5830eee1..d038317381a 100755 --- a/pkg/storage/unified/sql/testdata/postgres--resource_history_poll-single path.sql +++ b/pkg/storage/unified/sql/testdata/postgres--resource_history_poll-single path.sql @@ -4,7 +4,6 @@ SELECT "group", "resource", "name", - "folder", "value", "action", "previous_resource_version" diff --git a/pkg/storage/unified/sql/testdata/postgres--resource_history_read-single path.sql b/pkg/storage/unified/sql/testdata/postgres--resource_history_read-single path.sql index a37f00ac13b..35127f6b176 100755 --- a/pkg/storage/unified/sql/testdata/postgres--resource_history_read-single path.sql +++ b/pkg/storage/unified/sql/testdata/postgres--resource_history_read-single path.sql @@ -1,17 +1,12 @@ SELECT - "namespace", - "group", - "resource", - "name", - "folder", "resource_version", "value" FROM "resource_history" WHERE 1 = 1 - AND "namespace" = 'ns' - AND "group" = 'gp' - AND "resource" = 'rs' - AND "name" = 'nm' + AND "namespace" = '' + AND "group" = '' + AND "resource" = '' + AND "name" = '' AND "resource_version" <= 123 ORDER BY "resource_version" DESC LIMIT 1 diff --git a/pkg/storage/unified/sql/testdata/postgres--resource_insert-simple.sql b/pkg/storage/unified/sql/testdata/postgres--resource_insert-simple.sql index 2a521cf223e..fc2d22be1c4 100755 --- a/pkg/storage/unified/sql/testdata/postgres--resource_insert-simple.sql +++ b/pkg/storage/unified/sql/testdata/postgres--resource_insert-simple.sql @@ -5,7 +5,6 @@ INSERT INTO "resource" "resource", "namespace", "name", - "folder", "previous_resource_version", "value", "action" @@ -16,7 +15,6 @@ INSERT INTO "resource" 'rr', 'nn', 'name', - 'fldr', 123, '[]', 'ADDED' diff --git a/pkg/storage/unified/sql/testdata/postgres--resource_list-filter_on_namespace.sql b/pkg/storage/unified/sql/testdata/postgres--resource_list-filter_on_namespace.sql index 3a32ec49aa7..8a1356f62f8 100755 --- a/pkg/storage/unified/sql/testdata/postgres--resource_list-filter_on_namespace.sql +++ b/pkg/storage/unified/sql/testdata/postgres--resource_list-filter_on_namespace.sql @@ -2,7 +2,6 @@ SELECT "resource_version", "namespace", "name", - "folder", "value" FROM "resource" WHERE 1 = 1 diff --git a/pkg/storage/unified/sql/testdata/postgres--resource_read-without_resource_version.sql b/pkg/storage/unified/sql/testdata/postgres--resource_read-without_resource_version.sql index f103015dac9..5b8879b6c6a 100755 --- a/pkg/storage/unified/sql/testdata/postgres--resource_read-without_resource_version.sql +++ b/pkg/storage/unified/sql/testdata/postgres--resource_read-without_resource_version.sql @@ -1,9 +1,4 @@ SELECT - "namespace", - "group", - "resource", - "name", - "folder", "resource_version", "value" FROM "resource" diff --git a/pkg/storage/unified/sql/testdata/postgres--resource_update-single path.sql b/pkg/storage/unified/sql/testdata/postgres--resource_update-single path.sql index 6d76b8f568e..4febc55d530 100755 --- a/pkg/storage/unified/sql/testdata/postgres--resource_update-single path.sql +++ b/pkg/storage/unified/sql/testdata/postgres--resource_update-single path.sql @@ -2,7 +2,6 @@ UPDATE "resource" SET "guid" = '', "value" = '[]', - "folder" = 'fldr', "action" = 'UNKNOWN' WHERE 1 = 1 AND "group" = 'gg' diff --git a/pkg/storage/unified/sql/testdata/sqlite--resource_history_insert-insert into resource_history.sql b/pkg/storage/unified/sql/testdata/sqlite--resource_history_insert-insert into resource_history.sql index 6014421cd7f..c7db6c75739 100755 --- a/pkg/storage/unified/sql/testdata/sqlite--resource_history_insert-insert into resource_history.sql +++ b/pkg/storage/unified/sql/testdata/sqlite--resource_history_insert-insert into resource_history.sql @@ -5,7 +5,6 @@ INSERT INTO "resource_history" "resource", "namespace", "name", - "folder", "previous_resource_version", "value", "action" @@ -16,7 +15,6 @@ INSERT INTO "resource_history" 'rr', 'nn', 'name', - 'fldr', 1234, '[]', 'UNKNOWN' diff --git a/pkg/storage/unified/sql/testdata/sqlite--resource_history_list-single path.sql b/pkg/storage/unified/sql/testdata/sqlite--resource_history_list-single path.sql index e576a9b778c..3f6d4e7206f 100755 --- a/pkg/storage/unified/sql/testdata/sqlite--resource_history_list-single path.sql +++ b/pkg/storage/unified/sql/testdata/sqlite--resource_history_list-single path.sql @@ -2,7 +2,6 @@ SELECT kv."resource_version", kv."namespace", kv."name", - kv."folder", kv."value" FROM "resource_history" as kv INNER JOIN ( diff --git a/pkg/storage/unified/sql/testdata/sqlite--resource_history_poll-single path.sql b/pkg/storage/unified/sql/testdata/sqlite--resource_history_poll-single path.sql index 90b5830eee1..d038317381a 100755 --- a/pkg/storage/unified/sql/testdata/sqlite--resource_history_poll-single path.sql +++ b/pkg/storage/unified/sql/testdata/sqlite--resource_history_poll-single path.sql @@ -4,7 +4,6 @@ SELECT "group", "resource", "name", - "folder", "value", "action", "previous_resource_version" diff --git a/pkg/storage/unified/sql/testdata/sqlite--resource_history_read-single path.sql b/pkg/storage/unified/sql/testdata/sqlite--resource_history_read-single path.sql index a37f00ac13b..35127f6b176 100755 --- a/pkg/storage/unified/sql/testdata/sqlite--resource_history_read-single path.sql +++ b/pkg/storage/unified/sql/testdata/sqlite--resource_history_read-single path.sql @@ -1,17 +1,12 @@ SELECT - "namespace", - "group", - "resource", - "name", - "folder", "resource_version", "value" FROM "resource_history" WHERE 1 = 1 - AND "namespace" = 'ns' - AND "group" = 'gp' - AND "resource" = 'rs' - AND "name" = 'nm' + AND "namespace" = '' + AND "group" = '' + AND "resource" = '' + AND "name" = '' AND "resource_version" <= 123 ORDER BY "resource_version" DESC LIMIT 1 diff --git a/pkg/storage/unified/sql/testdata/sqlite--resource_insert-simple.sql b/pkg/storage/unified/sql/testdata/sqlite--resource_insert-simple.sql index 2a521cf223e..fc2d22be1c4 100755 --- a/pkg/storage/unified/sql/testdata/sqlite--resource_insert-simple.sql +++ b/pkg/storage/unified/sql/testdata/sqlite--resource_insert-simple.sql @@ -5,7 +5,6 @@ INSERT INTO "resource" "resource", "namespace", "name", - "folder", "previous_resource_version", "value", "action" @@ -16,7 +15,6 @@ INSERT INTO "resource" 'rr', 'nn', 'name', - 'fldr', 123, '[]', 'ADDED' diff --git a/pkg/storage/unified/sql/testdata/sqlite--resource_list-filter_on_namespace.sql b/pkg/storage/unified/sql/testdata/sqlite--resource_list-filter_on_namespace.sql index 3a32ec49aa7..8a1356f62f8 100755 --- a/pkg/storage/unified/sql/testdata/sqlite--resource_list-filter_on_namespace.sql +++ b/pkg/storage/unified/sql/testdata/sqlite--resource_list-filter_on_namespace.sql @@ -2,7 +2,6 @@ SELECT "resource_version", "namespace", "name", - "folder", "value" FROM "resource" WHERE 1 = 1 diff --git a/pkg/storage/unified/sql/testdata/sqlite--resource_read-without_resource_version.sql b/pkg/storage/unified/sql/testdata/sqlite--resource_read-without_resource_version.sql index f103015dac9..5b8879b6c6a 100755 --- a/pkg/storage/unified/sql/testdata/sqlite--resource_read-without_resource_version.sql +++ b/pkg/storage/unified/sql/testdata/sqlite--resource_read-without_resource_version.sql @@ -1,9 +1,4 @@ SELECT - "namespace", - "group", - "resource", - "name", - "folder", "resource_version", "value" FROM "resource" diff --git a/pkg/storage/unified/sql/testdata/sqlite--resource_update-single path.sql b/pkg/storage/unified/sql/testdata/sqlite--resource_update-single path.sql index 6d76b8f568e..4febc55d530 100755 --- a/pkg/storage/unified/sql/testdata/sqlite--resource_update-single path.sql +++ b/pkg/storage/unified/sql/testdata/sqlite--resource_update-single path.sql @@ -2,7 +2,6 @@ UPDATE "resource" SET "guid" = '', "value" = '[]', - "folder" = 'fldr', "action" = 'UNKNOWN' WHERE 1 = 1 AND "group" = 'gg'