mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
[Search] fix: add and delete (#94438)
[search] fix: add and delete from index
This commit is contained in:
parent
2d0ea60017
commit
a3764ebeba
@ -87,7 +87,12 @@ func (i *Index) Index(ctx context.Context, data *Data) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = shard.index.Index(res.Metadata.Uid, data.Value.Value)
|
||||
var jsonDoc interface{}
|
||||
err = json.Unmarshal(data.Value.Value, &jsonDoc)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = shard.index.Index(res.Metadata.Uid, jsonDoc)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -139,14 +139,9 @@ func (f *indexWatchServer) Add(we *WatchEvent) error {
|
||||
}
|
||||
|
||||
func (f *indexWatchServer) Delete(we *WatchEvent) error {
|
||||
// TODO: this seems flakey. Does a delete have a Resource or Previous?
|
||||
// both cases have happened ( maybe because Georges pr was reverted )
|
||||
rs := we.Resource
|
||||
if rs == nil {
|
||||
rs = we.Previous
|
||||
}
|
||||
if rs == nil {
|
||||
return errors.New("resource not found")
|
||||
rs, err := resource(we)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
data, err := getData(rs)
|
||||
if err != nil {
|
||||
@ -160,7 +155,11 @@ func (f *indexWatchServer) Delete(we *WatchEvent) error {
|
||||
}
|
||||
|
||||
func (f *indexWatchServer) Update(we *WatchEvent) error {
|
||||
data, err := getData(we.Resource)
|
||||
rs, err := resource(we)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
data, err := getData(rs)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@ -208,3 +207,15 @@ func getData(wr *WatchEvent_Resource) (*Data, error) {
|
||||
}
|
||||
return &Data{Key: key, Value: value, Uid: r.Metadata.Uid}, nil
|
||||
}
|
||||
|
||||
func resource(we *WatchEvent) (*WatchEvent_Resource, error) {
|
||||
rs := we.Resource
|
||||
if rs == nil || len(rs.Value) == 0 {
|
||||
// for updates/deletes
|
||||
rs = we.Previous
|
||||
}
|
||||
if rs == nil || len(rs.Value) == 0 {
|
||||
return nil, errors.New("resource not found")
|
||||
}
|
||||
return rs, nil
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user