|
|
|
@ -47,9 +47,11 @@ func (s *memoryBackend) WriteEvent(ctx context.Context, event WriteEvent) (rv in |
|
|
|
|
rv: rv, |
|
|
|
|
ns: event.Key.Namespace, |
|
|
|
|
name: event.Key.Name, |
|
|
|
|
folder: event.Object.GetFolder(), |
|
|
|
|
value: event.Value, |
|
|
|
|
} |
|
|
|
|
if event.Object != nil { // delete does not have an object
|
|
|
|
|
value.folder = event.Object.GetFolder() |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
switch event.Type { |
|
|
|
|
case WatchEvent_ADDED: |
|
|
|
@ -72,7 +74,7 @@ func (s *memoryBackend) WriteEvent(ctx context.Context, event WriteEvent) (rv in |
|
|
|
|
|
|
|
|
|
// ignore
|
|
|
|
|
default: |
|
|
|
|
return rv, nil //
|
|
|
|
|
// return rv, nil //
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -94,12 +96,6 @@ func (s *memoryBackend) ReadResource(ctx context.Context, req *ReadRequest) *Rea |
|
|
|
|
s.mutex.Lock() |
|
|
|
|
defer s.mutex.Unlock() |
|
|
|
|
|
|
|
|
|
tree := s.getResourceTree(req.Key) |
|
|
|
|
val := tree.get(req.Key, req.ResourceVersion) |
|
|
|
|
if val == nil { |
|
|
|
|
return &ReadResponse{Error: NewNotFoundError(req.Key)} |
|
|
|
|
} |
|
|
|
|
if req.ResourceVersion > 0 { |
|
|
|
|
if req.ResourceVersion > s.rv.Load() { |
|
|
|
|
return &ReadResponse{ |
|
|
|
|
Error: &ErrorResult{ |
|
|
|
@ -117,6 +113,11 @@ func (s *memoryBackend) ReadResource(ctx context.Context, req *ReadRequest) *Rea |
|
|
|
|
}, |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
tree := s.getResourceTree(req.Key) |
|
|
|
|
val := tree.get(req.Key, req.ResourceVersion) |
|
|
|
|
if val == nil || val.deleted { |
|
|
|
|
return &ReadResponse{Error: NewNotFoundError(req.Key)} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return &ReadResponse{ |
|
|
|
@ -264,7 +265,7 @@ func (v *memoryValues) get(rv int64) *memoryValue { |
|
|
|
|
|
|
|
|
|
for i := len(v.version) - 1; i >= 0; i-- { |
|
|
|
|
v := v.version[i] |
|
|
|
|
if v.rv > rv { |
|
|
|
|
if v.rv >= rv { |
|
|
|
|
return v |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -291,7 +292,7 @@ type memoryListIterator struct { |
|
|
|
|
func (c *memoryListIterator) add(ns *memoryNamespace) { |
|
|
|
|
for _, r := range ns.names { |
|
|
|
|
v := r.get(c.rv) // get the closest (but not over)
|
|
|
|
|
if v != nil { |
|
|
|
|
if v != nil && !v.deleted { |
|
|
|
|
c.values = append(c.values, v) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|