UnifiedSearch: Use ResourceIndex from dashboards apiserver (v0alpha1 only) (#96939)

This commit is contained in:
Ryan McKinley
2024-11-27 07:57:53 +02:00
committed by GitHub
parent 104f795156
commit f6ccf976e5
46 changed files with 1611 additions and 3447 deletions
+6 -37
View File
@@ -145,9 +145,6 @@ type ResourceServerOptions struct {
// The blob configuration
Blob BlobConfig
// Requests based on a search index
Index ResourceIndexServer
// Search options
Search SearchOptions
@@ -229,7 +226,6 @@ func NewResourceServer(opts ResourceServerOptions) (ResourceServer, error) {
tracer: opts.Tracer,
log: logger,
backend: opts.Backend,
index: opts.Index,
blob: blobstore,
diagnostics: opts.Diagnostics,
access: opts.AccessClient,
@@ -242,7 +238,7 @@ func NewResourceServer(opts ResourceServerOptions) (ResourceServer, error) {
if opts.Search.Resources != nil {
var err error
s.search, err = newSearchSupport(opts.Search, s.backend, s.blob, opts.Tracer)
s.search, err = newSearchSupport(opts.Search, s.backend, s.access, s.blob, opts.Tracer)
if err != nil {
return nil, err
}
@@ -259,7 +255,6 @@ type server struct {
backend StorageBackend
blob BlobSupport
search *searchSupport
index ResourceIndexServer
diagnostics DiagnosticsServer
access authz.AccessClient
writeHooks WriteAccessHooks
@@ -923,14 +918,14 @@ func (s *server) Watch(req *WatchRequest, srv ResourceStore_WatchServer) error {
}
}
func (s *server) Search(ctx context.Context, req *SearchRequest) (*SearchResponse, error) {
func (s *server) Search(ctx context.Context, req *ResourceSearchRequest) (*ResourceSearchResponse, error) {
if err := s.Init(ctx); err != nil {
return nil, err
}
if s.index == nil {
if s.search == nil {
return nil, fmt.Errorf("search index not configured")
}
return s.index.Search(ctx, req)
return s.search.Search(ctx, req)
}
// History implements ResourceServer.
@@ -938,7 +933,7 @@ func (s *server) History(ctx context.Context, req *HistoryRequest) (*HistoryResp
if err := s.Init(ctx); err != nil {
return nil, err
}
return s.index.History(ctx, req)
return s.search.History(ctx, req)
}
// Origin implements ResourceServer.
@@ -946,33 +941,7 @@ func (s *server) Origin(ctx context.Context, req *OriginRequest) (*OriginRespons
if err := s.Init(ctx); err != nil {
return nil, err
}
return s.index.Origin(ctx, req)
}
// Index returns the search index. If the index is not initialized, it will be initialized.
func (s *server) Index(ctx context.Context) (*Index, error) {
if err := s.Init(ctx); err != nil {
return nil, err
}
index := s.index.(*IndexServer)
if index.index == nil {
err := index.Init(ctx, s)
if err != nil {
return nil, err
}
err = index.Load(ctx)
if err != nil {
return nil, err
}
err = index.Watch(ctx)
if err != nil {
return nil, err
}
}
return index.index, nil
return s.search.Origin(ctx, req)
}
// IsHealthy implements ResourceServer.