From ba7cc04bace1ea3efc81ce0d5dc61215374b1a1c Mon Sep 17 00:00:00 2001 From: Gyuho Lee Date: Wed, 9 May 2018 13:42:37 -0700 Subject: [PATCH] etcdserver/api/v2v3: fix "getDir" with "sorted" Signed-off-by: Gyuho Lee --- etcdserver/api/v2v3/store.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/etcdserver/api/v2v3/store.go b/etcdserver/api/v2v3/store.go index b3da8091e..9efd1dc37 100644 --- a/etcdserver/api/v2v3/store.go +++ b/etcdserver/api/v2v3/store.go @@ -18,6 +18,7 @@ import ( "context" "fmt" "path" + "sort" "strings" "time" @@ -94,6 +95,9 @@ func (s *v2v3Store) Get(nodePath string, recursive, sorted bool) (*v2store.Event func (s *v2v3Store) getDir(nodePath string, recursive, sorted bool, rev int64) ([]*v2store.NodeExtern, error) { rootNodes, err := s.getDirDepth(nodePath, 1, rev) if err != nil || !recursive { + if sorted { + sort.Sort(v2store.NodeExterns(rootNodes)) + } return rootNodes, err } nextNodes := rootNodes @@ -110,6 +114,10 @@ func (s *v2v3Store) getDir(nodePath string, recursive, sorted bool, rev int64) ( return nil, err } } + + if sorted { + sort.Sort(v2store.NodeExterns(rootNodes)) + } return rootNodes, nil }