mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
refactor(update) more clear dir checking
This commit is contained in:
parent
40d297be66
commit
4ba7d85d56
@ -366,23 +366,16 @@ func (s *store) Update(nodePath string, newValue string, expireTime time.Time) (
|
|||||||
e := newEvent(Update, nodePath, nextIndex, n.CreatedIndex)
|
e := newEvent(Update, nodePath, nextIndex, n.CreatedIndex)
|
||||||
eNode := e.Node
|
eNode := e.Node
|
||||||
|
|
||||||
if len(newValue) != 0 {
|
if n.IsDir() && len(newValue) != 0 {
|
||||||
if n.IsDir() {
|
// if the node is a directory, we cannot update value to non-empty
|
||||||
// if the node is a directory, we cannot update value
|
s.Stats.Inc(UpdateFail)
|
||||||
s.Stats.Inc(UpdateFail)
|
return nil, etcdErr.NewError(etcdErr.EcodeNotFile, nodePath, currIndex)
|
||||||
return nil, etcdErr.NewError(etcdErr.EcodeNotFile, nodePath, currIndex)
|
|
||||||
}
|
|
||||||
|
|
||||||
eNode.PrevValue = n.Value
|
|
||||||
n.Write(newValue, nextIndex)
|
|
||||||
eNode.Value = newValue
|
|
||||||
|
|
||||||
} else {
|
|
||||||
// update value to empty
|
|
||||||
eNode.Value = n.Value
|
|
||||||
n.Value = ""
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
eNode.PrevValue = n.Value
|
||||||
|
n.Write(newValue, nextIndex)
|
||||||
|
eNode.Value = newValue
|
||||||
|
|
||||||
// update ttl
|
// update ttl
|
||||||
n.UpdateTTL(expireTime)
|
n.UpdateTTL(expireTime)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user